Ένας κωδικός μπορεί να μοιάζει περίπλοκος επειδή περιλαμβάνει κεφαλαία γράμματα, αριθμούς και σύμβολα, χωρίς όμως να είναι πραγματικά ασφαλής. Η ασφάλεια ενός password εξαρτάται κυρίως από το μήκος, την τυχαιότητα και τη μοναδικότητά του, αλλά και από το αν ο λογαριασμός προστατεύεται με δεύτερο παράγοντα ταυτοποίησης.
Οι σύγχρονοι υπολογιστές μπορούν να δοκιμάζουν τεράστιο αριθμό πιθανών συνδυασμών, ιδιαίτερα όταν ένας επιτιθέμενος έχει αποκτήσει μια βάση με κρυπτογραφικά hashes κωδικών και μπορεί να πραγματοποιεί τις δοκιμές offline. Η NIST αναφέρει ως ενδεικτικό παράδειγμα ότι ένας σύγχρονος υπολογιστής μπορεί, υπό συγκεκριμένες συνθήκες, να πραγματοποιεί περίπου 100 δισεκατομμύρια δοκιμές το δευτερόλεπτο. Για αυτό προτείνει σήμερα ως βασική κατεύθυνση passwords μήκους τουλάχιστον 15 χαρακτήρων.
Πόσο γρήγορα μπορεί να «σπάσει» ένας κωδικός;
Το μήκος κάνει τεράστια διαφορά επειδή κάθε επιπλέον χαρακτήρας πολλαπλασιάζει τον αριθμό των πιθανών συνδυασμών.
Για να φανεί η διαφορά, μπορεί να χρησιμοποιηθεί ένα θεωρητικό παράδειγμα: ένας εντελώς τυχαίος κωδικός και ένας υπολογιστής που δοκιμάζει 100 δισεκατομμύρια συνδυασμούς ανά δευτερόλεπτο. Οι χρόνοι παρακάτω αντιστοιχούν στο θεωρητικό χειρότερο σενάριο όπου χρειάζεται να δοκιμαστούν όλοι οι συνδυασμοί.
| Μήκος | Μόνο πεζά γράμματα (26 χαρακτήρες) | Πεζά, κεφαλαία, αριθμοί και σύμβολα (~94 χαρακτήρες) |
|---|---|---|
| 6 χαρακτήρες | ~0,003 δευτ. | ~7 δευτ. |
| 8 χαρακτήρες | ~2 δευτ. | ~17 ώρες |
| 10 χαρακτήρες | ~24 λεπτά | ~17 χρόνια |
| 12 χαρακτήρες | ~11 ημέρες | ~150.000 χρόνια |
| 14 χαρακτήρες | ~20 χρόνια | ~1,3 δισ. χρόνια |
| 15 χαρακτήρες | ~530 χρόνια | ~130 δισ. χρόνια |
| 16 χαρακτήρες | ~14.000 χρόνια | ~12 τρισ. χρόνια |
Οι αριθμοί είναι ενδεικτικοί και όχι πρόβλεψη για έναν πραγματικό λογαριασμό. Ένα σωστά σχεδιασμένο σύστημα αποθήκευσης passwords χρησιμοποιεί αργές συναρτήσεις κατακερματισμού και salt, μειώνοντας δραστικά τον αριθμό δοκιμών που μπορεί να πραγματοποιήσει ένας εισβολέας.
Από την άλλη πλευρά, ένας πραγματικός κωδικός μπορεί να «πέσει» πολύ γρηγορότερα από τον πίνακα αν δεν είναι πραγματικά τυχαίος.
Το Maria1990!, για παράδειγμα, δεν έχει την ίδια ασφάλεια με έναν τυχαίο κωδικό ίδιου μήκους. Οι επιτιθέμενοι δεν ξεκινούν απαραίτητα δοκιμάζοντας aaaaaaaa και προχωρώντας χαρακτήρα προς χαρακτήρα. Χρησιμοποιούν λίστες από πραγματικούς κωδικούς που έχουν διαρρεύσει, λεξικά, ονόματα, ημερομηνίες και γνωστά μοτίβα.
Γιατί το «Password123!» δεν είναι πραγματικά σύνθετο;
Ένας από τους μεγαλύτερους μύθους γύρω από τα passwords είναι ότι αρκεί να υπάρχει ένα κεφαλαίο γράμμα, ένας αριθμός και ένα σύμβολο.
Στην πραγματικότητα, οι άνθρωποι χρησιμοποιούν αυτά τα στοιχεία με πολύ προβλέψιμο τρόπο. Ένα κεφαλαίο τοποθετείται συχνά στην αρχή, ένας αριθμός στο τέλος και το θαυμαστικό μετά από αυτόν. Η NIST επισημαίνει ακριβώς αυτό το πρόβλημα και δεν συνιστά πλέον υποχρεωτικούς κανόνες όπως «ένα κεφαλαίο + ένας αριθμός + ένα σύμβολο». Μεγαλύτερη σημασία δίνεται στο μήκος και στον αποκλεισμό κοινών ή ήδη παραβιασμένων κωδικών.
Ένας μεγάλος κωδικός μπορεί επομένως να είναι καλύτερος από έναν μικρό αλλά φαινομενικά περίπλοκο.
Μια πρακτική επιλογή είναι μια μεγάλη passphrase, δηλαδή μια σειρά από άσχετες μεταξύ τους λέξεις. Είναι ευκολότερο να απομνημονευτεί ένα μεγάλο σύνολο λέξεων από έναν τυχαίο συνδυασμό 20 συμβόλων, ενώ το αυξημένο μήκος προσθέτει σημαντική ασφάλεια. Η NIST χρησιμοποιεί πλέον αυτή τη λογική στις συστάσεις της για μακρύτερα passwords.
Υπάρχει όμως ένας ακόμη μεγαλύτερος κίνδυνος: η επαναχρησιμοποίηση.
Αν το ίδιο password χρησιμοποιείται σε δέκα διαφορετικές υπηρεσίες και παραβιαστεί η μία, ο επιτιθέμενος μπορεί να δοκιμάσει αυτοματοποιημένα τον ίδιο συνδυασμό email και password σε άλλες ιστοσελίδες. Η τεχνική είναι γνωστή ως credential stuffing.
Έτσι, ακόμη και ένας εξαιρετικός κωδικός γίνεται επικίνδυνος όταν χρησιμοποιείται παντού.
Τι κάνει ένα password πραγματικά ασφαλέστερο;
Η πιο αποτελεσματική λύση είναι διαφορετικός και μεγάλος κωδικός για κάθε σημαντικό λογαριασμό. Επειδή όμως είναι σχεδόν αδύνατο να απομνημονευτούν δεκάδες τέτοιοι κωδικοί, οι password managers μπορούν να δημιουργούν και να αποθηκεύουν τυχαίους κωδικούς. Η CISA συνιστά μεγάλα, τυχαία και μοναδικά passwords και τη χρήση password manager.
Ακόμη σημαντικότερη είναι η ενεργοποίηση πολυπαραγοντικού ελέγχου ταυτότητας (MFA). Αν κάποιος αποκτήσει το password, θα χρειάζεται και δεύτερο στοιχείο για να συνδεθεί. Όπου υποστηρίζονται passkeys ή φυσικά security keys, προσφέρουν ακόμη ισχυρότερη προστασία απέναντι σε πολλές μορφές phishing.
Χρειάζεται επίσης να γίνει μια βασική διάκριση: κανένα password, όσο μεγάλο κι αν είναι, δεν προστατεύει από όλες τις επιθέσεις. Αν ένας χρήστης πληκτρολογήσει έναν 25ψήφιο κωδικό σε μια ψεύτικη σελίδα phishing, ο εισβολέας δεν χρειάζεται να τον «σπάσει». Απλώς τον αποκτά.
Για αυτό η ασφάλεια δεν μετριέται μόνο σε χαρακτήρες.
Ένα μοναδικό password τουλάχιστον 15-16 χαρακτήρων, κατά προτίμηση δημιουργημένο από password manager, σε συνδυασμό με MFA ή passkey, προσφέρει πολύ καλύτερη προστασία από έναν μικρό κωδικό που απλώς περιέχει μερικά σύμβολα.
Το πιο σημαντικό συμπέρασμα είναι ότι κάθε επιπλέον τυχαίος χαρακτήρας αυξάνει εκθετικά τον χώρο αναζήτησης. Ένας κωδικός 8 χαρακτήρων μπορεί σήμερα να θεωρείται μικρός για σημαντικούς λογαριασμούς, ενώ η μετάβαση στους 15 ή 16 χαρακτήρες αλλάζει δραματικά τη δυσκολία μιας επίθεσης brute force.
Το ασφαλές password λοιπόν δεν είναι εκείνο που φαίνεται περίπλοκο. Είναι εκείνο που είναι μεγάλο, απρόβλεπτο, διαφορετικό για κάθε λογαριασμό και συνοδεύεται από ένα δεύτερο επίπεδο προστασίας.