Rainbow Tables ο εφιάλτης των κωδικών πρόσβασης

Η ονομασία Rainbow Tables ίσως παραπέμπει σε κάτι πολύχρωμο και όμορφο αλλά στην πραγματικότητα είναι ένα πολύ ισχυρό εργαλείο hacking.

Τι είναι τα Rainbow Tables; Πώς θα μπορούσε μια τόσο χαριτωμένη ονομασία να είναι τόσο επιβλαβής;

security

Η βασική ιδέα πίσω από τα Rainbow Tables:

Το σενάριο είναι ότι ένας κακόβουλος χρήστης κατάφερε να αποκτήσει πρόσβαση σε ένα διακομιστή και να υποκλέψει τη βάση δεδομένων που χρησιμοποιεί. Η βάση περιέχει ονόματα χρηστών και κωδικούς πρόσβασης.

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

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

Όταν ένας κωδικός πρόσβασης δοκιμαστεί σε ένα σύστημα γίνεται “hashed” χρησιμοποιώντας την κρυπτογράφηση, έτσι ο πραγματικός κωδικός πρόσβασης δεν αποστέλλεται σε μορφή απλού κείμενου διαμέσου της γραμμής επικοινωνίας. Αυτό αποτρέπει από αυτούς που “ακούν” το δίκτυο σας να υποκλέψουν τον κωδικό πρόσβασης. Το hash του κωδικού πρόσβασης συνήθως μοιάζει με ένα σωρό γράμματα και αριθμούς που δεν έχουν κανένα νόημα και έχει συνήθως διαφορετικό μέγεθος από το αρχικό κωδικό πρόσβασης. Έτσι ο κωδικός πρόσβασης “password”, αλλά έχει σαν MD5 hash το “5f4dcc3b5aa765d61d8327deb882cf99”

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

Ο κατακερματισμός (hashing) ενός κωδικού πρόσβασης είναι 1-way function, πράγμα που σημαίνει ότι δεν μπορεί να αποκρυπτογραφηθεί το hash για να δείτε ποιο είναι το σαφές κείμενο του κωδικού πρόσβασης. Δεν υπάρχει κλειδί για την αποκρυπτογράφηση του hash μόλις αυτή δημιουργηθεί. Δεν υπάρχει “αποκωδικοποιητής” αν θέλετε.

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

Εισαγωγή στα Rainbow Tables

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

rainbow tables

Τα Rainbow Tables σπάνε τους κωδικούς πρόσβασης σε ένα πολύ σύντομο χρονικό διάστημα σε σύγκριση με τις μεθόδους που περιγράψαμε παραπάνω. Ωστόσο, η διαδικασία χρειάζεται μεγάλο χώρο αποθήκευσης (μερικές φορές Terabytes) για τα Rainbow Tables. Αυτό όμως δεν είναι πρόβλημα τη σημερινή εποχή.

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

Πώς μπορείτε να προστατεύσετε τον εαυτό σας από επιθέσεις που χρησιμοποιούν Rainbow Tables;

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

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

Αν είστε προγραμματιστής Web εφαρμογών και θέλετε να προστατέψετε το κοινό σας:

1. Μην χρησιμοποιείτε αλγόριθμους MD5 και SHA1 για τον κατακερματισμό των κωδικών πρόσβασης, είναι ξεπερασμένοι.

2. Χρησιμοποιήστε κρυπτογράφηση “Salt” στο κωδικό ρουτίνας του κατακερματισμού σας

Προσθέτοντας “Salt” στη συνάρτηση κατακερματισμού κωδικών πρόσβασης θα βοηθήσει πολύ την προστασία της εφαρμογής σας. Για να δείτε κάποια παραδείγματα κωδικοποίησης που περιγράφουν πως μπορείτε να προσθέτετε Salt στην κρυπτογράφηση της εφαρμογής σας ή του site σας δείτε ένα εξαιρετικό άρθρο από το WebMasters By Design.

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

iGuRu.gr The Best Technology Site in Greeceggns

Get the best viral stories straight into your inbox!















Written by giorgos

Ο Γιώργος ακόμα αναρωτιέται τι κάνει εδώ....

Αφήστε μια απάντηση

Η ηλ. διεύθυνση σας δεν δημοσιεύεται. Τα υποχρεωτικά πεδία σημειώνονται με *

Το μήνυμα σας δεν θα δημοσιευτεί εάν:
1. Περιέχει υβριστικά, συκοφαντικά, ρατσιστικά, προσβλητικά ή ανάρμοστα σχόλια.
2. Προκαλεί βλάβη σε ανηλίκους.
3. Παρενοχλεί την ιδιωτική ζωή και τα ατομικά και κοινωνικά δικαιώματα άλλων χρηστών.
4. Διαφημίζει προϊόντα ή υπηρεσίες ή διαδικτυακούς τόπους .
5. Περιέχει προσωπικές πληροφορίες (διεύθυνση, τηλέφωνο κλπ).