Κρυπτογραφική λειτουργία Hash

Ορισμός κρυπτογραφικού κινδύνου

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

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

Ορισμένες κοινά χρησιμοποιούμενες κρυπτογραφικές λειτουργίες κατακερματισμού περιλαμβάνουν τα MD5 και SHA-1 , αν και υπάρχουν και πολλά άλλα.

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

Κρυπτογραφικές λειτουργίες Hash: Μια περίπτωση χρήσης

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

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

Αν είναι ίσοι, τότε μπορείτε να είστε αρκετά σίγουροι ότι η λήψη που έχετε είναι αυτή που ο Mozilla σας έχει σκοπό να έχετε.

Δείτε Τι είναι το Checksum; για περισσότερα σχετικά με αυτούς τους ειδικούς αριθμομηχανές, καθώς και περισσότερα παραδείγματα σχετικά με τη χρήση των αθροισμάτων ελέγχου για να βεβαιωθείτε ότι τα αρχεία που κατεβάζετε πραγματικά είναι αυτά που περιμένατε να είναι.

Μπορούν να αντιστραφούν οι λειτουργίες κρυπτογραφικού διαχωρισμού;

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

Ωστόσο, παρόλο που είναι σχεδόν αδύνατο να αντιστραφούν, δεν σημαίνει ότι είναι 100% εγγυημένα για την προστασία των δεδομένων.

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

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

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

Απλό κείμενο SHA-1 Checksum
12345 8cb2237d0679ca88db6464eac60da96345513964
κωδικό1 e38ad214943daad1d64c102faec29de4afe9da3d
αγαπάω τον σκύλο μου a25fb3505406c9ac761c8428692fbf5d5ddf1316
Jenny400 7d5eb0173008fe55275d12e9629eef8bdb408c1f
dallas1984 c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2

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

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

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

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

Κάνοντας αυτό βοηθά στον περιορισμό της χρησιμότητας ενός hack όπου κλέβονται όλα τα αθροίσματα ελέγχου.

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

Κωδικοί πρόσβασης και λειτουργίες κρυπτογράφησης

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

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

Όπως μπορείτε να δείτε, αυτοί οι δύο κωδικοί είναι αδύνατο να αποκρυπτογραφηθούν απλά κοιτάζοντας ακριβώς στο checkum:

MD5 για 12345: 827ccb0eea8a706c4c34a16891f84e7b

MD5 για 12 @ 34 $ 5: a4d3cc004f487b18b2ccd4853053818b

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

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

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

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

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

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

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

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

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

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

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

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

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