1 / 48

ΠΜΣ 36 Ασφάλεια Πληροφοριακών Συστημάτων

ΠΜΣ 36 Ασφάλεια Πληροφοριακών Συστημάτων. Αν. Καθ. Π. Γεωργιάδης Δρ. Μαριάς Ιωάννης Υπ. Δρ. Παπαπαναγιώτου Κωνσταντίνος. 30 /0 5 /0 7. Συναρτήσεις Σύνοψης. Χαρακτηριστικά. Αναφέρονται και ως Συναρτήσεις Κατακερματισμού

nicki
Download Presentation

ΠΜΣ 36 Ασφάλεια Πληροφοριακών Συστημάτων

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ΠΜΣ36 Ασφάλεια Πληροφοριακών Συστημάτων Αν. Καθ. Π. Γεωργιάδης Δρ. Μαριάς Ιωάννης Υπ. Δρ. Παπαπαναγιώτου Κωνσταντίνος 30/05/07

  2. Συναρτήσεις Σύνοψης Χαρακτηριστικά • Αναφέρονται και ως Συναρτήσεις Κατακερματισμού • Απεικονίζουν ένα μήνυμα αυθαίρετου μήκους (pre-image) σε ένα σταθερό αριθμό bits • To αποτέλεσμα της διαδικασίας ονομάζεταιαποτύπωμα, ή hash value, message digest ή fingerprint • Αλγόριθμοι: • MD5 (Message Digest 5, Rivest 1991) • SHA-1 (Secure Hash Algorithm 1, NIST 1994) • RIPEMD (RACE Integrity Primitives Evaluation Message Digest, Europe RACE Framework, 1996)

  3. Συναρτήσεις Σύνοψης Χαρακτηριστικά • Μία συνάρτηση σύνοψης H(x)παράγει αποτύπωμα h(digital fingerprints) αρχείου x ή μηνύματος (M) ή άλλης μορφής δεδομένων με τις εξής προϋποθέσεις • Μπορεί να εφαρμοστεί σε τμήμα δεδομένων οποιουδήποτε μεγέθους • Παράγει έξοδο (σύνοψη h) σταθερού μικρού μήκους • Εύκολα υπολογίσιμηγια δοθέν xήM • Για δοθέν σύνοψη hπρέπει να είναι υπολογιστικά ανέφικτο να βρεθεί x τέτοιο ώστε H(x)=h • Πρέπει να είναι υπολογιστικά ανέφικτο να βρεθείζεύγος (x,y)τέτοιο ώστε H(x)=H(y) • Η σύνοψη H(x) μπορεί αποστέλλεται μαζί με το μήνυμα Μ

  4. Συναρτήσεις Σύνοψης Χαρακτηριστικά • Η συνάντηση σύνοψης H(x)αντιστοιχεί strings αυθαίρετα μεγάλου (αλλά σταθερού) μήκουςσε ορισμένου και σταθερού μήκους strings των n bits. • Για πεδία ορισμούDκαι τιμών R • H: D  R, |D| > |R| • Η H(x)είναι many-to-one. Ύπαρξη collisions (inputs με ταυτόσημα digests) • Περιορίζοντας την H(x)σε πεδίο ορισμού των t-bit (t>n), • αν η H(x)είναι “random” (όλα τα digestsείναι πιθανοτικά ισοδύναμα), τότε μέχρι 2t-n inputs αντιστοιχίζονται σε ένα digest, • δύο τυχαία επιλεγμένα inputs παράγουν το ίδιο digestμε πιθανότητα 2-n(independent of t ).

  5. Συναρτήσεις Σύνοψης Σημαντικότερες Ιδιότητες • Μονόδρομες (One Way) • Γνωρίζοντας το αποτύπωμα (hash value)δεν μπορούμε να υπολογίσουμε το αρχικό μήνυμα ή κείμενο (pre-image) • Υπολογιστικά Ελεύθερες Συγκρούσεων (Collision-free) • Δεν μπορούν να βρεθούν δύο διαφορετικά αρχικά μηνύματα (pre-images)που να δημιουργούν το ίδιο αποτύπωμα (hash value) 00101011001 11000100110 ……………… 11001001000 Hash Function 0010011000110 hash value pre-image

  6. Συναρτήσεις Σύνοψης Αλγόριθμοι Κατακερματισμού • MD5 (Rivest, 1991) • Είσοδο ένα μήνυμα αυθαιρέτου μήκους και παράγει αποτύπωμα των 128-bit • Πιο αργός από τον SHA-1 • Με ασφάλεια που αμφισβητείται έντονα • SHA-1, NIST (1994) • Είσοδο ένα μήνυμα μεγέθους έως 264 bit και παράγει αποτύπωμα των 160-bit • Εφαρμογές: TLS, SSL, PGP, SSH, S/MIME, και IPSec. • Τέσσερις εκδόσεις με μεγαλύτερο αποτύπωμα: SHA-224, SHA-256, SHA-384, και SHA-512 (αναφέρονται και ως SHA-2) • RIPEMD-160 • Παράγει message digest 160-bit σε δεκα-εξαδική μορφή • Ασφαλέστερος από τον MD5 • Υπάρχουν εκδόσεις με μεγαλύτερο αποτύπωμα (128, 256 and 320-bit versions)

  7. Συναρτήσεις Σύνοψης Αλγόριθμοι Κατακερματισμού – SHA-1 Αντιστοιχεί bitstrings με bitlength <264 σε 16-bit digests Τυποποιήσεις FIPS PUB 180-2, Secure Hash Standard (including SHA-1, SHA-256, …) RFC 3174, US Secure Hash Algorithm 1 (SHA1) Παραδείγματα SHA-1 hash σε 43-byte ASCII είσοδο: SHA1("The quick brown fox jumps over the lazy dog") = 2fd4e1c67a2d28fced849ee1bb76e7391b93eb12 Μικρή αλλαγή (d to c): SHA1("The quick brown fox jumps over the lazy cog") = de9f2c7fd25e1b3afad3e85a0bd17d9b100db4b3 Το zero-length string SΗΑ1("") = da39a3ee5e6b4b0d3255bfef95601890afd80709

  8. Συναρτήσεις Σύνοψης Συναρτήσεις Σύνοψης και Αυθεντικοποίηση SΑΒ SΑΒ ΜΥΝΗΜΑ ΜΥΝΗΜΑ ΜΥΝΗΜΑ MD΄M H Σύγκριση H MDM MDM A, B: άκρα επικοινωνίας SΑΒ: μυστική τιμή (π.χ., password, ημερομηνία γέννησης) Μ: Μήνυμα που θέλει να στείλει ο Α σε Β Αποστολέας Α Παραλήπτης B Παράγει MDM= H (SAB || M) Αποστέλλει Μ και MDMστον B Λαμβάνει Mκαι MDM Υπολογίζει MD΄M=H(SAB || M) Συγκρίνει MD΄M καιMDM Αν ίσα τότε ακεραιότητα Μκαι αυθεντικοποίηση αποστολής από Α

  9. Κρυπτογραφία Δημοσίου Κλειδιού • Εισαγωγικά Στοιχεία • Σε ένα σχήμα κρυπτογραφίας public-key encryption για κάθε ζεύγος encryption/ decryption (e, d), το κλειδί e (public key) γίνεται δημόσια διαθέσιμο, ενώ το κλειδί d(private key) διατηρείται μυστικό. • Για ένα τέτοιο σχήμα πρέπει να είναι υπολογιστικά ανέφικτο να προσδιοριστεί το d γνωρίζοντας μόνο το e !!! • «Επινοήθηκε» από τους Diffie και Hellman το 1976 • Πρώτο σχήμα Δημοσίων Κλειδιών: RSA από Rivest, Shamir, Adleman (1978, MIT)

  10. Κρυπτογραφία Δημοσίου Κλειδιού • Εισαγωγικά Στοιχεία • Σημαντικές διαφορές σε σχέση με τη συμμετρική κρυπτογραφία, ωστόσο: • α) δεν την αντικατέστησε • β) δεν είναι περισσότερο ούτε λιγότερο ασφαλής σε κρυπτανάλυση από • γ) η διανομή των κλειδιών είναι περισσότερο τετριμμένη, αλλά όχι απλούστερη • δ) Η διαχείριση κλειδιών γίνεται δυσκολότερη

  11. Κρυπτογραφία Δημοσίου Κλειδιού Συστατικά Κρυπτογραφίας Δημοσίου Κλειδιού • Αρχικό κείμενο ή πρωτογενές μήνυμα (plaintext) • Αλγόριθμος κρυπτογράφησης (encryption algorithm) • Δημόσιο και Ιδιωτικό κλειδί (public/private key) • Κρυπτογράφημα ή κρυπτογραφημένο κείμενο (ciphertext) • Αλγόριθμος αποκρυπτογράφησης (decryption algorithm)

  12. Κρυπτογραφία Δημοσίου Κλειδιού • Κρυπτογραφία • Δημόσιο κλειδί παραλήπτη • Ιδιωτικό κλειδί παραλήπτη

  13. Κρυπτογραφία Δημοσίου Κλειδιού • Αυθεντικοποίηση ή Ψηφιακή Υπογραφή • Ιδιωτικό κλειδί αποστολέα • Δημόσιο κλειδί αποστολέα

  14. Κρυπτογραφία Δημοσίου Κλειδιού «Υπηρεσίες» Κρυπτογραφίας Δημοσίου Κλειδιού • Κρυπτογράφηση/αποκρυπτογράφηση • Ο αποστολέας κρυπτογραφεί το plaintext με το δημόσιο κλειδί του παραλήπτη. Ο παραλήπτης αποκρυπτογραφεί το ciphertext με το ιδιωτικό του κλειδί, που μόνο αυτός κατέχει. Εμπιστευτικότητα, ακεραιότητα • Ψηφιακή Υπογραφή • Ο αποστολέας κρυπτογραφεί (ή υπογράφει) το plaintext με το ιδιωτικό του κλειδί, που μόνο αυτός κατέχει. Ο παραλήπτης αποκρυπτογραφεί το ciphertext με το δημόσιο κλειδί του αποστολέα. Αυθεντικοποίηση • Ανταλλαγή Κλειδιών • Οι δύο πλευρές συνεργάζονται για να ανταλλάξουν ένα κλειδί συνόδου. Υφίστανται αρκετές προτάσεις, που εμπλέκουν το ή τα ιδιωτικά κλειδιά.

  15. Κρυπτογραφία Δημοσίου Κλειδιού «Υπηρεσίες» Κρυπτογραφίας Δημοσίου Κλειδιού

  16. Κρυπτογραφία Δημοσίου Κλειδιού Αυθεντικοποίηση ή Ψηφιακή Υπογραφή με Σύνοψη Κρυπτογράφηση: Ιδιωτικό κλειδί αποστολέα Αποκρυπτογράφηση: Δημόσιο κλειδί αποστολέα Αποστολέας, Α Παραλήπτης, Π 1 5 6 2 7 5 7α 7α Σύνοψη 3 4 8α 8α 1 7 7 8 9 0 9 ΚΙΑ ΚΔΑ Σύνοψη 9α 9α Σύγκριση 1 7 7 8 9 0 9 1 7 7 8 9 0 9

  17. Κρυπτογραφία Δημοσίου Κλειδιού Απαιτήσεις Κρυπτογραφίας Δημοσίου Κλειδιού • Είναι υπολογιστικά εφικτό για ένα μέρος Β να παράγει ένα ζεύγος κλειδιών (public key eb, private keydb) • Είναι υπολογιστικά εφικτό για έναν αποστολέα Α, που γνωρίζει το δημόσιο κλειδί του Β και το plaintext Μ να δημιουργήσει το αντίστοιχο ciphertext:C=eb(M) • Είναι υπολογιστικά εφικτό για έναν παραλήπτη B, που γνωρίζει το ιδιωτικό του κλειδί και λαμβάνει το ciphertext Cνα ανακτήσει το αρχικό κείμενο M: Μ=db(C)=db(eb(M)) • Είναι υπολογιστικά ανέφικτο γνωρίζοντας μόνο το δημόσιο κλειδί ed να προσδιοριστεί το ιδιωτικό κλειδί db • Είναι υπολογιστικά ανέφικτογνωρίζοντας το δημόσιο κλειδί ed και το ciphertext Cνα προσδιοριστεί το αρχικό μήνυμα M • Οποιοδήποτε από τα δύο κλειδιά μπορεί να χρησιμοποιηθεί για την κρυπτογράφηση και το άλλο για την αποκρυπτογράφηση, ήτοι Μ=db(eb(M))=eb(db(M))

  18. Κρυπτογραφία Δημοσίου Κλειδιού • Είναι block cipher • To plaintext Μ και το ciphertext Cείναι ακέραιοι αριθμοί, με τιμές μεταξύ 0 και n-1, για μεγάλο n • Συμβολισμοί • Κρυπτογράφηση C=Me mod n • Αποκρυπτογράφηση Μ=Cd mod n • Τόσο ο αποστολέας όσο και ο παραλήπτης πρέπει να γνωρίζουν τις τιμές των eκαι n. • Αντιθέτως, την τιμή dπρέπει να τη γνωρίζει μόνο ο παραλήπτης. • Πρόκειται για σχήμα με δημόσιο κλειδί {e,n}και ιδιωτικό κλειδί {d} Αλγόριθμος RSA

  19. Κρυπτογραφία Δημοσίου Κλειδιού Αλγόριθμος RSA Παραγωγή Κλειδιού Επέλεξε πρώτους, μεγάλους, p, q διαφορετικούς, αριθμούς Υπολόγισε n:n = p x q Υπολόγισεφ(n):φ(n)=(p-1) x (q-1) Επέλεξε ακέραιο e (1<e<φ(n)): gcd(φ(n), e) = 1 Υπολόγισε d: d=e-1mod(φ(n)) Δημόσιο κλειδί {e,n} Ιδιωτικό κλειδί {d} Συνάρτηση Euler e, φ(n): relatively prime Χρήση Εκτ. Αλγ. Ευκλείδηunique d Κρυπτογράφηση Αρχικό κείμενο Μ<n Κρυπτογράφημα C=Me mod n Αποκρυπτογράφηση Κρυπτογράφημα C Αρχικό κείμενο M=Cd mod n

  20. Κρυπτογραφία Δημοσίου Κλειδιού Αλγόριθμος RSA Παραγωγή Κλειδιού Επέλεξε πρώτους, μεγάλους, p, q διαφορετικούς, τυχαίους, αριθμούς Υπολόγισε n < Μ:n = p x q Υπολόγισεφ(n): φ(n)=(p-1) x (q-1) Επέλεξε ακέραιο e (1<e<φ(n)): gcd(φ(n), e) = 1 Υπολόγισε d: d=e-1mod(φ(n)) p = 7, q = 17 Συνάρτηση Euler n = 119 φ(n) = 96 e = 5 d = 77 Χρήση Εκτ. Αλγόριθμου Ευκλείδηunique d Έστω M = 19 Αποστολέας, encryptionC = M e mod n = 195mod 119 = 66 Παραλήπτης, decryption M= Cdmod n = 6677mod 119= 19 Δυαδική-πολλαπλασιαστική εκθετοποίηση

  21. Κρυπτογραφία Δημοσίου Κλειδιού Αλγόριθμος RSA • Δυσκολία RSA: Παραγοντοποίηση Μεγάλων Ακεραίων (FACTORING problem) • Δεδομένου ακεραίου θετικούn , βρες τους πρώτους παραγοντοποιητές του (prime factorization), ή γράψε το nως n=p1e1p2e2…pkek • όπου pi, pjπρώτοι μεταξύ τους • Το μήκος κλειδιού μπορεί να διαφέρει (συνήθως των 1024 bits) • Variable plaintext block size • Για ζεύγος κλειδιών public= <e, n> και private = <d> • encryption: C= Me mod n, M < n • decryption: M = Cd mod n • signature: S = Md mod n, M < n • verification: M = Se mod n

  22. Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή • Η πρώτη πρακτική λύσηστο πρόβλημα διανομής κλειδιών • Αλγόριθμος ανταλλαγής κλειδιών για δύο μέρη που ποτέ δεν ήρθαν στο παρελθόν σε συμφωνία ή μοιράζονται κοινό μυστικό κλειδί ή τιμή • Δυνατότητα ανταλλαγής μηνυμάτων για συμφωνία κλειδιών (key agreement)μέσα από ανασφαλές κανάλι • Αποτελεσματικός σε παθητικές επιθέσεις (eavesdropping), αλλά όχι σε ενεργητικές • Κανένα μέρος δεν έχει εξασφάλιση για την ταυτότητα του άλλου (entity authentication) • Δυσκολία: Υπολογισμός Διακριτών Λογαρίθμων Αλγόριθμος Diffie – Hellman

  23. Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή Αλγόριθμος Diffie – Hellman • Ολίγη λογαριθμική αριθμητική ... • Έστω ακέραιος, πρώτος αριθμός p • Ως πρωτογεννής ρίζα a του pορίζεται ο αριθμός του οποίου οι δυνάμειςτου modulo(p) παράγουν όλους τους ακέραιους από 1έως p-1 • Αν aείναι πρωτογεννής ρίζα του pτότε οι αριθμοί • amodp, a2modp, …, ap-1modp • είναι διακριτοί και αποτελούν τους ακέραιους από 1 έως p-1 • Για οποιοδήποτε ακέραιο bκαι για μία πρωτόγεννη ρίζα α ενός πρώτου p μπορεί να βρεθεί μοναδικός αριθμός iτέτοιος ώστε b=αimodp (0≤i≤p-1). • O iκαλείται διακριτός λογάριθμος ή δείκτης του bγια βάση a και modp και συμβολίζεται ως i=inda,p(b)

  24. Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή Αλγόριθμος Diffie – Hellman • Ο A και ο B στέλνουν ο καθένας από ένα μήνυμα σε ανοικτό κανάλι • Αποτέλεσμα: Κοινό μυστικό κλειδί K γνωστό στα δύο μέρη A και B • Βήμα 1. Επιλέγεται και δημοσιοποιείται πρώτος αριθμός p και μία πρωτόγεννης ρίζα α του p • Βήμα 2. Δημιουργία τυχαίων αριθμών • Ο Α επιλέγει έναν τυχαίο ακέραιο ΧΑ, ΧΑ<pκαι υπολογίζει το ΥΑ=αΧΑmodp • Ο B επιλέγει έναν τυχαίο ακέραιο ΧB, ΧB<pκαι υπολογίζει το ΥB=αΧBmodp • Κάθε πλευρά κρατά μυστική τις τιμές ΧΑ και ΧB • Βήμα 3. Κάθε πλευρά αποστέλλει στην άλλη τις τιμές ΥΑ και ΥB • Βήμα 4. Παραγωγή κλειδιού • Για Α: Κ=(ΥΒ)ΧΑmodp • Για Β: Κ=(ΥΑ)ΧΒmodp

  25. Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή Αλγόριθμος Diffie – Hellman Μηνύματα A  B : ΥΑ=αΧΑmodp A  B : ΥΒ=αΧΒmodp Οι δύο σχέσεις παράγουν το ίδιο αποτέλεσμα: K=(ΥB)ΧΑmodp = (αΧBmodp)ΧΑmodp = (αΧB)ΧΑmodp = αΧBΧΑmodp = (αΧΑmodp)ΧΒmodp = (ΥA)ΧBmodp Ένας επιτιθέμενος έχει μόνο τα στοιχεία α, p, ΥΑ και ΥΒ για κρυπτανάλυση. Είναι αναγκασμένος να βρει ένα διακριτό λογάριθμο για να υπολογίσει το Κ. Για παράδειγμα αν επιτεθεί στον Β θα πρέπει να υπολογίσει ΧB=inda,p(ΥΒ) Για μεγάλους πρώτους αριθμούς (p)το πρόβλημα θεωρείται υπολογιστικά ανέφικτο να λυθεί Παραγωγή κλειδιών A: K= (ΥB)ΧΑmodp B: K= (ΥA)ΧBmodp

  26. Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή Αλγόριθμος Diffie – Hellman - παράδειγμα Υποθέτουμε ότι ο πρώτος αριθμός είναι το p=71 Η πρωτογενής ρίζα είναι a=7 Οι Α και Bεπιλέγουν ιδιωτικά κλειδιά ΧΑ=5 και ΧB=12 Τα αντίστοιχα δημόσια κλειδιά είναι για τονA: ΥA =75mod 71 =51 mod 71 για τονΒ: ΥΒ= 712 mod 71 = 4 mod 71 Στη συνέχεια ανταλλάσσουν τα δημόσια κλειδιά ΥA και ΥΒ για να υπολογίσουν το κοινό κλειδί K Α: K= (ΥB)ΧΑmodp= (4 mod 71)5 mod 71 =45 mod 71 = 30 mod 71 Β: K= (ΥΑ)ΧΒmodp= (51 mod 71)12 mod 71 =5112 mod 71 = 30 mod 71

  27. Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή Αλγόριθμος Diffie – Hellman - παράδειγμα • Εκθετικές διαδικασίες ακριβές σε υλοποίηση – χρονοβόρες • Δεν μπορεί να χρησιμοποιηθεί για αυθεντικοποίηση (unauthenticated key agreement.) • Αναποτελεσματικός σε ενεργητικές επιθέσεις (man in the middle attacks) • Ο Ούνος παίζει τον Καίσαρα στον Στρατηγό και τον Στρατηγό στον Καίσαρα

  28. Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή Ζητήματα διανομής δημοσίων κλειδιών • Διανομή κλειδιών(key distribution) • ανάγκη για μέθοδο προστασίας συναλλαγών και επικοινωνιών χωρίς να χρειάζεται να εμπιστεύεσαι κάποια Έμπιστη Τρίτη οντότητα για παραγωγή του κλειδιού σου • Κρυπτογραφία δημοσίου κλειδιού βοηθά • Πρόβλημα 1 • Πως αυθεντικοποιείται η σχέση μεταξύ δημοσίου και ιδιωτικού κλειδιού; • … δηλαδή ότι ένας κάτοχος κατέχει και τα δύο • Πρόβλημα 2 • Ποιος είναι αυτός ο κάτοχος; • Λύση: Ψηφιακό πιστοποιητικό

  29. Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή Διανομή Δημοσίων Κλειδιών και Αυθεντικοποίηση • Υλοποιείται με τέσσερις διαφορετικές μεθόδους-αρχιτεκτονικές: • Ανακοίνωση (announcement) • Κατάλογος Δημόσια Διαθέσιμος • Αρχή Διαχείρισης και Διανομής Δημοσίων Κλειδιών (Public-key authority) • Ψηφιακά Πιστοποιητικά Δημοσίου Κλειδιού (Public-key certificates)

  30. Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή Αυθεντικοποίηση – μέθοδος am1 Alice Bob Alice Bob I’m Alice I’m Alice Enemy Enemy • Αδυναμίες • Δεν υπάρχει τρόπος να γνωρίζει o Bob ότι το πρόσωπο που έστειλε το μήνυμα “I’m Alice” είναι όντως η Alice • Ο Enemy μπορεί να αντιγράψει την Alice

  31. Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή Αυθεντικοποίηση – μέθοδος am2 I’m Alice Alice Bob Alice Bob gime passwd passwd I’m Alice gime passwd passwd Enemy Enemy • Προσθήκη κωδικού επικοινωνίας • O Bob ζητάει μέρα γέννησης, κωδικός πρόσβασης (κτλ) • Αδυναμίες • Δεν υπάρχει τρόπος να γνωρίζει o Bob ότι το πρόσωπο που έστειλε το μήνυμα “I’m Alice” είναι όντως η Alice • Ο Enemy μπορεί να αντιγράψει την Alice και το password της

  32. Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή Αυθεντικοποίηση – μέθοδος am2.encr I’m Alice Alice Bob Alice Bob gime passwd $#1q&u9 I’m Alice gime passwd $#1q&u9 ΚΑΒ(passwd) =$#1q&u9 Enemy Enemy • Προσθήκη κωδικού επικοινωνίας κρυπτογραφημένου • ΚΑΒ συμμετρικό κλειδί • Κρυπτογράφηση password • Αδυναμίες • Ο Enemy μπορεί να αντιγράψει το encrypted password της Alice • Υλοποιεί κατόπιν replay attacks • O Bob δεν μπορεί να ξεχωρίσει το αρχικό μήνυμα αυθεντικοποίησης της Alice από το ύστερο αντίγραφό του (playback)

  33. Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή Διανομή Κλειδιών – Replay Attacks problems • Γενικό πρόβλημα: Replay Attacks • Ένας εχθρός ανακτά τα μηνύματα που ανταλλάσσονται και τα αναμεταδίδει στο μέλλον • Η κρυπτογράφηση δε αντιμετωπίζει το πρόβλημα. • Απαιτείται ενσωμάτωση μηχανισμών προσδιορισμού «προσφατότητας» μηνυμάτων από τον αποστολέα • freshness identifiers • Τρεις τύποι freshness identifier • nonces • timestamps • sequence numbers

  34. Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή Διανομή Κλειδιών – Replay Attacks problems freshness identifiers • Nonce • Τυχαίος αριθμός, απρόβλεπτος και μη επαναχρησιμοποιούμενος • Timestamps • Ο αποστολέας επισυνάπτει encrypted real-time timestamp σε κάθε μήνυμα • Ο παραλήπτηςαποκρυπτογραφεί timestamp και το συγκρίνει με το τρέχοντα χρόνο • Αν η διαφορά αρκετά μικρή, τότε αποδέχεται μήνυμα, διαφορετικά το απορρίπτει • Πρόβλημα ο συγχρονισμός μεταξύ sender και receiver • Sequence numbers • Ο αποστολέας επισυνάπτειμια μονοτονικά αύξουσα τιμή (counter) σε κάθε μήνυμα, αυξάνει κατά 1 μετά από κάθε αποστολή μηνύματος προς παραλήπτη • Ο παραλήπτης απαιτείται να θυμάται την τελευταία μέγιστη τιμή του counter που έλαβε από αποστολέα

  35. Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή Αυθεντικοποίηση – μέθοδος am3.singlekey (ιδέα από Lamport 81) I’m Alice Alice Bob Alice Bob R1 ΚΑΒ(R1) I’m Alice R ? Enemy Enemy • Προσθήκη απαίτησης για Nonce R, και time-stamp • ΚΑΒ συμμετρικό κλειδί • Κρυπτογράφηση R • Αδυναμίες forgery • Ο Enemy μπορεί να αντιγράψει το encrypted R της Alice • Replay attacks δεν μπορεί να αναπτυχθούν • Άλλη ιδέα !!! • Χρήση one-time-keys (μεγάλος αριθμός κλειδιών προ-συμφωνείται μεταξύ Α και Β)

  36. Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή Διανομή Δημοσίων Κλειδιών και Αυθεντικοποίηση • Ερώτημα: • Μπορούμε να χρησιμοποιήσουμε κρυπτογραφία δημοσίου κλειδιού για αυθεντικοποίηση; • Αν ναι, με ποιον τρόπο εξασφαλίζουμε αυθεντικοποίηση της Alice απέναντι στον Bob? • Ήδη μιλήσαμε για τέσσερις τρόπους • Ανακοίνωση • Κατάλογος Δημόσια Διαθέσιμος • Αρχή Διαχείρισης και Διανομής Δημοσίων Κλειδιών • Ψηφιακά Πιστοποιητικά Δημοσίου Κλειδιού • Ποιος είναι αποδοτικότερος • Ποια τα κριτήρια;

  37. Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή Διανομή Δημοσίων Κλειδιών και Αυθεντικοποίηση (1) Ανακοίνωση • Οι χρήστεςστέλνουν δημόσια κλειδιάσε παραλήπτες ή τα εκπέμπουν σε μία κοινότητα (κλειστή)χρηστών • Π.χ.,ανάρτηση κλειδιού σε news groups/email list • Κυριότερη Αδυναμία:Πλαστογραφία (forgery) • Οποιοσδήποτε μπορεί να δημιουργήσει ένα δημόσιο κλειδίισχυριζόμενος ότι είναι κάποιος άλλος και να το μεταδώσει ή εκπέμψει • Μέχρι να ανακαλυφθεί η πλαστογραφία ο χρήστης εξακολουθεί να είναι μεταμφιεσμένος • Άλλη αδυναμία: πλήθη κλειδιών που αποστέλλονται (overhead) • κλιμάκωση

  38. K1 K2 K7 K6 K10 K9 K3 K5 n 2 4 8 16 32 64 (n*(n -1))/2 1 6 28 120 336 2016 K4 Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή Διανομή Δημοσίων Κλειδιών και Αυθεντικοποίηση (1) Ανακοίνωση Πλήθη κλειδιών και συμφωνιών !!! Παράδειγμα για Secret Keys K8

  39. Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή Διανομή Δημοσίων Κλειδιών και Αυθεντικοποίηση (1) Ανακοίνωση - Αυθεντικοποίηση – μέθοδος am3.publicKey I’m Alice R ΚRA(R) Send me KUA Alice Bob Alice Bob ΚUA I’m Alice R KRE(R) Send public key KUE Enemy Enemy • Απαίτηση για χρήση Δημοσίων Κλειδιών και Nonce R • ΚUAΚRA δημόσιο ιδιωτικό κλειδί οντότητας Α • Αδυναμίες Forgery • Ο Enemy μπορεί χρησιμοποιεί τα δικά του κλειδιά • O Bob εκτελεί ΚUΕ(ΚRE(R)), ανακτά R και μπερδεύει την Alice με τον Enemy

  40. Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή Διανομή Δημοσίων Κλειδιών και Αυθεντικοποίηση (2) Κατάλογος Δημόσια Διαθέσιμος • Καταχωρεί τα κλειδιά σε ένα δημόσια διαθέσιμο κατάλογο • URL • Λύση προβλήματος κλιμάκωσης • Ο κατάλογος πρέπει να είναι έμπιστος (διατηρείται από ΕΤΟ) • Η ΕΤΟ να δεσμεύεται ότι δεν τροποποιεί τα περιεχόμενα • Ποιος μπαίνει, τι αλλάζει ? • εξουσιοδότηση/αυθεντικοποίηση (π.χ., μέσω συμμετρικού κλειδιού KA,ETO ) • Ιδιότητες καταλόγου: • περιέχει {name, public-key} entries • οι συμμετέχοντες (names) μπορούν οποιαδήποτε στιγμή να αλλάξουν το key • προσβάσιμος ηλεκτρονικά • λειτουργία 24x7 • Εξακολουθεί να είναι τρωτός σε πλαστογραφία

  41. Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή Διανομή Δημοσίων Κλειδιών και Αυθεντικοποίηση (3) Public-Key Authority • Βελτιώνει την ασφάλεια με έλεγχο της διανομής (υπογραφή κατά τη διανομή) των κλειδιών του κατάλογουαπό μια Αρχή ΕΤΟ • Απαιτεί από τους χρήστες να γνωρίζουν εκ προοιμίου το δημόσιο κλειδί της ΕΤΟ • Μόνο η ΕΤΟ διαθέτει το ιδιωτικό της κλειδί • Οι χρήστεςαλληλεπιδρούν με την ΕΤΟ για να ανακτήσουν με ασφάλεια το δημόσιο κλειδί της Οντότητας με την οποία επιθυμούν να επικοινωνήσουν • Απαιτήσεις • Ότι και ο Δημόσιος Κατάλογος, και • real-time access στο δημόσιο κλειδί της ΕΤΟ όταν χρειάζονται τα κλειδιά

  42. Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή Διανομή Δημοσίων Κλειδιών και Αυθεντικοποίηση (3) Public-Key Authority Κατάλογος Public Key Authority (4) Request || Time2 (1) Request || Time1 (2) EKRauth[KUB || Request || Time1] (5) EKRauth[ KUA || Request || Time2 ] (3) EKUB[ IDA || N1 ] Initiator A Responder B (6) EKUA[ N1 || N2 ] KUI: Public Key Entity I KRI: Private Key Entity I Ni: Nonce i IDI: Identity of Entity I EKRauth: Private Key PKA (7) EKUB[ N2 ]

  43. Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή Διανομή Δημοσίων Κλειδιών και Αυθεντικοποίηση (3) Public-Key Authority (1) AAuth Στέλνει time-stamped μήνυμα με μία αίτηση (συν Request ID) για το KU του B AuthA Απαντά με encrypted μήνυμα (με χρήση του KR της Auth). Περιέχει το KU του Β, το αρχικό Request ID (εγγυάται συσχέτιση με την αρχική αίτηση), και το timestamp(εγγυάταιότι δεν έχει πραγματοποιηθεί εναλλαγή) Ο Αdecrypts το μήνυμα με το KU της Auth, (εξασφαλίσει ότι προήλθε από αυτήν)και αποθηκεύει το KU του B AΒ Στέλνει encypted μήνυμα (με χρήση του KU του B)που περιέχει το IDτου Α και και ένα τυχαία επιλεγόμενο αριθμό N1που ταυτοποιεί μοναδικά αυτήν τη συναλλαγή Ο Βdecrypts το μήνυμα με το KRBπου μόνο αυτός διαθέτει, και βλέπει αίτηση απόΑ. BAuthBOBμε τη σειρά του λαμβάνει από τηνAuthτοKUτουΑ(όπως βήματα 1 και 2) Τα πιστοποιημένα από την Authδημόσια κλειδιά των Aκαι Bείναι εκατέρωθεν γνωστά ΒΑΣτέλνει encypted μήνυμα (με χρήση του KU του Α)που περιέχει τον προσδιοριστή N1 και ένα τυχαία επιλεγόμενο αριθμό N2που ταυτοποιεί μοναδικά τη νέα συναλλαγή Ο Α λαμβάνει το μήνυμα, decrypts με το KRΑπου μόνο αυτός διαθέτει. Αντιλαμβάνεται παρουσία του προσδιοριστή N1, και συμπεραίνει ότι το μήνυμα ήρθε από Β. ΑΒΣτέλνει encypted μήνυμα (με χρήση του KU του B)που περιέχει τον προσδιοριστή N2 Ο Β λαμβάνει το μήνυμα, decrypts με το KRΒπου μόνο αυτός διαθέτει. Αντιλαμβάνεται παρουσία του προσδιοριστή N2, και συμπεραίνει ότι το μήνυμα ήρθε από Α. (2) (3) (4-5) (6) (7)

  44. Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή Διανομή Δημοσίων Κλειδιών και Αυθεντικοποίηση (3) Public-key Authority • Συνολικά απαιτούνται 7 μηνύματα • Ωστόσο 4 από αυτά (AAuthAκαιBAuthB) ανταλλάσσονται σπάνια (οι Aκαι B cash τα KUs) • Απαιτείται συνεχής και real-time πρόσβαση  • Μειονέκτημα: • Η Αρχή μπορεί να εξελιχθεί σε bottleneck της αρχιτεκτονικής • DoS attacks • Όμως αυθεντικοποιεί πράγματι τα συναλλασσόμενα μέρη; • Πως εγγράφονται τα {name, Public Keys}?

  45. Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή Διανομή Δημοσίων Κλειδιών και Αυθεντικοποίηση (4) Public-Key Certificates • Προτάθηκε από Kohnfelder (1978) • Τα πιστοποιητικά επιτρέπουν ανταλλαγή κλειδιών με αυθεντικοποίηση χωρίς να απαιτούν real-time πρόσβασησεκατάλογο • Τα πιστοποιητικά παράγονται από έμπιστη ΕΤΟή Certificate Authority (CA) • Ένα πιστοποιητικόσυσχετίζει την “ταυτότητα”ενός χρήστη (identity)μεpublic key • Συχνά περιλαμβάνει πρόσθετες πληροφορίες, όπως χρόνος εγκυρότητας, δικαιώματα χρήσης κοκ • Τα περιεχόμενα του πιστοποιητικού υπογράφονται (signed)από την έμπιστη ΕΤΟ (CA)

  46. Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή Διανομή Δημοσίων Κλειδιών και Αυθεντικοποίηση (4) Public-Key Certificates • Το πιστοποιητικό δημοσίου κλειδιού μπορεί να επαληθευτεί από οποιονδήποτε γνωρίζει το public-key της CA • Το παραδίδεται στο χρήστη και σχετίζεται με το αντίστοιχο ιδιωτικό του κλειδί (το οποίο παράγει ο ίδιος ο χρήστης) • Ένας χρήστης μεταβιβάζει το δημόσιο κλειδί του σε ένα άλλο χρήστη με το να του μεταδώσει το πιστοποιητικό του • Χαρακτηριστικά • Μόνο η CA μπορεί να δημιουργεί και να ανανεώνει certficate • Κάθε χρήστης μπορεί να λάβει ένα certficate, να το διαβάσει και να προσδιορίσει την ταυτότητα και το δημόσιο κλειδί του κατόχου του • Κάθε χρήστης μπορεί να πιστοποιήσει ότι το certficate δημιουργήθηκε από την CA και δεν είναι πλαστό • Κάθε χρήστης μπορεί να επαληθεύσει την ισχύ (π.χ., χρονική) του certficate

  47. CA KUA KUB CA= EKRauth[KUA , IDA, Time1] CB= EKRauth[KUB , IDB, Time2] CA A B CB Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή Διανομή Δημοσίων Κλειδιών και Αυθεντικοποίηση (4) Public-Key Certificates KUI: Public Key Entity I KRI: Private Key Entity I Τimei: Expiration i Ο Χρήστης παράγει ζεύγος ιδιωτικού (KR) και δημόσιου (KU) κλειδιού Ο Χρήστης απευθύνεται στην CAκαι υποβάλει το δημόσιο κλειδί του αιτούμενος ένα certficate - Αν αυτό γίνεται phase-to-phase ή μέσω ηλεκτρονικής αίτησης με authentication τότε μόνο authentication

  48. Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή Διανομή Δημοσίων Κλειδιών και Αυθεντικοποίηση (4) Public-Key Certificates • Για τον χρήστη Α η CAπαρέχει ένα certficate της μορφής CA=EKRauth[KUA , IDA, T1] • Ο χρήστης Α μπορεί να μεταβιβάσει το CA σε οποιονδήποτε άλλο χρήστη, π.χ., Β • Ο παραλήπτης Β λαμβάνει το CAκαι επαληθεύειτην ταυτότητα και το δημόσιο κλειδί του Α ως εξής: DKUauth[CA]= DKUauth[EKRauth[KUA , IDA, T1]]= (KUA , IDA, T1) • Εφόσον το certficate είναι αναγνώσιμο μόνο με χρήση του ιδιωτικού κλειδιού της CA, επαληθεύεται ότι τοcertficate έχει δημιουργηθεί από την CA • Τα στοιχείαKUAκαιIDAπαρέχουν στον παραλήπτη την ταυτότητα και το δημόσιο κλειδί του κατόχου του πιστοποιητικού • Το timestamp T1επικυρώνει την ισχύ του certficate, ενεργώντας ως «ημερομηνία λήξης». • «Ληγμένα» certficate πρέπει να κρίνονται ανασφαλή

More Related