Αυθεντικότητα Μηνυμάτων Συναρτήσεις Hash/MAC Τμήμα Μηχ. Πληροφορικής ΤΕΙ Κρήτης Αυθεντικότητα Μηνυμάτων 1
Αυθεντικότητα Μηνύματος Εφαρμογές Προστασία ακεραιότητας Εξακρίβωση ταυτότητας αποστολέα Μη άρνηση αποστολής (ψηφιακή υπογραφή) Αυθεντικότητα Μηνυμάτων 2
Αυθεντικότητα Μηνύματος ύο Μέθοδοι Συνάρτηση Κατακερματισμού Hash Function Η τιμή είναι συνάρτηση του μηνύματος και έχει συγκεκριμένο μέγεθος Κώδικας Αυθεντικότητας Message Authentication Code MAC Η τιμή είναι συνάρτηση του μηνύματος και ενός κλειδιού και έχει συγκεκριμένο μέγεθος Αυθεντικότητα Μηνυμάτων 3
Συναρτήσεις Hash Μία συνάρτηση Hash Για οποιουδήποτε μεγέθους μήνυμα παράγει μία συγκεκριμένου μεγέθους σύνοψη h = H(M) Ο αλγόριθμος είναι γνωστός και δεν χρησιμοποιεί κλειδί (vs. MAC) Χρησιμοποιείται κυρίως για να αποκαλύψει τυχόν αλλαγές στο μήνυμα Είναι δυνατό να χρησιμοποιηθεί και για άλλους λόγους π.χ. ψηφιακές υπογραφές Αυθεντικότητα Μηνυμάτων 4
Συναρτήσεις Hash Ιδιότητες συνάρτησης Hash 1. Εφαρμόζεται σε οποιουδήποτε μεγέθους μήνυμα M 2. Η έξοδος είναι συγκεκριμένου μεγέθους h 3. Είναι εύκολο να υπολογιστεί το h=h(m) για κάθε M 4. οθέντος του h είναι αδύνατο να βρεθεί x έτσι ώστε H(x)=h Ιδιότητα one-way 5. οθέντος του x είναι αδύνατο να βρεθεί y έτσι ώστε H(y)=H(x) Ιδιότητα weak collision resistance 6. Είναι αδύνατο να βρεθεί οποιοδήποτε x,y έτσι ώστε H(y)=H(x) Ιδιότητα strong collision resistance Αυθεντικότητα Μηνυμάτων 5
Συναρτήσεις Hash Αυθεντικότητα Μηνυμάτων 6
Συναρτήσεις Hash Αυθεντικότητα Μηνυμάτων 7
Συναρτήσεις Hash Λέγοντας μη αντιστρέψιμη συνάρτηση εννοούμε ότι δεδομένου ενός y είναι υπολογιστικά πολύ δύσκολο έως αδύνατο να βρεθεί ο x Λέγοντας αμφιμονοσήμαντη εννοούμε ότι για δύο x 1, x 2 για τα οποία ισχύει ότι x 1 <> x 2 είναι πάντα H(x 1 ) <> H(x 2 ) Σε καμία περίπτωση θα είναι H(x 1 ) = H(x 2 ) όταν x 1 <> x 2 Η hash value παρουσιάζει συνοπτικά το μεγαλύτερο μήνυμα ή έγγραφο, για αυτό καλείται και σύνοψη μηνύματος (message digest) Μπορούμε να φανταστούμε την σύνοψη του μηνύματος σαν "ψηφιακό αποτύπωμα" ("digital fingerprint") του εγγράφου Αυθεντικότητα Μηνυμάτων 8
Κώδικας Αυθεντικότητας Μηνύματος (MAC) Μέθοδος ημιουργίας Ένας αλγόριθμος δημιουργεί μία μικρού και συγκεκριμένου μεγέθους σύνοψη (MAC) του μηνύματος Η σύνοψη εξαρτάται από το μήνυμα και κάποιο κλειδί Αν και η παραπάνω λειτουργία μοιάζει με κωδικοποίηση ο αλγόριθμος της σύνοψης δεν είναι απαραίτητο να είναι αντιστρεπτός Η σύνοψη επισυνάπτεται στο μήνυμα Ο παραλήπτης επαναλαμβάνει τη δημιουργία του MAC και ελέγχει εάν τα δύο αποτελέσματα ταυτίζονται Το MAC παρέχει εγγύηση ότι το μήνυμα δεν έχει αλλαχθεί και προέρχεται από τον συγκεκριμένο αποστολέα Εάν στο μήνυμα περιλαμβάνεται ο αύξοντας αριθμός της ακολουθίας τότε ένας τρίτος δεν είναι δυνατό να αλλάξει τη σειρά Αυθεντικότητα Μηνυμάτων 9
Κώδικας Αυθεντικότητας Μηνύματος (MAC) Αυθεντικότητα Μηνυμάτων 10
Κώδικας Αυθεντικότητας Μηνύματος (MAC) Η εμπιστευτικότητα επιτυγχάνεται με την κρυπτογράφηση του μηνύματος πριν ή μετά τον υπολογισμό του MAC Χρειάζονται δύο κλειδιά Υπάρχουν περιπτώσεις όπου η χρήση MAC πλεονεκτεί σε σχέση με τη χρήση κωδικοποίησης ολόκληρου του μηνύματος π.χ. ένα μήνυμα μεταδίδεται σε πολλούς παραλήπτες αλλά μόνο ένας, αυτός με το κλειδί, μπορεί να προβεί σε μία ενέργεια Προδιαγραφές MAC Γνωρίζοντας το μήνυμα και το MAC δεν πρέπει να είναι δυνατό να μπορούμε να βρούμε άλλο μήνυμα με το ίδιο MAC To MAC πρέπει να εξαρτάται το ίδιο από όλα τα bits της εισόδου Αυθεντικότητα Μηνυμάτων 11
Κώδικας Αυθεντικότητας Μηνύματος (MAC) Αυθεντικότητα Μηνυμάτων 12
Αλγόριθμοι Hash MD5 Input Hash Value (as hex byte string) d41d8cd98f00b204e9800998ecf8427e a 0cc175b9c0f1b6a831c399e269772661 abc 900150983cd24fb0d6963f7d28e17f72 SHA-1 Input Hash Value (as hex byte string) da39a3ee5e6b4b0d3255bfef95601890afd80709 a 86f7e437faa5a7fce15d1ddcb9eaeaea377667b8 abc a9993e364706816aba3e25717850c26c9cd0d89d Αυθεντικότητα Μηνυμάτων 13
Εφαρμογές Αρκετές φορές μόνο η αυθεντικότητα του αποστολέα είναι αρκετή (όχι κ η εμπιστευτικότητα της πληροφορίας) Χρήση MAC Ένα συγχωνευμένο μήνυμα μπορεί να δημοσιοποιηθεί χωρίς να αποκαλυφθεί το περιεχόμενο του αυθεντικού μηνύματος χρήση χρονοσφραγίδων Αυθεντικότητα Μηνυμάτων 14
Εφαρμογές Οι συναρτήσεις κατακερματισμού είναι πιο γρήγορες από τους αλγόριθμους κρυπτογράφησης και τους αλγόριθμους ψηφιακών υπογραφών η ψηφιακή υπογραφή των μηνυμάτων γίνεται με το συγχωνευμένο μήνυμα που είναι πιο μικρό και εύκολο στη διαχείριση Αυθεντικότητα Μηνυμάτων 15
Εφαρμογές Οι συναρτήσεις hash χρησιμοποιούνται στην δημιουργία των ψηφιακών υπογραφών Είναι πολύ σημαντικό να μην είναι πρακτικά εύκολο να βρεθούν δύο διαφορετικά μηνύματα με το ίδιο hash Η ψηφιακή υπογραφή είναι μία κρυπτογραφική πράξη πάνω σε ένα hash Άρα ταυτόσημα hashes θα δώσουν ταυτόσημες υπογραφές Θα μπορούσε λοιπόν κάποιος να εξαπατήσει τον υπογράφοντα δίνοντας του να υπογράψει ένα κείμενο που έχει το ίδιο hash με ένα δεύτερο που κοινοποιεί και έχει διαφορετικό περιεχόμενο από το πρώτο Ο υπογράφοντας είναι καλό να κρατάει ένα αντίγραφο από οτιδήποτε υπογράφει Πριν υπογράψει να κάνει κάποιες αλλαγές στο κείμενο που του δίνεται Αυθεντικότητα Μηνυμάτων 16
Εφαρμογές Αυθεντικότητα Μηνυμάτων 17
Εφαρμογές Μαρκάρισμα αρχείων ώστε να αποτρέπονται μη εξουσιοδοτημένες αλλαγές Ανίχνευση ιών Ανίχνευση επιδρομών στο σύστημα Tripwire Αποθήκευση passwords με μορφή hash και όχι cleartext Π.χ. αρχείο passwords στο UNIX Αυθεντικότητα Μηνυμάτων 18
Εφαρμογές Αυθεντικότητα Μηνυμάτων 19
Εφαρμογές Αυθεντικότητα Μηνυμάτων 20
Αλγόριθμοι Hash Ομοιότητες στην εξέλιξη των hash functions & block ciphers Ισχυρότερες επιθέσεις brute-force Οδηγούν στη σχεδίαση ισχυρότερων αλγόριθμων Από τον DES (64 bit) στον AES (128/192/256) Από τον MD5 (128 bit) στον SHA1 (160 bit) Χρησιμοποιούν επαναληπτικές δομές όπως και οι block ciphers Αυθεντικότητα Μηνυμάτων 21
MD5 Η τελευταία της σειράς MD2, MD4 Internet standard RFC1321 Μέχρι πρόσφατα ο πλέον διαδεδομένος αλγόριθμος hash Παράγει μία 128-bit τιμή hash Προβληματισμός για brute-force & κρυπταναλυτικές επιθέσεις Αυθεντικότητα Μηνυμάτων 22
Περιγραφή του Αλγόριθμου MD5 Αυθεντικότητα Μηνυμάτων 23
Secure Hash Algorithm (SHA-1) Ο αλγόριθμος SHA σχεδιάστηκε από τους οργανισμούς NIST & NSA το 1993 Παράγει μία 160-bit τιμή hash Αποτελεί τον προκρινόμενο αλγόριθμο hash σήμερα Βασίστηκε στο σχεδιασμό του MD4 με κάποιες σημαντικές διαφορές Αποτελεί το US πρότυπο για χρήση με το μηχανισμό για DSA υπογραφές Αναθεωρήθηκε το 1995 και μετονομάστηκε SHA-1 FIPS 180-1 1995, Internet RFC3174 Ο αλγόριθμος ονομάζεται SHA, το πρότυπο SHS Αυθεντικότητα Μηνυμάτων 24
Περιγραφή του Αλγόριθμου SHA Αυθεντικότητα Μηνυμάτων 25
Αναθεωρημένο Πρότυπο SHS O NIST εξέδωσε την έκδοση FIPS 180-2 Προσθέτει 3 επιπλέον αλγόριθμους hash SHA-256, SHA-384, SHA-512 Σχεδιασμένοι για να είναι συμβατοί με την ενισχυμένη ασφάλεια που παρέχει ο αλγόριθμος AES Η δομή και οι λεπτομέρειες είναι όμοιες με τον SHA-1 Άρα και η ανάλυση είναι παρόμοια Αυθεντικότητα Μηνυμάτων 26
Αναθεωρημένο Πρότυπο SHS Αυθεντικότητα Μηνυμάτων 27
Αλγόριθμοι Hash Αυθεντικότητα Μηνυμάτων 28
SHA-1 vs. MD5 Οι επιθέσεις brute force είναι δυσκολότερες (160 vs 128 bits για τον MD5) εν είναι ευάλωτος σε καμιά από τις γνωστές επιθέσεις (σε σχέση με τον ΜD5) Λίγο πιο αργός από τον MD5 (80 vs 64 steps) Και οι 2 έχουν σχεδιαστεί να είναι απλοί και εύχρηστοι Βελτιστοποιημένος για big endian CPU's (vs MD5 που είναι βελτιστοποιημένος για little endian CPU s) Αυθεντικότητα Μηνυμάτων 29
SHA-1 vs. MD5 Αυθεντικότητα Μηνυμάτων 30
Υπολογιστική Απόδοση CPU: Intel Core 2 6600 @ 2.4GHz, 4MB Cache RAM: 2GB DDR2 Αυθεντικότητα Μηνυμάτων 31