Εργαλείο κωδικού πρόσβασης Επιστροφή στη δημιουργία

Οδηγός ασφαλείας

Τι είναι το Web Crypto API;

Μάθετε πώς το Web Crypto API υποστηρίζει τη δημιουργία τυχαίων κωδικών πρόσβασης στο πρόγραμμα περιήγησης και γιατί διαφέρει από την κανονική τυχαιότητα της JavaScript.

Σύνοψη

Το Web Crypto API είναι ένα πρότυπο προγράμματος περιήγησης για κρυπτογραφικές λειτουργίες. Για τη δημιουργία κωδικών πρόσβασης, το πιο σημαντικό χαρακτηριστικό είναι η crypto.getRandomValues(), η οποία παρέχει σε ιστοσελίδες πρόσβαση σε κρυπτογραφικά ισχυρές τυχαίες τιμές κατάλληλες για την επιλογή χαρακτήρων κωδικού πρόσβασης.

Γιατί έχει σημασία για τους κωδικούς πρόσβασης

Οι κωδικοί πρόσβασης χρειάζονται απρόβλεπτο. Η κανονική τυχαιότητα της JavaScript δεν σχεδιάστηκε για μυστικά. Το Web Crypto υπάρχει ώστε τα προγράμματα περιήγησης να μπορούν να εκθέτουν ασφαλέστερες κρυπτογραφικές αρχές μέσω ενός τυπικού API. Το PwdGen χρησιμοποιεί αυτό το API για οριοθετημένη τυχαία επιλογή και αποφεύγει τη Math.random() για τη δημιουργία κωδικών πρόσβασης.

Όριο λειτουργικού συστήματος

Το Web Crypto δεν σημαίνει ότι μια σελίδα ελέγχει άμεσα την πηγή εντροπίας του υλικού. Τα προγράμματα περιήγησης βασίζονται συνήθως στο λειτουργικό σύστημα και τον κρυπτογραφικό πάροχο της πλατφόρμας. Μια προσεκτική μεθοδολογία θα πρέπει να αναφέρει ότι το Web Crypto παρέχει έξοδο CSPRNG, όχι ότι κάθε κλήση διαβάζει φυσικό θόρυβο από την CPU.

Πώς το χρησιμοποιεί το PwdGen

Το PwdGen ζητά τυχαίους ακέραιους 32-bit, χρησιμοποιεί δειγματοληψία απόρριψης για να αποφύγει τη μεροληψία modulo, αντιστοιχεί τις αποδεκτές τιμές σε δείκτες χαρακτήρων και ανακατεύει τις απαιτούμενες κατηγορίες χαρακτήρων. Αυτό διατηρεί την υλοποίηση μικρή και ελέγξιμη.

Λεπτομερής καθοδήγηση

Αυτός ο οδηγός εστιάζει στην κατανόηση του Web Crypto API ως κρυπτογραφικής αρχής του προγράμματος περιήγησης. Είναι γραμμένος για χρήστες και προγραμματιστές που θέλουν να γνωρίζουν γιατί η τυχαιότητα του προγράμματος περιήγησης έχει σημασία, οπότε ο πρακτικός στόχος δεν είναι να δημιουργηθεί ένας δραματικός ισχυρισμός ασφαλείας. Ο στόχος είναι να επιλέξετε μια συνήθεια κωδικού πρόσβασης που μπορεί να επιβιώσει στην καθημερινή χρήση: φόρμες σύνδεσης, διαχειριστές κωδικών πρόσβασης, πληκτρολόγια κινητών, ανάκτηση λογαριασμού, κοινόχρηστες συσκευές και την περιστασιακή υπηρεσία με περίεργους κανόνες επικύρωσης. Μια ασφαλής σύσταση είναι χρήσιμη μόνο αν ένα πραγματικό άτομο μπορεί να την ακολουθήσει με συνέπεια.

Το ασφαλέστερο σημείο εκκίνησης είναι η τυχαιότητα συν η μοναδικότητα. Τυχαιότητα σημαίνει ότι η τιμή επιλέγεται από έναν μεγάλο χώρο από μια κρυπτογραφικά κατάλληλη τυχαία πηγή, όχι επινοημένη από ένα γενέθλιο, ένα όνομα κατοικίδιου, ένα μοτίβο πληκτρολογίου ή μια αγαπημένη φράση. Μοναδικότητα σημαίνει ότι ο ίδιος κωδικός πρόσβασης δεν χρησιμοποιείται πουθενά αλλού. Ένας κωδικός πρόσβασης που είναι μακρύς αλλά επαναχρησιμοποιείται μπορεί να αποτύχει γρήγορα μετά από μια άσχετη παραβίαση, ενώ ένας μοναδικός τυχαίος κωδικός περιορίζει τη ζημιά στον μοναδικό λογαριασμό όπου χρησιμοποιήθηκε.

Για αυτό το θέμα, μια πρακτική προεπιλογή είναι τα σύγχρονα Chrome, Edge, Safari και Firefox με διαθέσιμο το crypto.getRandomValues. Μπορείτε να εφαρμόσετε αυτήν την προεπιλογή με τη σελίδα υποστήριξης προγραμμάτων περιήγησης και στη συνέχεια να αποθηκεύσετε την τελική τιμή σε έναν αξιόπιστο διαχειριστή κωδικών πρόσβασης. Το PwdGen δημιουργεί τιμές τοπικά στο πρόγραμμα περιήγησης με το Web Crypto· ο παραγόμενος κωδικός πρόσβασης δεν αποστέλλεται σε διακομιστή του PwdGen. Αυτός ο τοπικός σχεδιασμός μειώνει την έκθεση στην πλευρά του διακομιστή, αλλά δεν προστατεύει από κάθε απειλή. Μια κακόβουλη επέκταση προγράμματος περιήγησης, μια παραβιασμένη συσκευή, μια σελίδα phishing ή ο μη ασφαλής χειρισμός του προχείρου μπορεί να εκθέσει ένα μυστικό μετά τη δημιουργία του.

Τα πιο συνηθισμένα προβλήματα που πρέπει να αποφύγετε είναι τα παλιά προγράμματα περιήγησης, τα μη ασφαλή περιβάλλοντα, τα polyfills που χρησιμοποιούν σιωπηλά το Math.random και η σύγχυση της κωδικοποίησης με την κρυπτογράφηση. Αυτά τα προβλήματα έχουν σημασία επειδή οι επιτιθέμενοι σπάνια χρειάζεται να δοκιμάσουν όλους τους πιθανούς κωδικούς πρόσβασης όταν οι ανθρώπινες συνήθειες τους δίνουν μια συντόμευση. Η γέμιση διαπιστευτηρίων, το phishing, οι διερρευσμένες λίστες κωδικών πρόσβασης και η κατάχρηση ανάκτησης λογαριασμού είναι συχνά πιο ρεαλιστικά από μια καθαρά μαθηματική αναζήτηση. Γι’ αυτό η καλύτερη συμβουλή συνδυάζει την ποιότητα του κωδικού πρόσβασης με ελέγχους σε επίπεδο λογαριασμού, όπως MFA, κλειδιά πρόσβασης, αποθήκευση κωδικών ανάκτησης και τακτικό έλεγχο των ρυθμίσεων email ή τηλεφώνου ανάκτησης.

Χρησιμοποιήστε αυτήν τη λίστα ελέγχου όταν εφαρμόζετε τη σύσταση:

Εάν μια ιστοσελίδα απορρίπτει την ιδανική ρύθμιση, μην αναγκάσετε τον κωδικό πρόσβασης σε ένα ασθενέστερο μοτίβο χειροκίνητα. Προσαρμόστε μία μεταβλητή κάθε φορά. Εάν τα σύμβολα απορρίπτονται, κρατήστε ενεργά τα κεφαλαία, πεζά γράμματα και αριθμούς και αυξήστε το μήκος. Εάν το μέγιστο μήκος είναι μικρό, χρησιμοποιήστε το μεγαλύτερο αποδεκτό μήκος και βεβαιωθείτε ότι η τιμή είναι μοναδική. Εάν ένας κωδικός πρόσβασης πρέπει να διαβαστεί δυνατά, να εκτυπωθεί ή να πληκτρολογηθεί σε οθόνη τηλεόρασης ή δρομολογητή, σκεφτείτε να εξαιρέσετε συγκεχυμένους χαρακτήρες και να αυξήσετε το μήκος για να αντισταθμίσετε το μικρότερο αλφάβητο.

Τέλος, θυμηθείτε το όριο της συμβουλής για κωδικούς πρόσβασης. Ένας ισχυρός κωδικός πρόσβασης είναι ένα επίπεδο άμυνας, όχι εγγύηση. Δεν μπορεί να κάνει μια σελίδα phishing ασφαλή, να διορθώσει κακόβουλο λογισμικό ή να αντισταθμίσει μια υπηρεσία που αποθηκεύει διαπιστευτήρια με κακό τρόπο. Η χρήσιμη συνήθεια είναι βαρετή αλλά ανθεκτική: δημιουργήστε μια μοναδική τιμή, αποθηκεύστε την με ασφάλεια, προστατέψτε τη διαδρομή ανάκτησης και αντικαταστήστε την γρήγορα εάν υποψιάζεστε έκθεση.

Ένα ασφαλές επόμενο βήμα

Αφού διαβάσετε αυτόν τον οδηγό, κάντε έναν μικρό έλεγχο λογαριασμού αντί να προσπαθήσετε να διορθώσετε τα πάντα ταυτόχρονα. Επιλέξτε τον λογαριασμό που θα προκαλούσε τα περισσότερα προβλήματα αν παραβιαζόταν, επιβεβαιώστε ότι ο κωδικός πρόσβασής του είναι μοναδικός και ελέγξτε το email ανάκτησης, το τηλέφωνο ανάκτησης, τη μέθοδο MFA και την αποθήκευση εφεδρικών κωδικών. Εάν κάποιο μέρος αυτής της αλυσίδας είναι αδύναμο, βελτιώστε αυτό το μέρος πριν προχωρήσετε σε λογαριασμούς χαμηλότερου κινδύνου. Αυτή η σειρά διατηρεί τη δουλειά διαχειρίσιμη και προστατεύει τους λογαριασμούς που οι επιτιθέμενοι είναι πιθανότερο να χρησιμοποιήσουν ως εφαλτήριο. Για το what is the web crypto api?, το καλύτερο αποτέλεσμα είναι μια επαναλαμβανόμενη συνήθεια: δημιουργήστε τοπικά, αποθηκεύστε προσεκτικά και αποφύγετε την επαναχρησιμοποίηση.

Συχνές ερωτήσεις

Ποιο μέρος του Web Crypto χρησιμοποιεί το PwdGen;

Το PwdGen χρησιμοποιεί τη crypto.getRandomValues() για να ζητήσει κρυπτογραφικά ισχυρές τυχαίες τιμές από το πρόγραμμα περιήγησης.

Σημαίνει το Web Crypto ότι κάθε byte προέρχεται απευθείας από το υλικό;

Όχι. Τα προγράμματα περιήγησης γενικά χρησιμοποιούν κρυπτογραφικούς παρόχους λειτουργικού συστήματος που τροφοδοτούνται από εντροπία υψηλής ποιότητας· το πρόγραμμα περιήγησης και το λειτουργικό σύστημα επιλέγουν την υλοποίηση.

Είναι το Web Crypto διαθέσιμο σε όλα τα προγράμματα περιήγησης;

Είναι διαθέσιμο σε σύγχρονα προγράμματα περιήγησης. Εάν λείπει, το PwdGen απενεργοποιεί τη δημιουργία αντί να υποχωρήσει σε μη ασφαλή τυχαιότητα.

Πηγές