Πρωτόκολλα Ασφάλειας IΙ Τμήμα Μηχ. Πληροφορικής ΤΕΙ Κρήτης Πρωτόκολλα Ασφάλειας IΙ 1
Πρωτόκολλα Ασφάλειας Συστήματα Σχέδια Εφαρμογή Πρωτόκολλα & πολιτικές Firewalls, intrusion detection SSL, IPSec, Kerberos, access control Κομμάτια Κατασκευής Kρυπτογραφικά Στοιχεία AES, RSA, SHA1 Αλγοριθμική θεωρία αριθμών Πολυπλοκότητα υπολογισμών Πρωτόκολλα Ασφάλειας IΙ 2
Πιστοποίηση με Συμμετρικά Κλειδιά Είμαι η R E(R) Kab Η πιστοποίηση επιτυγχάνεται με την απόδειξη της γνώσης του μυστικού κλειδιού που μοιράζονται Η και ο και μόνο μόνο αυτοί οι δύο γνωρίζουν το συμμετρικό κλειδί K ab Πως επιτυγχάνεται η πιστοποίηση? Χωρίς να αποκαλυφθεί το κλειδί Χωρίς να επιτραπεί επίθεση επαναχρησιμοποίησης Ο παραπάνω είναι ένας ασφαλής τρόπος για τον να πιστοποιήσει την Πρωτόκολλα Ασφάλειας IΙ 3
Αμοιβαία Πιστοποίηση Είμαι η, R E(R) Kab E(R) Kab Από τη στιγμή που έχουμε ένα ασφαλές πρωτόκολλο πιστοποίησης προς τη μία κατεύθυνση Το προφανές θα ήταν να χρησιμοποιήσουμε το ίδιο πρωτόκολλο δύο φορές Μια φορά για τον να πιστοποιήσει την Μια φορά για την να πιστοποιήσει τον Ποιό είναι το λάθος στα παραπάνω 3 βήματα? Η θα μπορούσε να είναι ο Trudy (ή οποιοσδήποτε άλλος)! Πρωτόκολλα Ασφάλειας IΙ 4
Αμοιβαία Πιστοποίηση Είμαι η, R A R B, E(R A ) Kab E(R B ) Kab Αυτό παρέχει αμοιβαία πιστοποίηση Είναι ασφαλές; Πρωτόκολλα Ασφάλειας IΙ 5
Αμοιβαία Πιστοποίηση KEY KEY Είμαι η, Φρέσκο τυχαίο R A Φρέσκο τυχαίο R B, κρυπτογράφησε KEY (R A ) Κρυπτογράφησε KEY (R B ) Αμοιβαία πιστοποίηση: Ο προς την και η προς τον Η απάντηση του : Πρέπει να επικοινωνώ με την αφού Αυτός που κρυπτογράφησε σωστά το R B είναι κάποιος που γνωρίζει το KEY Μόνο η γνωρίζει το KEY H πρέπει να έχει κρυπτογραφήσει το R B Αφού το R B είναι φρέσκο Η μπορεί να γνωρίζει το R B μόνο αν έλαβε το μήνυμά μου Πρωτόκολλα Ασφάλειας IΙ 6
Αμοιβαία Πιστοποίηση 1. Είμαι η, R A 2. R B, E(R A ) Kab Trudy 3. Είμαι η, R B 4. R C, E(R B ) Kab Trudy Πρωτόκολλα Ασφάλειας IΙ 7
Αμοιβαία Πιστοποίηση Επίθεση Ανάκλασης Είμαι η, φρέσκο τυχαίο R A Φρέσκο τυχαίο R B, κρυπτογράφησε KEY (R A ) KEY Ξεκίνα νέα συνέδρια, ξαναστείλε τον αριθμό του στον ίδιο Είμαι η, R B Φρέσκο τυχαίο R B, κρυπτογράφησε KEY (R B ) Ξανάστειλε το μήνυμα του σαν απάντηση από την Κρυπτογράφησε KEY (R B ) Το σκεπτικό του : Πρέπει να μιλάω στην αφού Αυτός που κρυπτογράφησε σωστά το R B είναι κάποιος που γνωρίζει το KEY Μόνο η γνωρίζει το KEY Όχι! Ο ίδιος ο γνωρίζει το KEY, επίσης! Η ασφάλεια συχνά αποτυγχάνει λόγω λάθος υποθέσεων Ο διάλεξε το R τυχαία πριν στείλει το 2 ο μήνυμα. Αυτό το R δεν πρέπει να έχει ξαναχρησιμοποιηθεί. Αυτό σημαίνει ότι το 3 ο μήνυμα, που περιλαμβάνει το R σε κρυπτογραφημένη μορφή, δεν έχει ξαναπαραχθεί Πρωτόκολλα Ασφάλειας IΙ 8
Αμοιβαία Πιστοποίηση Είμαι η, R A R B, E(,R A ) Kab E(,R B ) Kab Είναι αυτές οι «ασήμαντες» αλλαγές χρήσιμες? Ναι! Πρωτόκολλα Ασφάλειας IΙ 9
Αμοιβαία Πιστοποίηση με Δημόσια Κλειδιά Είμαι η {R} KUalice R Είναι αυτό ασφαλές? Ο Trudy μπορεί να κάνει την να αποκρυπτογραφήσει οτιδήποτε! Απαιτούνται δύο ζευγάρια κλειδιών Πρωτόκολλα Ασφάλειας IΙ 10
Αμοιβαία Πιστοποίηση με Δημόσια Κλειδιά & Ανταλλαγή Κλειδιού Συνεδρίας Είμαι η, R {R,K} KUalice {R +1,K} KUbob Είμαι η, R {R,K} KRbob {R +1,K} KRalice Μπορούμε να πιστοποιήσουμε και να ανταλλάξουμε ένα συμμετρικό κλειδί (που θα γνωρίζουν στη συνέχεια και οι δύο οντότητες)? (a) ΟΚ για το κλειδί, αλλά δεν υπάρχει αμοιβαία πιστοποίηση (b) ΟΚ για την αμοιβαία πιστοποίηση αλλά το κλειδί δεν παραμένει μυστικό! Πρωτόκολλα Ασφάλειας IΙ 11
Αμοιβαία Πιστοποίηση με Δημόσια Κλειδιά & Ανταλλαγή Κλειδιού Συνεδρίας Είμαι η, R {{R,K} KUalice } KRbob {{R +1,K} KUbob } KRalice Είναι αυτό ασφαλές? Φαίνεται να είναι ΟΚ Όλοι μπορούν να δουν το {R,K} KUalice και το {R +1,K} KUbob Πρωτόκολλα Ασφάλειας IΙ 12
Αμοιβαία Πιστοποίηση με Δημόσια Κλειδιά & Ανταλλαγή Κλειδιού Συνεδρίας με Χρονοσήμανση Είμαι η, {{T,K} KRalice } KUbob {{T +1,K} KRbob } KUalice Είναι ασφαλές? Φαίνεται εντάξει Πρωτόκολλα Ασφάλειας IΙ 13
Αμοιβαία Πιστοποίηση με Δημόσια Κλειδιά & Ανταλλαγή Κλειδιού Συνεδρίας με Χρονοσήμανση I m, {{T,K} KUbob } KRalice {{T +1,K} KUalice } KRbob I m Trudy, {{T,K} KUbob } KRtrudy {{T +1,K} KUtrudy } KRbob Trudy Ο Trudy μπορεί να χρησιμοποιήσει το δημόσιο κλειδί της για να βρει το {T,K} KUbob και μετά Ο Trudy έχει στην κατοχή του το κλειδί συνεδρίας Κ του και της Σημείωση: Ο Trudy πρέπει να ενεργήσει μέσας στα όρια χρονικού παραθύρου Πρωτόκολλα Ασφάλειας IΙ 14
Πρωτόκολλα Πιστοποίησης Πρωτόκολλα τα οποία είναι ασφαλή στην μία κατεύθυνση δεν είναι απαραίτητα ασφαλή και για αμοιβαία πιστοποίηση Υπογραφή και κρυπτογράφηση με nonce Ασφαλές Κρυπτογράφηση και υπογραφή με nonce Ασφαλές Υπογραφή και κρυπτογράφηση με χρονοσήμανση (timestamp) Ασφαλές Κρυπτογράφηση και υπογραφή με χρονοσήμανση (timestamp) ΌΧΙ Ασφαλές Τα πρωτόκολλα μπορεί να κρύβουν παγίδες! Το προφανές ίσως να μην είναι ασφαλές Πρωτόκολλα Ασφάλειας IΙ 15
Πιστοποίηση με τη Διαμεσολάβιση KDC Το KDC είναι μία οντότητα που διατηρεί ένα DB με συμμετρικά κλειδιά τα οποία μοιράζεται με τους συνδρομητές του Οποιοσδήποτε χρήστης είναι δυνατό να εγγραφεί στο KDC και κατόπιν να επικοινωνεί με ασφάλεια με το KDC και το KDC μπορούν να πιστοποιηθούν μεταξύ τους και να κρυπτογραφήσουν τα μηνύματα που ανταλλάσουν με ένα κλειδί το οποίο γνωρίζουν μόνο αυτοί οι δύο Ένα απλό πρωτόκολλο Η ζητά να επικοινωνήσει με τον Το KDC δημιουργεί το συμμετρικό K AB και το στέλνει στην και στον, κρυπτογραφημένο με τα αντίστοιχα κλειδιά Σημείωση: δεν υπάρχει πιστοποίηση, αλλά ο επιτιθέμενος δεν μπορεί να αποκαλύψει το K AB Πρωτόκολλα Ασφάλειας IΙ 16
Πιστοποίηση με τη Διαμεσολάβιση KDC Σημείωση Το KDC δεν γνωρίζει εάν ήταν πραγματικά η που ζήτησε να επικοινωνήσει με τον Αυτό δεν βοηθά τον επιτιθέμενο (Trudy) επειδή αυτός δεν μπορεί να αποκρυπτογραφήσει το K AB Ο Trudy θα προκαλέσει την λήψη ακατανόητων μηνυμάτων από τον αλλά έτσι δεν προκαλεί κάποια ζημιά Πρωτόκολλα Ασφάλειας IΙ 17
Πιστοποίηση με τη Διαμεσολάβιση KDC Μία βελτίωση Το αρχικό πρωτόκολλο έχει κάποια πρακτικά προβλήματα Στην παρούσα έκδοση, το KDC στέλνει στην το K AB κρυπτογραφημένο με το κλειδί του Μειώνεται ο επικοινωνιακός φόρτος του KDC Ανθεκτικό στις καθυστερήσεις μηνυμάτων (και την αλλαγή στη σειρά με την οποία στέλνονται) που προκαλούνται από το δίκτυο Πρωτόκολλα Ασφάλειας IΙ 18
Πρωτόκολλο Needham-Schroeder Στόχος: Πιστοποίηση σε ένα δίκτυο σταθμών εργασίας ημοσιεύθηκε το 1979 Αρχικό/Κλασσικό πρωτόκολλο διανομής κλειδιών με τη διαμεσολάβιση ενός 3 ου έμπιστου μέρους ύο επίπεδα ιεραρχίας κλειδιών Για ένα session μεταξύ A, B διαμέσου ενός KDC Κάθε οντότητα μοιράζεται ένα κλειδί με το KDC (master key) Το KDC δημιουργεί session keys τα οποία θα χρησιμοποιηθούν για την επικοινωνία μεταξύ οντοτήτων Tα master keys χρησιμοποιούνται για την ασφαλή διανομή των session keys Μετα την διανομή του προσωρινού κλειδιού το πρωτόκολλο ολοκληρώνεται με με την αμοιβαία πιστοποίηση μεταξύ της και του Πολλά πρωτόκολλα έχουν χρησιμοποιήσει σαν πρότυπο το NS Kerberos Πρωτόκολλα Ασφάλειας IΙ 19
Πρωτόκολλο Needham-Schroeder Step 1: Η ενημερώνει το KDC ποιό είναι το αίτημά της Step 2: Το KDC δίνει στην το προσωρινό κλειδί και ένα πακέτο για να το προωθήσει στον Step 3: Ο δέχεται το προσωρινό κλειδί, και την ταυτότητα με ποιόν επικοινωνεί (επαληθευμένο εξαιτίας του γεγονότος ότι το μήνυμα στάλθηκε από το KDC) Step 4: Ο στέλνει στην μία πρόκληση Step 5: Η απαντά στην πρόκληση Πρωτόκολλα Ασφάλειας IΙ 20