Τι είναι η κρυπτογραφική συνάρτηση κατακερματισμού;

Πίνακας περιεχομένων:

Τι είναι η κρυπτογραφική συνάρτηση κατακερματισμού;
Τι είναι η κρυπτογραφική συνάρτηση κατακερματισμού;
Anonim

Μια κρυπτογραφική συνάρτηση κατακερματισμού (CHF) είναι ένας αλγόριθμος που μπορεί να εκτελεστεί σε δεδομένα όπως ένα μεμονωμένο αρχείο ή έναν κωδικό πρόσβασης για την παραγωγή μιας τιμής που ονομάζεται άθροισμα ελέγχου.

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

Ορισμένες συνήθως χρησιμοποιούμενες συναρτήσεις κατακερματισμού κρυπτογράφησης περιλαμβάνουν MD5 και SHA-1, αν και υπάρχουν και πολλές άλλες. Αυτές αναφέρονται συχνά ως "συναρτήσεις κατακερματισμού", αλλά αυτό δεν είναι τεχνικά σωστό. Η συνάρτηση κατακερματισμού είναι ένας γενικός όρος που περιλαμβάνει CHF μαζί με άλλα είδη αλγορίθμων όπως κυκλικούς ελέγχους πλεονασμού.

Συναρτήσεις κατακερματισμού κρυπτογράφησης: Περίπτωση χρήσης

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

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

Image
Image

Μπορούν να αντιστραφούν οι κρυπτογραφικές συναρτήσεις κατακερματισμού;

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

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

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

Ακολουθεί μια απλοποιημένη έκδοση ενός πίνακα ουράνιου τόξου για να δείξει πώς θα λειτουργούσε κάποιος όταν χρησιμοποιούσε την κρυπτογραφική συνάρτηση κατακερματισμού SHA-1:

Παράδειγμα πίνακα Rainbow
Plaintext SHA-1 Άθροισμα ελέγχου
12345 8cb2237d0679ca88db6464eac60da96345513964
password1 e38ad214943daad1d64c102faec29de4afe9da3d
ilovemydog a25fb3505406c9ac761c8428692fbf5d5ddf1316
Jenny400 7d5eb0173008fe55275d12e9629eef8bdb408c1f
dallas1984 c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2

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

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

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

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

Κωδικοί πρόσβασης και κρυπτογραφικές συναρτήσεις κατακερματισμού

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

Δεδομένου ότι ένα CHF παράγει ένα μη αναστρέψιμο άθροισμα ελέγχου, είναι ασφαλές για εσάς να κάνετε τον κωδικό πρόσβασής σας τόσο απλό όσο 12345, αντί για 12@34 $5, απλώς και μόνο επειδή τα ίδια τα αθροίσματα ελέγχου δεν μπορούν να γίνουν κατανοητά; Όχι, και να γιατί.

Αυτοί οι δύο κωδικοί πρόσβασης είναι αδύνατο να αποκρυπτογραφηθούν κοιτάζοντας απλώς τα αθροίσματα ελέγχου:

MD5 για 12345: 827ccb0eea8a706c4c34a16891f84e7b

MD5 για 12@34$5: a4d3cc004f487b18b2ccd4853053818b

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

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

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

Περισσότερες πληροφορίες σχετικά με τις κρυπτογραφικές συναρτήσεις κατακερματισμού

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

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

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

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

Οι συγκρούσεις μπορεί να συμβούν επειδή κάθε CHF παράγει μια τιμή σταθερού μήκους ανεξάρτητα από τα δεδομένα εισόδου. Για παράδειγμα, η κρυπτογραφική συνάρτηση κατακερματισμού MD5 δημιουργεί 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983 και e10adc3949baF08e75 για συνολικά διαφορετικά δεδομένα

Το πρώτο άθροισμα ελέγχου είναι από 12345. Το δεύτερο δημιουργήθηκε από περισσότερα από 700 γράμματα και αριθμούς και το τρίτο είναι από 123456. Και οι τρεις είσοδοι έχουν διαφορετικά μήκη, αλλά τα αποτελέσματα έχουν πάντα μόνο 32 χαρακτήρες, αφού χρησιμοποιήθηκε άθροισμα ελέγχου MD5.

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

Γι' αυτό δημιουργήθηκαν άλλες συναρτήσεις κατακερματισμού κρυπτογράφησης. Ενώ το MD5 δημιουργεί μια τιμή 32 χαρακτήρων, το SHA-1 δημιουργεί 40 χαρακτήρες και το SHA-2 (512) δημιουργεί 128. Όσο μεγαλύτερος είναι ο αριθμός των χαρακτήρων που έχει το άθροισμα ελέγχου, τόσο μικρότερη είναι η πιθανότητα να συμβεί σύγκρουση.

Συνιστάται: