Γρήγορη ερώτηση: Ποιό password είναι πιο ασφαλές? Το "D0g...................." ή το "PrXyc.N(n4k77#L!eVdAf9"? Εκ πρώτης όψεως, το πιο περίπλοκο password - που είναι ασύλληπτα δύσκολο να το θυμάται κανείς - φαίνεται υψηλότερης ασφάλειας. Εν προκειμένω, όμως, το απλοϊκό, εκ πρώτης όψεως, "D0g....................." είναι κυριολεκτικά 95 φορές πιο ασφαλές. Άρθρο του pcsteps μας δείχνει πώς να επιλέξουμε το τέλειο password για τις δικές μας ανάγκες!

Το Password είναι η πόρτα, το κλειδί, και η κλειδαριά της ψηφιακής εποχής, για να κρατάει απ' έξω τους ανεπιθύμητους. Ευτυχώς για εμάς, σε αντίθεση με τις πόρτες ασφαλείας, το "θωρακισμένο" password ασφαλείας δεν κοστίζει περισσότερο από το απλό password.

Το ιδανικό password πρέπει να είναι:

1) Ασυνήθιστο. Δεν πρέπει να αποτελείται αποκλειστικά από μία υπάρχουσα λέξη, π.χ. "sex", "god", "House", "Greece", "Giannis", "kokkoras" ή, θεός φυλάξοι, "password" (μην γελάτε, το "password" είναι το 4ο πιο συνηθισμένο password. Ώρες ώρες είμαστε άξιοι της μοίρας μας). Γενικά, αν υπάρχει στο λεξικό, απαγορεύεται δια ροπάλου.

2) Μη-προσωπικό. Αποφεύγουμε την ημερομηνία των γενεθλίων μας. Είναι σαν να δίνουμε το κλειδί του σπιτιού μας (και της ταχυδρομικής θυρίδας μας) σε οποιονδήποτε γνωστό και άγνωστο ξέρει από το facebook πότε έχουμε γενέθλια. Ομοίως αποφεύγουμε οτιδήποτε θα μπορούσε να μαντέψει κάποιος, όπως π.χ. το τηλέφωνό μας, το όνομα του κατοικιδίου μας κλπ.

3) Μη-προβλέψιμο. Αποφεύγουμε τυπικούς συνδυασμούς γραμμάτων και αριθμών, όπως 123456, qwerty, abcdefg, 1qaz2wsx κλπ

Οι τρεις παραπάνω κανόνες βοηθούν στο να μην μπορέσει κάποιος να μαντέψει το password.

Εάν ένας hacker δεν μπορεί να μαντέψει ένα κωδικό ή να τον βρει σε κάποιο dictionary με πιθανές λέξεις - και δεν υπάρχει κάποιο κενό ασφαλείας που να μπορεί να εκμεταλλευτεί - η μόνη μέθοδος για να το βρει είναι το "brute force": επιχειρεί, μέσω ειδικών προγραμμάτων, να δοκιμάσει όλους τους πιθανούς συνδυασμούς γραμμάτων, αριθμών, συμβόλων μέχρι να πετύχει το password.

Οι τυπικές Online επιθέσεις τύπου "brute force" μπορούν να δοκιμάσουν μερικές εκατοντάδες διαφορετικά password ανά δευτερόλεπτο. Εμείς θα υποθέσουμε τρία σενάρια για να βρούμε το ιδανικό password: Ένα Online attack scenario με 1000 guesses ανά δευτερόλεπτο, ένα offline fast attack scenario με εκατό δισεκατομμύρια guesses ανά δευτερόλεπτο και ένα Massive Cracking Array Scenario, που μαντεύει εκατό τρισεκατομμύρια password ανά δευτερόλεπτο.

Ως εκ τούτου:

4) Μήκος. Φροντίζουμε το password να έχει μέγεθος τουλάχιστον 8 χαρακτήρες.

Τα προγράμματα που μαντεύουν τα password λειτουργούν πολύ μεθοδικά. Αν τα ρυθμίσουμε να βρουν ένα password έως 8 χαρακτήρων μόνο με αριθμούς, θα ξεκινήσουν πρώτα με κωδικούς ενός χαρακτήρα: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Ύστερα, θα προχωρήσουν στους δύο χαρακτήρες: 10, 11, 12... 98, 99. Ύστερα στους τρεις και ούτω καθεξής, μέχρι να βρεθεί ο κωδικός ή να φτάσει στο 99999999 (και να αποτύχει, αν το password ήταν 9 αριθμών).

Με την παραπάνω λογική, το σύνολο των πιθανών δοκιμών που μπορούν να γίνουν σε ένα password με 8 χαρακτήρες είναι 111.111.110 ή 1,11x108

Με 1000 guesses το δευτερόλεπτο, το αριθμητικό password των 8 χαρακτήρων (π.χ. 98532548) θα βρεθεί το πολύ σε 1,29 ημέρες.

Όπως καταλαβαίνετε, αν προσθέσουμε έναν ακόμα αριθμό σαν χαρακτήρα, το σύνολο των πιθανών δοκιμών δεκαπλασιάζεται (11,1x109). Αν ο κωδικός μας αποτελείται από 12 αριθμούς, οι πιθανοί συνδυασμοί είναι 11,1x1012 και με 1000 guesses ανά δευτερόλεπτο χρειάζονται 35.33 χρόνια για να εξαντληθούν όλοι.

5) Ποικιλία. Το password πρέπει να αποτελείται από έναν συνδυασμό κεφαλαίων και μικρών γραμμάτων, αριθμών και συμβόλων.

Αν στο προηγούμενο παράδειγμα με τους 8 αριθμούς αντικαταστήσουμε τον ένα με ένα σύμβολο (π.χ. 985325.8), τότε από 1,29 ημέρες ο μέγιστος χρόνος εκτοξεύεται στους 3.8 αιώνες (!) με χίλια guesses ανά δευτερόλεπτο.

Αυτό συμβαίνει γιατί, εκτός από τα 10 αριθμητικά ψηφία (0,1,2 έως 9), το πρόγραμμα που κάνει το brute force πρέπει να λάβει υπ' όψιν του και τα 33 σύμβολα που αναγνωρίζει ο υπολογιστής (!,@,#,$,%,^,&,* κλπ). Επιπλέον, σημασία έχει και η θέση στην οποία βρίσκεται το σύμβολο. Το "9." δεν είναι το ίδιο με το ".9", ούτε το "1.1" με το "11." ή το ".11". Γι' αυτό και οι πιθανοί συνδυασμοί, ενώ με τους 8 αριθμούς είναι 111.111.110, αντικαθιστώντας έναν αριθμό με ένα σύμβολο γίνονται 11.966.490.760.400.

Αντίστοιχα, ένα password 8 χαρακτήρων με τουλάχιστον έναν αριθμό, ένα σύμβολο, ένα κεφαλαίο γράμμα και ένα μικρό γράμμα (π.χ. 1aA.7890) μας δίνει 6.704.780.954.517.120 πιθανούς συνδυασμούς (γιατί πρέπει να κάνει συνδυασμό ανάμεσα σε 26 κεφαλαία γράμματα, 26 μικρά, 33 σύμβολα και 10 ψηφία). Με 1000 guesses το δευτερόλεπτο, το πρόγραμμα θα χρειαστεί 2,13 χιλιάδες αιώνες για να τους δοκιμάσει όλους.

Συνδυάζοντας το μήκος με την ποικιλία είναι εμφανές γιατί το password D0g.................... των 23 χαρακτήρων είναι σχεδόν 100 φορές καλύτερο από το PrXyc.N(n4k77#L!eVdAf9 των 22 χαρακτήρων. Υπάρχει όμως και άλλο ένα σημείο στο οποίο υπερτερεί το D0g....................

6) Να το θυμόμαστε εύκολα (μόνο εμείς).

Ό,τι και να λέμε, το PrXyc.N(n4k77#L!eVdAf9 είναι ένα φανταστικό password. Περιέχει έξι κεφαλαία γράμματα, οκτώ μικρά, τέσσερις αριθμούς και τέσσερα σύμβολα, σύνολο 22 χαρακτήρες. Οι πιθανοί συνδυασμοί για να βρεθεί είναι ένας αριθμός με 44 ψηφία (32.697.539.119.683.393.423.636.678.337.924.023.892.017.120, για τους αριθμολάγνους). Με 1000 guesses το δευτερόλεπτο, το πρόγραμμα θα χρειαστεί 35,53 εκατομμυρίων τρισεκατομμυρίων τρισεκατομμυρίων αιώνων για να εξαντλήσει όλους τους συνδυασμούς.

Και, φυσικά, δεν πρόκειται να μάθετε ποτέ αυτό το password. Για να το γράψετε θα πρέπει να το διαβάζετε από κάπου και να πατάτε ένα ένα τα κουμπιά του. Κι έτσι και κάνετε έστω κι ένα λάθος (στο κάτω-κάτω μόνο αστεράκια θα βλέπετε στην οθόνη), άντε φτου κι απ' την αρχή. Και, φυσικά, δεν έχει καμία λογική να έχετε παντού το ίδιο password. Οπότε, θα πρέπει να φτιάξετε άλλα 10-12 τέτοια (ένα για κάθε κοινωνικό δίκτυο, ένα για κάθε e-mail και webmail κλπ), και να αφιερώσετε το υπόλοιπο της ζωής σας για να τα αποστηθίσετε.

Βέβαια, υπάρχει και η λύση του "D0g....................". Όμως, εδώ που τα λέμε, αφ' ενός μπορεί να μπερδευτείτε στο πόσες τελείες πατήσατε (είναι και 20, οι άτιμες), αφ' ετέρου δεν είναι ασφαλές να ξέρει ο οποιοσδήποτε πως έχετε 20 φορές το ίδιο ψηφίο στο password σας.

Όχι, το ιδανικό password είναι κάτι που ο χρήστης θα θυμάται εύκολα (ιδανικά, δεν θα ξεχάσει ποτέ), θα έχει μια σχετική πολυπλοκότητα και ταυτόχρονα θα είναι αδύνατον να μαντέψει κάποιος άλλος.

Δημιουργώντας το τέλειο password

Ας υποθέσουμε πως το αγαπημένο μου φαγητό είναι τα μακαρόνια, κι εξ' αιτίας αυτού έχω φτάσει 90 κιλά. Οπότε καλό θα ήταν να μην έτρωγα μακαρόνια.

Το password: Makaronia?eimai90kila! είναι ιδανικό για εμένα (καλό είναι τα password να μην έχουν κενά, κάποια websites και προγράμματα δεν τα επιτρέπουν). Έχει 22 χαρακτήρες, κεφαλαία και μικρά γράμματα, αριθμούς και σύμβολα. Είναι ακριβώς όσο ισχυρό είναι το "PrXyc.N(n4k77#L!eVdAf9", με τη διαφορά πως το έχω ήδη απομνημονεύσει δεν πρόκειται να το ξεχάσω ποτέ.

Επίσης, ενώ όλοι μου οι φίλοι ξέρουν πως μου αρέσουν τα μακαρόνια και ορισμένοι μπορεί να ξέρουν και το βάρος μου, κανείς ποτέ δεν θα μπορέσει να μαντέψει πως αυτό είναι το password μου.

Δεν χρειάζεται βέβαια να είναι και τόσο μεγάλο. Το Forawpapoutsi#43 μπορεί να έχει μόνο 16 χαρακτήρες, αλλά και πάλι, με 1000 guesses ανα δευτερόλεπτο, χρειάζονται μέγιστο 14,14 εκατομμύρια δισεκατομμυρίων αιώνες για να σπάσει σε brute force.

Ακόμα και στην περίπτωση που ο hacker έχει πρόβαση σε ένα Massive Creacking Array, που μπορεί να δοκιμάσει εκατό τρισεκατομμύρια password το δευτερόλεπτο, πάλι για να σπάσει το Forawpapoutsi#43 χρειάζονται 1,41 εκατοντάδες εκατομμύρια αιώνες.

Συνοψίζοντας

Συνοψίζοντας, λοιπόν, για να έχετε το τέλειο password, βρείτε μια φράση που να θυμάστε εύκολα, φροντίστε να έχει τουλάχιστον ένα κεφαλαίο γράμμα, ένα μικρό, έναν αριθμό και ένα σύμβολο, και είστε κομπλέ.

Αν θέλετε να δοκιμάσετε τους συνδυασμούς που βγάζει το δικό σας password, μπορείτε να επισκεφτείτε τη σελίδα , https://www.grc.com/haystack.htm