Ασφάλεια ΠληροφοριακώνΣυστηµάτων ......1, x 2 για τα οποία...

34
Ασφάλεια Πληροφοριακών Συστημάτων Αυθεντικότητα Μηνυμάτων Συναρτήσεις Hash/MAC Ασφάλεια Πληροφοριακών Συστημάτων Αυθεντικότητα Μηνυμάτων 1 Τμήμα Μηχ. Πληροφορικής ΤΕΙ Κρήτης

Transcript of Ασφάλεια ΠληροφοριακώνΣυστηµάτων ......1, x 2 για τα οποία...

Page 1: Ασφάλεια ΠληροφοριακώνΣυστηµάτων ......1, x 2 για τα οποία ισχύει ότιx 1 ≠ x 2 είναι πάντα H(x 1) ≠H(x 2) n Σε καμία

Ασφάλεια Πληροφοριακών ΣυστηµάτωνΑυθεντικότητα Μηνυµάτων ΣυναρτήσειςHash/MAC

Ασφάλεια Πληροφοριακών ΣυστηµάτωνΑυθεντικότητα Μηνυµάτων 1

Τμήμα Μηχ. ΠληροφορικήςΤΕΙ Κρήτης

Page 2: Ασφάλεια ΠληροφοριακώνΣυστηµάτων ......1, x 2 για τα οποία ισχύει ότιx 1 ≠ x 2 είναι πάντα H(x 1) ≠H(x 2) n Σε καμία

Αυθεντικότητα Μηνύµατος

Ασφάλεια Πληροφοριακών ΣυστηµάτωνΑυθεντικότητα Μηνυµάτων 2

n Εφαρμογές

q Προστασία ακεραιότητας

q Εξακρίβωση ταυτότητας αποστολέα

q Μη άρνηση αποστολής (ψηφιακή υπογραφή)

Page 3: Ασφάλεια ΠληροφοριακώνΣυστηµάτων ......1, x 2 για τα οποία ισχύει ότιx 1 ≠ x 2 είναι πάντα H(x 1) ≠H(x 2) n Σε καμία

Αυθεντικότητα Μηνύµατος

Ασφάλεια Πληροφοριακών ΣυστηµάτωνΑυθεντικότητα Μηνυµάτων 3

n ∆ύο Μέθοδοι

q Συνάρτηση Κατακερματισμούn Hash Functionn Η τιμή είναι συνάρτηση του μηνύματος και έχει συγκεκριμένο μέγεθος

q Κώδικας Αυθεντικότηταςn Message Authentication Code – MACn Η τιμή είναι συνάρτηση του μηνύματος και ενός κλειδιού και έχει

συγκεκριμένο μέγεθος

Page 4: Ασφάλεια ΠληροφοριακώνΣυστηµάτων ......1, x 2 για τα οποία ισχύει ότιx 1 ≠ x 2 είναι πάντα H(x 1) ≠H(x 2) n Σε καμία

Συναρτήσεις Hash

n Μία συνάρτηση Hashq Για οποιουδήποτε μεγέθους μήνυμα παράγει μία συγκεκριμένου μεγέθους

σύνοψηh = H(M)

q Ο αλγόριθμος είναι γνωστός και δεν χρησιμοποιεί κλειδί (vs. MAC)

n Χρησιμοποιείται κυρίως για να αποκαλύψει τυχόν αλλαγές στο μήνυμα

n Είναι δυνατό να χρησιμοποιηθεί και για άλλους λόγουςq π.χ. ψηφιακές υπογραφές

Ασφάλεια Πληροφοριακών ΣυστηµάτωνΑυθεντικότητα Μηνυµάτων 4

Page 5: Ασφάλεια ΠληροφοριακώνΣυστηµάτων ......1, x 2 για τα οποία ισχύει ότιx 1 ≠ x 2 είναι πάντα H(x 1) ≠H(x 2) n Σε καμία

Συναρτήσεις Hash

Ασφάλεια Πληροφοριακών ΣυστηµάτωνΑυθεντικότητα Μηνυµάτων 5

n Ιδιότητες συνάρτησης Hash

1.

2.

3.

Εφαρμόζεται σε οποιουδήποτε μεγέθους μήνυμα M

Η έξοδος είναι συγκεκριμένου μεγέθους hΕίναι εύκολο να υπολογιστεί το h=H(M) για κάθε M

4.

5.

6.

∆οθέντος του h είναι αδύνατο να βρεθεί x έτσι ώστε H(x)=hΙδιότητα one-way∆οθέντος του x είναι αδύνατο να βρεθεί y έτσι ώστε H(y)=H(x)Ιδιότητα weak collision resistanceΕίναι αδύνατο να βρεθεί οποιοδήποτε x,y έτσι ώστε H(y)=H(x)Ιδιότητα strong collision resistance

Page 6: Ασφάλεια ΠληροφοριακώνΣυστηµάτων ......1, x 2 για τα οποία ισχύει ότιx 1 ≠ x 2 είναι πάντα H(x 1) ≠H(x 2) n Σε καμία

Συναρτήσεις Hash

Ασφάλεια Πληροφοριακών ΣυστηµάτωνΑυθεντικότητα Μηνυµάτων 6

n Σύνοψη, όχι κρυπτογράφηση

Page 7: Ασφάλεια ΠληροφοριακώνΣυστηµάτων ......1, x 2 για τα οποία ισχύει ότιx 1 ≠ x 2 είναι πάντα H(x 1) ≠H(x 2) n Σε καμία

Συναρτήσεις Hash

Ασφάλεια Πληροφοριακών ΣυστηµάτωνΑυθεντικότητα Μηνυµάτων 7

Page 8: Ασφάλεια ΠληροφοριακώνΣυστηµάτων ......1, x 2 για τα οποία ισχύει ότιx 1 ≠ x 2 είναι πάντα H(x 1) ≠H(x 2) n Σε καμία

Συναρτήσεις Hash

Ασφάλεια Πληροφοριακών ΣυστηµάτωνΑυθεντικότητα Μηνυµάτων 8

Page 9: Ασφάλεια ΠληροφοριακώνΣυστηµάτων ......1, x 2 για τα οποία ισχύει ότιx 1 ≠ x 2 είναι πάντα H(x 1) ≠H(x 2) n Σε καμία

Συναρτήσεις Hash

Ασφάλεια Πληροφοριακών ΣυστηµάτωνΑυθεντικότητα Μηνυµάτων 9

n Λέγοντας μη αντιστρέψιμη συνάρτηση εννοούμε ότι δεδομένου ενός y είναι υπολογιστικά πολύ δύσκολο έως αδύνατο να βρεθεί ο x

n Λέγοντας αμφιμονοσήμαντη εννοούμε ότι για δύο x1, x2 για τα οποία ισχύει ότι x1≠x2 είναι πάντα H(x1) ≠H(x2)

n Σε καμία περίπτωση θα είναι H(x1) = H(x2) όταν x1 ≠ x2

n Η hash value παρουσιάζει συνοπτικά το μεγαλύτερο μήνυμα ή έγγραφο, για αυτό καλείται και σύνοψη μηνύματος (message digest)

n Μπορούμε να φανταστούμε την σύνοψη του μηνύματος σαν "ψηφιακό αποτύπωμα" ("digital fingerprint") του εγγράφου

Page 10: Ασφάλεια ΠληροφοριακώνΣυστηµάτων ......1, x 2 για τα οποία ισχύει ότιx 1 ≠ x 2 είναι πάντα H(x 1) ≠H(x 2) n Σε καμία

Κώδικας Αυθεντικότητας Μηνύµατος (MAC)

Ασφάλεια Πληροφοριακών ΣυστηµάτωνΑυθεντικότητα Μηνυµάτων 10

n Μέθοδος ∆ημιουργίαςq Ένας αλγόριθμος δημιουργεί μία μικρού και συγκεκριμένου μεγέθους

σύνοψη (MAC) του μηνύματοςq Η σύνοψη εξαρτάται από το μήνυμα και κάποιο κλειδίq Αν και η παραπάνω λειτουργία μοιάζει με κωδικοποίηση ο αλγόριθμος της

σύνοψης δεν είναι απαραίτητο να είναι αντιστρεπτόςq Η σύνοψη επισυνάπτεται στο μήνυμαq Ο παραλήπτης επαναλαμβάνει τη δημιουργία του MAC και ελέγχει εάν τα

δύο αποτελέσματα ταυτίζονται

n Το MAC παρέχει εγγύηση ότι το μήνυμα δεν έχει αλλαχθεί και προέρχεται από τον συγκεκριμένο αποστολέα

n Εάν στο μήνυμα περιλαμβάνεται ο αύξοντας αριθμός της ακολουθίας τότε ένας τρίτος δεν είναι δυνατό να αλλάξει τη σειρά

Page 11: Ασφάλεια ΠληροφοριακώνΣυστηµάτων ......1, x 2 για τα οποία ισχύει ότιx 1 ≠ x 2 είναι πάντα H(x 1) ≠H(x 2) n Σε καμία

Κώδικας Αυθεντικότητας Μηνύµατος (MAC)

Ασφάλεια Πληροφοριακών ΣυστηµάτωνΑυθεντικότητα Μηνυµάτων 11

Page 12: Ασφάλεια ΠληροφοριακώνΣυστηµάτων ......1, x 2 για τα οποία ισχύει ότιx 1 ≠ x 2 είναι πάντα H(x 1) ≠H(x 2) n Σε καμία

Κώδικας Αυθεντικότητας Μηνύµατος (MAC)

Ασφάλεια Πληροφοριακών ΣυστηµάτωνΑυθεντικότητα Μηνυµάτων 12

n Η εμπιστευτικότητα επιτυγχάνεται με την κρυπτογράφηση του μηνύματος πριν ή μετά τον υπολογισμό του MACq Χρειάζονται δύο κλειδιά

n Υπάρχουν περιπτώσεις όπου η χρήση MAC πλεονεκτεί σε σχέση με τη χρήση κωδικοποίησης ολόκληρου του μηνύματοςq π.χ. ένα μήνυμα μεταδίδεται σε πολλούς παραλήπτες αλλά μόνο ένας, αυτός

με το κλειδί, μπορεί να προβεί σε μία ενέργεια

n Προδιαγραφές MACq Γνωρίζοντας το μήνυμα και το MAC δεν πρέπει να είναι δυνατό να μπορούμε

να βρούμε άλλο μήνυμα με το ίδιο MACq To MAC πρέπει να εξαρτάται το ίδιο από όλα τα bits της εισόδου

Page 13: Ασφάλεια ΠληροφοριακώνΣυστηµάτων ......1, x 2 για τα οποία ισχύει ότιx 1 ≠ x 2 είναι πάντα H(x 1) ≠H(x 2) n Σε καμία

Κώδικας Αυθεντικότητας Μηνύµατος (MAC)

Ασφάλεια Πληροφοριακών ΣυστηµάτωνΑυθεντικότητα Μηνυµάτων 13

Page 14: Ασφάλεια ΠληροφοριακώνΣυστηµάτων ......1, x 2 για τα οποία ισχύει ότιx 1 ≠ x 2 είναι πάντα H(x 1) ≠H(x 2) n Σε καμία

Αλγόριθµοι Hash

Ασφάλεια Πληροφοριακών ΣυστηµάτωνΑυθεντικότητα Μηνυµάτων 14

MD5Input“”“a”“abc”

Hash Value (as hex byte string) d41d8cd98f00b204e9800998ecf8427e 0cc175b9c0f1b6a831c399e269772661900150983cd24fb0d6963f7d28e17f72

SHA-1Input“”“a”“abc”

Hash Value (as hex byte string) da39a3ee5e6b4b0d3255bfef95601890afd80709 86f7e437faa5a7fce15d1ddcb9eaeaea377667b8a9993e364706816aba3e25717850c26c9cd0d89d

Page 15: Ασφάλεια ΠληροφοριακώνΣυστηµάτων ......1, x 2 για τα οποία ισχύει ότιx 1 ≠ x 2 είναι πάντα H(x 1) ≠H(x 2) n Σε καμία

Εφαρµογές

Ασφάλεια Πληροφοριακών ΣυστηµάτωνΑυθεντικότητα Μηνυµάτων 15

n Αρκετές φορές μόνο η αυθεντικότητα του αποστολέα είναι αρκετή(όχι κ η εμπιστευτικότητα της πληροφορίας)q Χρήση MAC

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

Page 16: Ασφάλεια ΠληροφοριακώνΣυστηµάτων ......1, x 2 για τα οποία ισχύει ότιx 1 ≠ x 2 είναι πάντα H(x 1) ≠H(x 2) n Σε καμία

Εφαρµογές

n Οι συναρτήσεις κατακερματισμού είναι πιο γρήγορες από τους αλγόριθμους κρυπτογράφησης και τους αλγόριθμους ψηφιακών υπογραφών

n à η ψηφιακή υπογραφή των μηνυμάτων γίνεται με το συγχωνευμένο μήνυμα που είναι πιο μικρό και εύκολο στη διαχείριση

Ασφάλεια Πληροφοριακών ΣυστηµάτωνΑυθεντικότητα Μηνυµάτων 16

Page 17: Ασφάλεια ΠληροφοριακώνΣυστηµάτων ......1, x 2 για τα οποία ισχύει ότιx 1 ≠ x 2 είναι πάντα H(x 1) ≠H(x 2) n Σε καμία

Εφαρµογές

Ασφάλεια Πληροφοριακών ΣυστηµάτωνΑυθεντικότητα Μηνυµάτων 17

n Οι συναρτήσεις hash χρησιμοποιούνται στην δημιουργία των ψηφιακών υπογραφώνq Είναι πολύ σημαντικό να μην είναι πρακτικά εύκολο να βρεθούν δύο

διαφορετικά μηνύματα με το ίδιο hashq Η ψηφιακή υπογραφή είναι μία κρυπτογραφική πράξη πάνω σε ένα hashq Άρα ταυτόσημα hashes θα δώσουν ταυτόσημες υπογραφέςq Θα μπορούσε λοιπόν κάποιος να εξαπατήσει τον υπογράφοντα δίνοντας του

να υπογράψει ένα κείμενο που έχει το ίδιο hash με ένα δεύτερο που κοινοποιεί και έχει διαφορετικό περιεχόμενο από το πρώτο

q Ο υπογράφοντας είναι καλό να κρατάει ένα αντίγραφο από οτιδήποτε υπογράφει

q Πριν υπογράψει να κάνει κάποιες αλλαγές στο κείμενο που του δίνεται

Page 18: Ασφάλεια ΠληροφοριακώνΣυστηµάτων ......1, x 2 για τα οποία ισχύει ότιx 1 ≠ x 2 είναι πάντα H(x 1) ≠H(x 2) n Σε καμία

Εφαρµογές

Ασφάλεια Πληροφοριακών ΣυστηµάτωνΑυθεντικότητα Μηνυµάτων 18

Page 19: Ασφάλεια ΠληροφοριακώνΣυστηµάτων ......1, x 2 για τα οποία ισχύει ότιx 1 ≠ x 2 είναι πάντα H(x 1) ≠H(x 2) n Σε καμία

Εφαρµογές

Ασφάλεια Πληροφοριακών ΣυστηµάτωνΑυθεντικότητα Μηνυµάτων 19

n Μαρκάρισμα αρχείων ώστε να αποτρέπονται μη εξουσιοδοτημένες αλλαγέςq Ανίχνευση ιώνq Ανίχνευση επιδρομών στο σύστημα

n Tripwire

n Αποθήκευση passwords με μορφή hash και όχι cleartextq Π.χ. αρχείο passwords στο UNIX

Page 20: Ασφάλεια ΠληροφοριακώνΣυστηµάτων ......1, x 2 για τα οποία ισχύει ότιx 1 ≠ x 2 είναι πάντα H(x 1) ≠H(x 2) n Σε καμία

Εφαρµογές

Ασφάλεια Πληροφοριακών ΣυστηµάτωνΑυθεντικότητα Μηνυµάτων 20

Page 21: Ασφάλεια ΠληροφοριακώνΣυστηµάτων ......1, x 2 για τα οποία ισχύει ότιx 1 ≠ x 2 είναι πάντα H(x 1) ≠H(x 2) n Σε καμία

Εφαρµογές

Ασφάλεια Πληροφοριακών ΣυστηµάτωνΑυθεντικότητα Μηνυµάτων 21

LoginPhaseRegistrationPhase

Page 22: Ασφάλεια ΠληροφοριακώνΣυστηµάτων ......1, x 2 για τα οποία ισχύει ότιx 1 ≠ x 2 είναι πάντα H(x 1) ≠H(x 2) n Σε καμία

Αλγόριθµοι Hash

Ασφάλεια Πληροφοριακών ΣυστηµάτωνΑυθεντικότητα Μηνυµάτων 22

n Ομοιότητες στην εξέλιξη των hash functions & block ciphersq Ισχυρότερες επιθέσεις brute-forceq Οδηγούν στη σχεδίαση ισχυρότερων αλγόριθμωνq Από τον DES (64 bit) στον AES (128/192/256)q Από τον MD5 (128 bit) στον SHA1 (160 bit)

n Χρησιμοποιούν επαναληπτικές δομές όπως και οι block ciphers

Page 23: Ασφάλεια ΠληροφοριακώνΣυστηµάτων ......1, x 2 για τα οποία ισχύει ότιx 1 ≠ x 2 είναι πάντα H(x 1) ≠H(x 2) n Σε καμία

MD5

Ασφάλεια Πληροφοριακών ΣυστηµάτωνΑυθεντικότητα Μηνυµάτων 23

n Η τελευταία της σειράς MD2, MD4

n Internet standard RFC1321

n Μέχρι πριν μερικά χρόνια ο πλέον διαδεδομένος αλγόριθμοςhash

n Παράγει μία 128-bit τιμή hash

n Πλέον δεν θα πρέπει να χρησιμοποιείται: brute-force & κρυπταναλυτικές επιθέσεις

Page 24: Ασφάλεια ΠληροφοριακώνΣυστηµάτων ......1, x 2 για τα οποία ισχύει ότιx 1 ≠ x 2 είναι πάντα H(x 1) ≠H(x 2) n Σε καμία

Περιγραφή του Αλγόριθµου MD5

Ασφάλεια Πληροφοριακών ΣυστηµάτωνΑυθεντικότητα Μηνυµάτων 24

Page 25: Ασφάλεια ΠληροφοριακώνΣυστηµάτων ......1, x 2 για τα οποία ισχύει ότιx 1 ≠ x 2 είναι πάντα H(x 1) ≠H(x 2) n Σε καμία

MD5 Collision example

Ασφάλεια Πληροφοριακών ΣυστηµάτωνΑυθεντικότητα Μηνυµάτων 25

Page 26: Ασφάλεια ΠληροφοριακώνΣυστηµάτων ......1, x 2 για τα οποία ισχύει ότιx 1 ≠ x 2 είναι πάντα H(x 1) ≠H(x 2) n Σε καμία

Secure Hash Algorithm (SHA-1)

Ασφάλεια Πληροφοριακών ΣυστηµάτωνΑυθεντικότητα Μηνυµάτων 26

n Ο αλγόριθμος SHA σχεδιάστηκε από τους οργανισμούς NIST & NSA το 1993q Παράγει μία 160-bit τιμή hashq Αποτελεί τον προκρινόμενο αλγόριθμο hash σήμεραq Βασίστηκε στο σχεδιασμό του MD4 με κάποιες σημαντικές διαφορέςq Αποτελεί το US πρότυπο για χρήση με το μηχανισμό για DSA υπογραφές

n Αναθεωρήθηκε το 1995 και μετονομάστηκε SHA-1q FIPS 180-1 1995, Internet RFC3174q Ο αλγόριθμος ονομάζεται SHA, το πρότυπο SHS

Page 27: Ασφάλεια ΠληροφοριακώνΣυστηµάτων ......1, x 2 για τα οποία ισχύει ότιx 1 ≠ x 2 είναι πάντα H(x 1) ≠H(x 2) n Σε καμία

Περιγραφή του Αλγόριθµου SHA

Ασφάλεια Πληροφοριακών ΣυστηµάτωνΑυθεντικότητα Μηνυµάτων 27

Page 28: Ασφάλεια ΠληροφοριακώνΣυστηµάτων ......1, x 2 για τα οποία ισχύει ότιx 1 ≠ x 2 είναι πάντα H(x 1) ≠H(x 2) n Σε καμία

Συναρτήσεις Hash

Ασφάλεια Πληροφοριακών ΣυστηµάτωνΑυθεντικότητα Μηνυµάτων 28

OneiterationwithintheSHA-1compressionfunction:A,B,C,DandEare32-bitwordsofthestate;Fisanonlinearfunctionthatvaries;leftshiftn denotesaleftbitrotationbynplaces;nvariesforeachoperation;Wt istheexpandedmessagewordofroundt;Kt istheroundconstantofroundt;Additiondenotesadditionmodulo232.

Page 29: Ασφάλεια ΠληροφοριακώνΣυστηµάτων ......1, x 2 για τα οποία ισχύει ότιx 1 ≠ x 2 είναι πάντα H(x 1) ≠H(x 2) n Σε καμία

Αναθεωρηµένο Πρότυπο SHS

Ασφάλεια Πληροφοριακών ΣυστηµάτωνΑυθεντικότητα Μηνυµάτων 29

n O NIST εξέδωσε την έκδοση FIPS 180-2q Προσθέτει 3 επιπλέον αλγόριθμους hashq SHA-256, SHA-384, SHA-512q Σχεδιασμένοι για να είναι συμβατοί με την ενισχυμένη ασφάλεια που

παρέχει ο αλγόριθμος AESq Η δομή και οι λεπτομέρειες είναι όμοιες με τον SHA-1q Άρα και η ανάλυση είναι παρόμοια

Page 30: Ασφάλεια ΠληροφοριακώνΣυστηµάτων ......1, x 2 για τα οποία ισχύει ότιx 1 ≠ x 2 είναι πάντα H(x 1) ≠H(x 2) n Σε καμία

Αναθεωρηµένο Πρότυπο SHS

Ασφάλεια Πληροφοριακών ΣυστηµάτωνΑυθεντικότητα Μηνυµάτων 30

Page 31: Ασφάλεια ΠληροφοριακώνΣυστηµάτων ......1, x 2 για τα οποία ισχύει ότιx 1 ≠ x 2 είναι πάντα H(x 1) ≠H(x 2) n Σε καμία

Αλγόριθµοι Hash

Ασφάλεια Πληροφοριακών ΣυστηµάτωνΑυθεντικότητα Μηνυµάτων 31

Page 32: Ασφάλεια ΠληροφοριακώνΣυστηµάτων ......1, x 2 για τα οποία ισχύει ότιx 1 ≠ x 2 είναι πάντα H(x 1) ≠H(x 2) n Σε καμία

SHA-1 vs. MD5

Ασφάλεια Πληροφοριακών ΣυστηµάτωνΑυθεντικότητα Μηνυµάτων 32

n Οι επιθέσεις brute force είναι δυσκολότερες (160 vs 128 bits για τονMD5)

n ∆εν είναι ευάλωτος σε καμιά από τις γνωστές επιθέσεις (σε σχέση με τον ΜD5)

n Λίγο πιο αργός από τον MD5 (80 vs 64 steps)

n Και οι 2 έχουν σχεδιαστεί να είναι απλοί και εύχρηστοι

n Βελτιστοποιημένος για big endian CPU's (vs MD5 που είναι βελτιστοποιημένος για little endian CPU’s)

Page 33: Ασφάλεια ΠληροφοριακώνΣυστηµάτων ......1, x 2 για τα οποία ισχύει ότιx 1 ≠ x 2 είναι πάντα H(x 1) ≠H(x 2) n Σε καμία

SHA-1 vs. MD5

Ασφάλεια Πληροφοριακών ΣυστηµάτωνΑυθεντικότητα Μηνυµάτων 33

Page 34: Ασφάλεια ΠληροφοριακώνΣυστηµάτων ......1, x 2 για τα οποία ισχύει ότιx 1 ≠ x 2 είναι πάντα H(x 1) ≠H(x 2) n Σε καμία

Υπολογιστική Απόδοση n CPU: Intel Core 2 6600 @ 2.4GHz, 4MB Cache

n RAM: 2GB DDR2

Ασφάλεια Πληροφοριακών ΣυστηµάτωνΑυθεντικότητα Μηνυµάτων 34