»

Jul 22 2011

Ασφάλεια κωδικών πρόσβασης

Η Gibson Research Corporation (που είχε βγάλει παλιά το γνωστό πρόγραμμα “Shoot the Messenger” για την αφαίρεση του Windows Messenger) έχει γράψει ένα ενδιαφέρον άρθρο σχετικά με την ασφάλεια των κωδικών εξετάζοντας το μέγεθος τους. Καταλήγει πως όσο μεγαλύτερο το μέγεθος των κωδικών τόσο δυσκολότερο το σπάσιμο τους. Αυτό συμβαίνει γιατί σε μια επίθεση ωμής βίας (brute force) όπου δοκιμάζονται όλοι οι δυνατοί συνδυασμοί, αυτό που παίζει ρόλο είναι ποιό είναι τελικά το πλήθος αυτών των συνδυασμών που θα πρέπει να δοκιμάσουμε.

Ας δώσω ένα παράδειγμα: ας υποθέσουμε πως μπορώ να διαλέξω ένα κωδικό χρησιμοποιώντας μόνο αριθμούς. Για κάθε ψηφίο του κωδικού μου δηλαδή έχω 10 δυνατές επιλογές (1 ως 9 και το 0). Οι διαφορετικοί συνδυασμοί κωδικών υπολογίζονται πολλαπλασιάζοντας μεταξύ τους το πλήθος των δυνατών επιλογών κάθε ψηφίου, για όσα ψηφία έχουμε. Αν διάλεξα τον κωδικό “54366” για παράδειγμα τότε στην ουσία ένας επίδοξος cracker θα έπρεπε να δοκιμάσει 10x10x10x10x10 = 10^5 = 10.000 διαφορετικούς κωδικούς μέχρι να τον βρει. Αν σε αυτόν τον κωδικό έβαζα μόλις ένα ψηφίο ακόμα και από μέγεθος 5 τον πήγαινα 6, έστω “543669”, τότε ο επίδοξος cracker θα έπρεπε να δοκιμάσει 100.000 συνδυασμούς! Καταλαβαίνουμε δηλαδή πως όντως το μέγεθος των κωδικών μετράει και μάλιστα πολύ.

ΑΛΛΑ ΠΡΟΣΟΧΗ, το παραπάνω έχει να κάνει με τα brute-force attacks όπου χρησιμοποιούμε κάποιο πρόγραμμα που δοκιμάζει με τη σειρά όλους αυτούς τους δυνατούς συνδυασμούς. Υπάρχουν και οι επιθέσεις λεξικού (dictionary attacks) όπου δοκιμάζουμε μήπως ο κωδικός ανήκει σε μια υπάρχουσα λίστα κωδικών (wordlist) από την οποία αντλούμε στοιχεία. Για παράδειγμα θα μπορούσα να φτιάξω μια λίστα με τους 500 χειρότερους κωδικούς και να δοκιμάσω μήπως κάποιος από αυτούς είναι αυτός που ψάχνω. Η αναζήτηση 500 μόνο συνδυασμών σε σχέση με τους 100.000 παραπάνω είναι σταγόνα στον ωκεανό. Σε αυτή την περίπτωση δεν μετράει τόσο το μέγεθος όσο το πόσο “καλός” είναι ο κωδικός. Έτσι ένας κωδικός με 4 ψηφία όπως ο “y#8Z” είναι πολύ καλύτερος από τον κωδικό “baseball” των 8 ψηφίων.

Σύμφωνα με τις προτάσεις της NASA, τρία είναι τα στοιχεία ενός καλού κωδικού:

α) πρέπει να αποτελούνται από τουλάχιστον 8 ψηφία
β) πρέπει να περιλαμβάνουν ένα μείγμα διαφόρων τύπων χαρακτήρων, όπως κεφαλαία και μικρά γράμματα, αριθμούς και ειδικά σύμβολα (όπως τα %^&$#^:)
γ) δεν πρέπει να είναι κάποιο όνομα, κάποια φράση ή κάποια λέξη ενός λεξικού και δεν πρέπει να περιλαμβάνει μέρος του ονόματος σας ή του email σας

Powered by WordPress and the Graphene Theme.