Ένας Πίνακας Ουράνιου Τόξου ήταν ένας πόρος που χρησιμοποιούνταν για την παραβίαση των κρυπτογραφικών συναρτήσεων κατακερματισμού, προκειμένου να ανακαλυφθούν κωδικοί πρόσβασης απλού κειμένου , χρησιμοποιώντας μια προ-υπολογισμένη βάση δεδομένων ελέγχου ταυτότητας . Οι λύσεις πινάκων Ουράνιου Τόξου χρησιμοποιούν έναν αλγόριθμο για να αναζητήσουν τις πληροφορίες που απαιτούνται για την γρήγορη αποκρυπτογράφηση των κατακερματισμών κωδικών πρόσβασης. Ενώ οι σύγχρονοι αλγόριθμοι salting και hashing κωδικών πρόσβασης έχουν σε μεγάλο βαθμό ακυρώσει τον πίνακα ουράνιου τόξου, υπάρχουν πολλές εφαρμογές που δεν χρησιμοποιούν τέτοια άμεσα διαθέσιμα εργαλεία και αντ' αυτού βασίζονται σε μοναδικούς κατακερματισμένους κωδικούς πρόσβασης λόγω τεμπελιάς ή απροσεξίας σε σημαντικές λεπτομέρειες.
Η ιδέα της χρήσης πινάκων ουράνιου τόξου ή άλλων μεθόδων hash cracking προέρχεται από τη χρήση hashes κωδικών πρόσβασης σε βάσεις δεδομένων ελέγχου ταυτότητας. Οποιοδήποτε σύστημα χρησιμοποιεί κωδικούς πρόσβασης για έλεγχο ταυτότητας πρέπει να αποθηκεύει αυτούς τους κωδικούς πρόσβασης με τη μία ή την άλλη μορφή. Η χειρότερη περίπτωση είναι ότι ο προγραμματιστής εφαρμογών αποθηκεύει τους κωδικούς πρόσβασης ως απλό κείμενο, γεγονός που καθιστά όλους τους κωδικούς πρόσβασης των εγγεγραμμένων χρηστών εξαιρετικά ευάλωτους σε μη εξουσιοδοτημένη πρόσβαση από χάκερ ή ακόμα και εσωτερικούς διαχειριστές συστημάτων. Ενώ αυτή η κακή πρακτική είναι γνωστή εδώ και δεκαετίες, εξακολουθεί να είναι συνηθισμένη στις διαδικτυακές εφαρμογές.
Ένα ελαφρώς αλλά αναμφισβήτητα άσκοπο πράγμα που κάνουν ορισμένοι προγραμματιστές είναι να εκτελούν έναν μόνο υπολογισμό κατακερματισμού του κωδικού πρόσβασης. Υπάρχουν συνηθισμένοι αλγόριθμοι κατακερματισμού που μετατρέπουν τους κωδικούς πρόσβασης σε αυτό που μπορεί να φαίνεται να είναι τυχαιοποιημένες συμβολοσειρές χαρακτήρων, αλλά στην πραγματικότητα, είναι πολύ εύκολο να ανακατασκευαστούν με έναν πίνακα ουράνιου τόξου. Όταν κάνετε έλεγχο ταυτότητας σε ένα σύστημα, ο κωδικός πρόσβασης που εισάγετε κατακερματίζεται χρησιμοποιώντας τον ίδιο αλγόριθμο που χρησιμοποιήθηκε για την αποθήκευση του κωδικού πρόσβασης στη βάση δεδομένων κωδικών πρόσβασης. Εάν τα κατακερματισμένα στοιχεία ταιριάζουν, ο έλεγχος ταυτότητας έχει ολοκληρωθεί με επιτυχία. Εδώ έρχεται στο προσκήνιο ένας πίνακας ουράνιου τόξου.
Ένας πίνακας rainbow αποθηκεύει όλα τα μονόδρομα hashes κωδικών πρόσβασης απλού κειμένου από 1 χαρακτήρα σε μήκος έως 7 ή ίσως 8 χαρακτήρες σε μήκος. (Ένας πίνακας rainbow 8 χαρακτήρων για έναν απλό αλγόριθμο κατακερματισμού θα καταλαμβάνει έως και 32 Petabytes χώρου βάσης δεδομένων για αποθήκευση!). Όταν ένας χάκερ κλέβει μια προσωρινή μνήμη απλών hashes κωδικών πρόσβασης, μπορεί να αναζητήσει την τιμή κατακερματισμού στον πίνακα rainbow για να βρει τον κωδικό πρόσβασης απλού κειμένου.
Με την έλευση της αλάτισης κωδικών πρόσβασης έως και 32 χαρακτήρων, δεν υπάρχουν πίνακες rainbow για την εκτέλεση τέτοιων αναζητήσεων (Πηγή: Rainbow Tables are Dead ). Το πιο σημαντικό είναι ότι πολλά τυπικά δυαδικά αρχεία εκτελούν επαναληπτικό κατακερματισμό κωδικών πρόσβασης. Αυτό συμβαίνει όταν ένας αλάτισμένος κωδικός πρόσβασης κατακερματίζεται ξανά και ξανά, έναν καθορισμένο αριθμό φορών, και η τελική τιμή κατακερματισμού, ας πούμε, του 764ου κατακερματισμού του αρχικά αλατισμένου κωδικού πρόσβασης, αποθηκεύεται στη βάση δεδομένων για μελλοντική σύγκριση κατά τον έλεγχο ταυτότητας στην εφαρμογή. Οι πίνακες Rainbow δεν μπορούν να παραβιάσουν αυτούς τους κωδικούς πρόσβασης.
Όταν οι χάκερ κλέβουν μια προσωρινή μνήμη κωδικών πρόσβασης, μπορούν γρήγορα να προσδιορίσουν εάν οι κωδικοί πρόσβασης έχουν αλατιστεί και κατακερματιστεί N φορές, χρησιμοποιώντας έναν πίνακα ουράνιου τόξου για να αναζητήσουν τους 100 κορυφαίους κωδικούς πρόσβασης. Εάν βρουν μια αντιστοιχία, μπορούν να εργαστούν προς τα πίσω για να προσδιορίσουν εάν οι προγραμματιστές ήταν τεμπέληδες και δεν αλάτισαν τους κωδικούς πρόσβασης ή δεν τους κατακερμάτισαν επαναληπτικά ή και τα δύο. Πολύ συχνά, οι προγραμματιστές έχουν παραλείψει αυτά τα σημαντικά βήματα, επομένως οι χάκερ έχουν πλέον τους κωδικούς πρόσβασής σας με αντίστροφη μηχανική σε έναν απλό πίνακα ουράνιου τόξου.
Οι πίνακες Rainbow είναι ένας γρήγορος και αποτελεσματικός τρόπος για την αποκρυπτογράφηση κωδικών πρόσβασης χωρίς αλάτι και μεμονωμένου κατακερματισμού. Εάν αναπτύσσετε μια εφαρμογή στην SMB σας, φροντίστε να ρωτήσετε πώς αποθηκεύονται οι κωδικοί πρόσβασης. Ρωτήστε τον προγραμματιστή πόσο μεγάλο είναι το SALT του (8 είναι μικρό, 32 χαρακτήρες επαρκούν) και στη συνέχεια ρωτήστε πόσες επαναλήψεις κάνει στους κωδικούς πρόσβασης πριν αποθηκεύσει την τιμή κατακερματισμού. Το LastPass κάνει τον κατακερματισμό του κωδικού πρόσβασης πάνω από 100,000 φορές στον Κύριο Κωδικό Πρόσβασης. Αυτό μπορεί να είναι υπερβολικό για τον οργανισμό σας, αλλά θα πρέπει να απαιτούνται μερικές εκατοντάδες έως χιλιάδες.
Οι συνήθεις συναρτήσεις salting και hashing περιλαμβάνουν: " Argon2 , scrypt , bcrypt και PBKDF2 ".
Ό,τι και να κάνετε, αντιμετωπίστε αυτό ως κρίσιμη απαίτηση στην ανάπτυξη της εφαρμογής σας. Εάν δεν μπορείτε να ενσωματώσετε SSO στο σχήμα κωδικού πρόσβασης και χρειάζεται να αποθηκεύσετε κατακερματισμούς κωδικού πρόσβασης, τότε πρέπει να αλατίσετε και να κατακερματίσετε επαναληπτικά τη βάση δεδομένων κωδικού πρόσβασης χρησιμοποιώντας τα εργαλεία που αναφέρονται σε αυτό το άρθρο.
Πηγές:
Πρόσθετες Πληροφορίες:
Πώς να ασφαλίσετε τον ιστότοπό σας από παραβιάσεις δεδομένων
Το τραπέζι του ουράνιου τόξου είναι νεκρό
Κρυπτογράφηση, κατακερματισμός και αλάτισμα: ποια είναι η διαφορά
Σχετικοί Όροι:
Ανακαλύψτε και μοιραστείτε τις τελευταίες τάσεις, συμβουλές και βέλτιστες πρακτικές στον τομέα της κυβερνοασφάλειας – μαζί με νέες απειλές που πρέπει να προσέξετε.
Συγγραφέας: Katie Boquetti | Σύνταξη: Craig Taylor Σύνταξη από τον Craig Taylor: Ξέρουμε εδώ και καιρό...
Διαβάστε περισσότερα
Συγγραφέας: Katie Boquetti | Σύνταξη: Craig Taylor Σύνταξη από τον Craig Taylor: Ένα CAPTCHA θα πρέπει να ελέγχει εάν...
Διαβάστε περισσότεραΑποκτήστε πιο οξυδερκή εικόνα των ανθρώπινων κινδύνων, με τη θετική προσέγγιση που υπερτερεί των παραδοσιακών δοκιμών ηλεκτρονικού "ψαρέματος" (phishing).
