Rainbow Tables: Ο χειρότερος εφιάλτης του κωδικού σας

Μην αφήσετε το χαριτωμένο τους όνομα να σας ξεγελάσει, αυτά τα πράγματα είναι τρομακτικά.

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

Ποια είναι τα τραπέζια ουράνιου τόξου; Πώς θα μπορούσε κάτι με ένα τόσο χαριτωμένο και χαζό όνομα να είναι τόσο βλαβερό;

Η βασική ιδέα πίσω από τους πίνακες ουράνιου τόξου

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

Οι κωδικοί πρόσβασης στο αρχείο είναι κρυπτογραφημένοι, οπότε δεν μπορώ να τις διαβάσω. Θα πρέπει να σπάσω τους κωδικούς πρόσβασης στο αρχείο (ή τουλάχιστον τον κωδικό πρόσβασης διαχειριστή), ώστε να μπορώ να τις χρησιμοποιήσω για την πρόσβαση στο σύστημα.

Ποιες είναι οι επιλογές για την κατάρρευση κωδικών πρόσβασης; Μπορώ να δοκιμάσω και να χρησιμοποιήσω ένα πρόγραμμα εξουδετέρωσης κωδικών πρόσβασης με βίαιες δυνάμεις όπως ο John the Ripper, το οποίο απομακρύνεται από το αρχείο κωδικών πρόσβασης, προσπαθώντας να μαντέψει με κάθε τρόπο τον πιθανό συνδυασμό ενός κωδικού πρόσβασης. Η δεύτερη επιλογή είναι να φορτώσετε ένα λεξικό πυρόλυσης κωδικού πρόσβασης που περιέχει εκατοντάδες χιλιάδες κωδικούς πρόσβασης που χρησιμοποιούνται συνήθως και να δείτε αν γίνεται οποιαδήποτε χτυπήματα. Αυτές οι μέθοδοι μπορεί να πάρουν εβδομάδες, μήνες ή και χρόνια, αν οι κωδικοί πρόσβασης είναι αρκετά ισχυροί.

Όταν ένας κωδικός πρόσβασης είναι "δοκιμασμένος" σε ένα σύστημα, έχει "κατειλημμένο" χρησιμοποιώντας κρυπτογράφηση, έτσι ώστε ο πραγματικός κωδικός πρόσβασης να μην αποστέλλεται ποτέ σε καθαρό κείμενο σε όλη τη γραμμή επικοινωνίας. Αυτό εμποδίζει τους υποκλοπών να παρεμποδίσουν τον κωδικό πρόσβασης. Το hash ενός κωδικού συνήθως μοιάζει με ένα σωρό σκουπίδια και είναι συνήθως διαφορετικό μήκος από τον αρχικό κωδικό πρόσβασης. Ο κωδικός πρόσβασής σας μπορεί να είναι "shitzu", αλλά το hash του κωδικού σας θα φαίνεται κάπως "7378347eedbfdd761619451949225ec1".

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

Η διαγραφή ενός κωδικού πρόσβασης είναι μια λειτουργία 1 δρόμου, που σημαίνει ότι δεν μπορείτε να αποκρυπτογραφήσετε το hash για να δείτε τι είναι το καθαρό κείμενο του κωδικού πρόσβασης. Δεν υπάρχει κανένα κλειδί για την αποκρυπτογράφηση του κατακερματισμού μόλις δημιουργηθεί. Δεν υπάρχει "δακτύλιο αποκωδικοποιητή", αν θέλετε.

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

Εισάγετε τους πίνακες ουράνιου τόξου

Τα Rainbow Tables είναι βασικά τεράστια σύνολα precomputed πινάκων γεμάτα με τιμές κατακερματισμού που είναι προ-αντιστοίχιση σε πιθανούς κωδικούς πρόσβασης plaintext. Οι πίνακες ουράνιου τόξου επιτρέπουν ουσιαστικά στους χάκερς να αντιστρέψουν τη λειτουργία κατακερματισμού για να καθορίσουν ποιος μπορεί να είναι ο κωδικός πρόσβασης χωρίς κείμενο. Είναι δυνατόν δύο διαφορετικοί κωδικοί πρόσβασης να έχουν ως αποτέλεσμα την ίδια κατακερματισμό, οπότε δεν είναι σημαντικό να μάθετε ποιος ήταν ο αρχικός κωδικός πρόσβασης, αρκεί να έχει το ίδιο hash. Ο κωδικός πρόσβασης χωρίς διευθύνσεις δεν μπορεί να είναι ο ίδιος κωδικός πρόσβασης που δημιουργήθηκε από τον χρήστη, αλλά για όσο χρονικό διάστημα αντιστοιχεί ο κατακερματισμός, τότε δεν έχει σημασία τι ήταν ο αρχικός κωδικός πρόσβασης.

Η χρήση των Rainbow Tables επιτρέπει τη δημιουργία ραγισμένων κωδικών πρόσβασης σε πολύ μικρό χρονικό διάστημα σε σύγκριση με τις μεθόδους brute-force, ωστόσο, το συμβιβασμό είναι ότι απαιτεί πολλή αποθήκευση (μερικές φορές Terabytes) για να κρατηθούν οι ίδιοι οι Rainbow Tables, Η αποθήκευση αυτών των ημερών είναι άφθονη και φθηνή, οπότε αυτή η συμφωνία δεν είναι τόσο μεγάλη όσο η δεκαετία πριν, όταν οι terabyte δίσκοι δεν ήταν κάτι που θα μπορούσατε να κερδίσετε στο τοπικό Best Buy.

Οι χάκερ μπορούν να αγοράσουν precomputed Rainbow Tables για την κατάρρευση των κωδικών πρόσβασης των ευάλωτων λειτουργικών συστημάτων όπως τα Windows XP, Vista, Windows 7 και οι εφαρμογές που χρησιμοποιούν το MD5 και το SHA1 ως μηχανισμό αντιστάθμισης κωδικού πρόσβασης (πολλοί προγραμματιστές εφαρμογών εξακολουθούν να χρησιμοποιούν αυτούς τους αλγόριθμους κατακερματισμού).

Πώς να προστατέψετε τον εαυτό σας από τις επιθέσεις κωδικών που βασίζονται σε ουράνιο τόξο

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

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

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

Ακολουθούν μερικές συμβουλές προγραμματιστών για την υπεράσπιση των επιθέσεων Table Rainbow:

  1. Μην χρησιμοποιείτε το MD5 ή το SHA1 στη λειτουργία κατακερματισμού του κωδικού πρόσβασης. Τα MD5 και SHA1 είναι παρωχημένοι αλγόριθμοι κατακερματισμού κωδικού πρόσβασης και οι περισσότεροι πίνακες ουράνιου τόξου που χρησιμοποιούνται για την κατάρρευση κωδικών πρόσβασης είναι χτισμένοι για να στοχεύουν εφαρμογές και συστήματα που χρησιμοποιούν αυτές τις μεθόδους εξαφάνισης. Εξετάστε τη χρήση πιο σύγχρονων μεθόδων αντιστοίχισης όπως το SHA2.
  2. Χρησιμοποιήστε ένα κρυπτογραφικό "Salt" στην ρουτίνα κατακερματισμού του κωδικού πρόσβασης. Η προσθήκη κρυπτογραφικού αλατιού στη λειτουργία αντιστοίχισης κωδικού πρόσβασης θα σας βοηθήσει να υπερασπιστείτε τη χρήση των Πινάκων Rainbow που χρησιμοποιούνται για τη διάσπαση κωδικών πρόσβασης στην εφαρμογή σας. Για να δείτε μερικά παραδείγματα κωδικοποίησης για το πώς να χρησιμοποιήσετε ένα κρυπτογραφικό άλας για να βοηθήσετε στην εφαρμογή "Rainbow-Proof", παρακαλούμε δείτε την τοποθεσία WebMasters By Design, η οποία έχει ένα μεγάλο άρθρο για το θέμα.

Αν θέλετε να δείτε πώς οι χάκερ εκτελούν μια επίθεση κωδικού πρόσβασης χρησιμοποιώντας Rainbow Tables, μπορείτε να διαβάσετε αυτό το εξαιρετικό άρθρο σχετικά με τον τρόπο χρήσης αυτών των τεχνικών για να ανακτήσετε τους δικούς σας κωδικούς πρόσβασης.