Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Εισαγωγή στην Κρυπτογραφία Εγκαθίδρυση κλειδιού (γέννηση, διανομή & συμφωνία)

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Εισαγωγή στην Κρυπτογραφία Εγκαθίδρυση κλειδιού (γέννηση, διανομή & συμφωνία)"— Μεταγράφημα παρουσίασης:

1 Εισαγωγή στην Κρυπτογραφία Εγκαθίδρυση κλειδιού (γέννηση, διανομή & συμφωνία)

2 2 Γέννηση κλειδιών Ο χώρος από τον οποίο δημιουργούνται τα κλειδιά (Key space) πρέπει να είναι μεγάλος Η επιλογή από το χώρο των κλειδιών πρέπει να είναι τυχαία  Οι άνθρωποι συνήθως επιλέγουν όχι καλά κλειδιά  Κάποιοι αλγόριθμοι έχουν ασθενή κλειδιά που πρέπει να αποφεύγονται (για παράδειγμα, ο DES έχει 16 τέτοια κλειδιά ANSI X9.17 Key Generation Algorithm (pseudorandom bit generator)  Το κλειδί παράγεται από το προηγούμενο κλειδί, μέσω κάποιας διαδικασίας κρυπτογράφησης. R i =E K (E k (T i )  V i ) όπου:  E k (X) μία two-key triple-DES E-D-E κρυπτογράφηση του X, με κλειδί το k (που κρατείται αποκλειστικά για αυτόν τον αλγόριθμο)  V 0 είναι μία αρχική μυστική αλληλουχία bits (σπόρος, seed),  T είναι ένα timestamp  Το V i+1 παράγεται με τη συνάρτηση: V i+1 =E K (E K (T i )  R i )

3 3 Εγκαθίδρυση Κλειδιού Διανομή κλειδιού βασισμένη σε συμμετρική κρυπτογράφηση Συμφωνία κλειδιού βασισμένη σε συμμετρικές τεχνικές Διανομή κλειδιού βασισμένη σε κρυπτογράφηση δημόσιου κλειδιού Συμφωνία κλειδιού βασισμένη σε μη συμμετρικές τεχνικές Κρυφός διαμοιρασμός (secret sharing) Συνδιάσκεψη κλειδιών Ανάλυση Πρωτοκόλλων Εγκαθίδρυσης Κλειδιού

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

5 5 Ορολογία Εγκαθίδρυση κλειδιού (key establishment) : διαδικασία ή πρωτόκολλο μέσω του οποίου ένα διαμοιραζόμενο μυστικό διατίθεται σε δύο ή περισσότερα μέλη για διαδοχική κρυπτογραφική χρήση. Χωρίζεται σε διανομή κλειδιού και συμφωνία κλειδιού. Πρωτόκολλο διανομής κλειδιού : τεχνική εγκαθίδρυσης κλειδιού όπου ένα μέλος δημιουργεί ή εξασφαλίζει μία μυστική τιμή και τη μεταφέρει με ασφάλεια στους άλλους. Πρωτόκολλο Συμφωνίας κλειδιού : τεχνική εγκαθίδρυσης κλειδιού στην οποία ένα διαμοιραζόμενο μυστικό προέρχεται από δύο ή περισσότερα μέλη ως μία συνάρτηση πληροφορίας συμβαλλόμενη, ή συνδυαζόμενη με κάθε ένα από αυτά, έτσι ώστε κανένα μέλος να μη μπορεί να προκαθορίσει το αποτέλεσμα. Σχήματα Προ-διανομής κλειδιού : Πρωτόκολλα Εγκαθίδρυσης Κλειδιού μέσω των οποίων τα τελικώς εγκαθιδρυμένα κλειδιά είναι εντελώς καθορισμένα a priori από αρχικά κλειδιά. Σχήματα Δυναμικής Εγκαθίδρυσης κλειδιού : σχήματα μέσω των οποίων το κλειδί που έχει εγκαθιδρυθεί από ένα καθορισμένο ζευγάρι (ή ομάδα) χρηστών μεταβάλλεται σε διαδοχικές εκτελέσεις.

6 6 Πιστοποίηση κλειδιού : ιδιότητα μέσω της οποίας ένα μέλος βεβαιώνεται ότι κανένα άλλο μέλος εκτός από ένα εδικό αναγνωρισμένο δεύτερο μέλος δεν μπορεί να αποκτήσει πρόσβαση σε ένα ειδικό μυστικό κλειδί. Επιβεβαίωση κλειδιού : ιδιότητα μέσω της οποίας ένα μέλος βεβαιώνεται ότι ένα δεύτερο (πιθανώς μη αναγνωρισμένο) μέλος έχει στην κατοχή του ένα μυστικό κλειδί. Άμεση πιστοποίηση κλειδιού : ιδιότητα η οποία εξασφαλίζεται όταν και η (έμμεση) πιστοποίηση και η επιβεβαίωση κλειδιού ισχύουν. Πρωτόκολλο πιστοποίησης εγκαθίδρυσης κλειδιού : Πρωτόκολλο Εγκαθίδρυσης Κλειδιού που παρέχει πιστοποίηση κλειδιού. Ένα Πρωτόκολλο Εγκαθίδρυσης Κλειδιού ονομάζεται identity-based (βασισμένο σε ταυτότητα) αν πληροφορίες της ταυτότητας των εμπλεκόμενων μελών χρησιμοποιούνται για τον καθορισμό του δημόσιου κλειδιού. Ένα διμερές πρωτόκολλο εγκαθίδρυσης κλειδιού ονομάζεται message-independent (ανεξάρτητο μηνύματος) αν τα μηνύματα που στέλνονται από κάθε μέλος είναι ανεξάρτητα από χρονικά μεταβαλλόμενα δεδομένα (δυναμικά δεδομένα) τα οποία λαμβάνονται από άλλα μέλη. Ορολογία

7 7 Διανομή κλειδιού Φυσική διανομή  Το κλειδί μεταβιβάζεται μέσα από ένα ασφαλές φυσικό κανάλι (υπάρχει?) Με κρυπτογραφημένη επικοινωνία Με κρυπτογραφημένη επικοινωνία, μέσω ενός διαιτητή

8 8 Αρχές διανομής κλειδιού Σημείο-προς-σημείο παράδοση μέσω ενός αξιόπιστου καναλιού επικοινωνίας: οι χρήστες ανταλλάσσουν το κοινό τους κλειδί για επικοινωνία μεταξύ τους, με χρήση τεχνικών που εξασφαλίζουν ακεραιότητα δεδομένων. Χρησιμοποιείται σε κλειστά συστήματα με λίγους χρήστες ή σε περιπτώσεις όπου το κλειδί δεν αλλάζει συχνά. Κοινή πρόσβαση σε ένα έμπιστο, δημόσιο αρχείο: Το αρχείο αυτό περιέχει τα δημόσια κλειδιά για κάθε χρήστη του συστήματος. Απαιτείται όμως ασφαλές κανάλι για την πρόσβαση σε αυτό, έτσι ώστε να μην μπορούν να λάβουν χώρα ενεργές επιθέσεις. Ύπαρξη οn-line έμπιστου εξυπηρετητή: όποιος χρήστης χρειάζεται κλειδί, ζητάει εκείνη τη στιγμή από έναν on-line εξυπηρετητή. Μειονέκτημα είναι το ότι ο εξυπηρετητής αυτός μπορεί ταυτόχρονα να χρειαστεί να διανείμει πάρα πολλά κλειδιά σε μεγάλο αριθμό χρηστών.

9 9 Αρχές διανομής κλειδιού (II) Χρήση offline εξυπηρετητή και πιστοποιητικών (certificates): ο κάθε χρήστης επικοινωνεί με έναν έμπιστο off-line εξυπηρετητή (certification authority), ο οποίος «υπογράφει» ένα μπλοκ δεδομένων του χρήστη, το οποίο περιέχει τόσο το μήνυμα όσο και το δημόσιο κλειδί. Στα δεδομένα επίσης πρέπει να υπάρχει και ένα αναγνωριστικό της ταυτότητας του χρήστη. (παράγραφος από «Handbook of Applied Cryptography») Χρήση συστημάτων που πιστοποιούν τη γνησιότητα δημοσίων παραμέτρων (π.χ. Identity-based συστήματα, όπου το δημόσιο κλειδί για τον κάθε χρήστη δεν προϋπάρχει αλλά κατασκευάζεται με βάση κάποια γνωστή πληροφορία που χαρακτηρίζει το χρήστη – παράγραφος από «Handbook of Applied Cryptography»)

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

11 11 Είδη Επιβεβαιώσεων και χαρακτηριστικά πρωτοκόλλων (συνέχεια) αποδοτικότητα. Περιλαμβάνει τα εξής : α) αριθμός των ανταλλαγών μηνύματος που απαιτείται μεταξύ των μελών. β) το εύρος ζώνης που απαιτείται από τα μηνύματα (bandwirth). γ) υπολογιστική πολυπλοκότητα για το κάθε μέλος (καθώς επηρεάζει το χρόνο εκτέλεσης). δ) πιθανότητα προ-επεξεργασίας για να μειωθεί η on-line υπολογιστική πολυπλοκότητα. απαιτήσεις τρίτου μέλους. Περιλαμβάνει τα εξής : α) απαίτηση για ένα on-line (πραγματικού χρόνου) ή off-line ή χωρίς τρίτο μέλος. β) βαθμός εμπιστοσύνης που απαιτείται από ένα τρίτο μέλος. τύπος του πιστοποιητικού που χρησιμοποιείται, αν υπάρχει. Γενικότερα κάποιος μπορεί να θεωρήσει ότι ο τρόπος με τον οποίο διαχωρίζονται τα αρχικά κλειδιά μπορεί να σχετίζεται με τις απαιτήσεις του τρίτου μέλους. μη αποκήρυξη (non-repudiation) : Ένα πρωτόκολλο μπορεί να παρέχει κάποιου είδους απόδειξης ότι το περιεχόμενο του κλειδιού έχει ανταλλαγεί.

12 12 Διαχείριση του κλειδιού Η ασφάλεια κάθε κρυπτογραφικού συστήματος εξαρτάται από την ασφαλή και αποδοτική διανομή και διαχείριση του κλειδιού  Συχνές αλλαγές (κάθε κλειδί να χαρακτηρίζεται ως νέο)  Χαμηλό overhead στο κανάλι (με δεδομένο ότι σε δίκτυο n κόμβων, απαιτούνται n(n-1)/2 κλειδιά, ένα για κάθε ζεύγος χρηστών) Κέντρα κατανομής κλειδιού (Key Distribution Centers - KDCs) και Κέντρα μετάφρασης κλειδιού (Key Translation Centers - KΤCs): παίζουν ρόλο «διαιτητή» στην ανταλλαγή κλειδιών μεταξύ των χρηστών (θα τα δούμε σε επόμενη ενότητα)

13 13 Αρχές διαχείρισης κλειδιού Για μείωση της πιθανότητας υποκλοπής  Χρήση διαφορετικών κλειδιών για διαφορετικούς σκοπούς  Γέννηση νέων κλειδιών με χρήση των παλιών, σε συνδυασμό με κάποια συνάρτηση κατακερματισμού Για μείωση της πιθανότητας να προσποιηθεί κάποιος ότι είναι κάποιος άλλος  Χρήση αμοιβαίας πιστοποίησης ταυτότητας όταν ανταλλάσσεται το κλειδί Για μείωση των συνεπειών σε βλάβη του υπολογιστή  Αποθήκευση κλειδιών στη μνήμη, π.χ. smart card, flash key, etc.  Hardware και όχι software προστασία Άλλες αρχές:  Συχνή αντικατάσταση κλειδιών

14 14 Διαχείριση κλειδιού – Πλεονεκτήματα Συστημάτων Δημοσίου Κλειδιού έναντι Συμμετρικού Για να στείλει κρυπτογραφημένα δεδομένα ένας χρήστης A στον B, χρειάζεται να ξέρει απλά το Δημόσιο Κλειδί του Β Δεν χρειάζεται On-line εξυπηρετητής Γίνονται αποδοτικά λειτουργίες όπως έλεγχος πιστοποίησης ταυτότητας και αυθεντικότητας δεδομένων.

15 15 Επιθέσεις στα Πρωτόκολλα Εγκαθίδρυσης Κλειδιού Τα επικοινωνούντα μέλη ή οντότητες στα πρωτόκολλα εγκαθίδρυσης κλειδιού επίσημα καλούνται αρχές (principals) και έχουν μοναδικά ονόματα. Επιπρόσθετα, υποθέτουμε την παρουσία ενός μη εγκεκριμένου τρίτου μέλους το οποίο αναφέρεται ανάλογα ως ανταγωνιστής (adversary), εισβολέας (intruder), αντίπαλος (opponent), εχθρός (enemy), επιτιθέμενος (attacker), λαθρακουστής (eavesdropper), πλαστοπρόσωπος (impersonator). Όταν εξετάζουμε την ασφάλεια ενός πρωτοκόλλου υποθέτουμε ότι ο μηχανισμός κρυπτογράφησης είναι ασφαλής. Υποθέτουμε ότι ο επιτιθέμενος δεν είναι ένας κρυπταναλυτής αλλά κάποιος που προσπαθεί να υπονομεύσει τους στόχους του πρωτοκόλλου νικώντας τον τρόπο με τον οποίο αυτοί οι μηχανισμοί συνδυάζονται.

16 16 Παθητική & ενεργητική επίθεση Μία παθητική επίθεση (passive attack) αναφέρεται σε έναν επιτιθέμενο ο οποίος καταγράφει τα δεδομένα και στη συνέχεια προσπαθεί να τα αναλύσει. Μία ενεργητική επίθεση (active attack) αναφέρεται σε έναν επιτιθέμενο ο οποίος τροποποιεί ή παρεμβάλει μηνύματα. Μοντελοποίηση της Επικοινωνίας σε μη ασφαλή δίκτυα Θεωρούμε ότι τα μηνύματα του πρωτοκόλλου μεταφέρονται σε ανασφαλή (ανοιχτά) δίκτυα. Ο επιτιθέμενος μπορεί να έχει πλήρη έλεγχο των δεδομένων στο δίκτυο με δυνατότητα να αλλάξει, διαγράψει, εισάγει, ανακατευθύνει, αναδιατάξει και να επαναχρησιμοποιήσει παλιά ή παρόντα μηνύματα και να παρεμβάλει νέα μηνύματα. Ο επιτιθέμενος μπορεί να συνδυάσει μη ύποπτα εγκεκριμένα μέλη ξεκινώντας νέες εκτελέσεις του πρωτοκόλλου.

17 17 Στρατηγικές επιτιθέμενων σε Πρωτόκολλα Εγκαθίδρυσης Κλειδιού 1. Συμπεραίνει ένα session key χρησιμοποιώντας πληροφορίες που αποκτά κρυφακούοντας. 2. Συμμετέχει κρυφά σε ένα πρωτόκολλο ξεκινώντας από ένα μέλος προς ένα άλλο επηρεάζοντάς τα. 3. Ξεκινά μία ή περισσότερες εκτελέσεις πρωτοκόλλων και συνδυάζει μηνύματα αυτών ώστε να μεταμφιεσθεί σε ένα άλλο μέλος ή να εκτελέσει μία από τις παραπάνω επιθέσεις. 4. Χωρίς να μπορεί να συμπεράνει το ίδιο το κλειδί εξαπατά ένα νόμιμο μέλος όσον αφορά την ταυτότητα ενός μέλους με το οποίο μοιράζεται το κλειδί.

18 18 Διαχωρισμός των επιτιθέμενων με βάση το είδος της πληροφορίας που αυτοί κατέχουν Εξωτερικός-Outsider (δεν έχει καμία ιδιαίτερη γνώση εκτός από τις γενικά διαθέσιμες μέσω λαθρακοής ή ανοικτού καναλιού. Εσωτερικός-Insider (έχει πρόσβαση σε επιπλέον πληροφορίες που αποκτήθηκαν με κάποια πρόσθετα μέσα, όπως ένα μυστικό κλειδί) One-time insider (αποκτά πληροφορία κάποια στιγμή για να την χρησιμοποιήσει κάποια επόμενη χρονική στιγμή) Permanent insider (έχει συνεχή πρόσβαση σε προνομιακή πληροφορία)

19 19 Διανομή κλειδιού βασισμένη σε συμμετρική κρυπτογράφηση Διανομή ενός συγκεκριμένου κλειδιού επιλεγμένου a priori από ένα μέλος χρησιμοποιώντας συμμετρική κρυπτογραφία. Χωρίζονται σε πρωτόκολλα με ή χωρίς τη χρήση έμπιστου – trusted server όπως φαίνεται στον πίνακα Ιδιότητες Πρωτόκολλο Server typeΧρήση timestamps Αριθμός μηνυμάτων point-to-point key update Όχι serverπροαιρετική1-3 Shamir’s no-key protocol Όχι serverόχι3 KerberosKDCναι4 Needham Schroeder shared key KDCόχι5 Otway-ReesKDCόχι4 Protocol 13.12KTCόχι3

20 20 Διανομή συμμετρικού κλειδιού και παραγωγή χωρίς server (Ι) A) Point-to-point key update χρησιμοποιώντας συμμετρική κρυπτογράφηση Κάνει χρήση ενός μακροπρόθεσμου συμμετρικού κλειδιού K το οποίο μοιράζονται a priori δύο μέλη A και Β. Το κλειδί αυτό (που διακινείται αρχικά μέσα από ένα ασφαλές κανάλι) χρησιμοποιείται επανειλημμένα για να εγκαθιδρυθούν νέα session keys W. Επεξήγηση r A : τυχαίος αριθμός, παράγεται από τον Α t A : timestamp, παράγεται από τον Α n A, n B : αριθμός ακολουθίας, παράγονται από από τον Α και τον Β αντίστοιχα Ε : συμμετρικός αλγόριθμος κρυπτογράφησης Προαιρετικά πεδία του μηνύματος δηλώνονται με *

21 21 1. Διανομή κλειδιού με ένα πέρασμα Α→Β : Ε Κ (r A ) (1) Το session key που χρησιμοποιείται είναι το W= r A και οι Α και Β αποκτούν έμμεση πιστοποίηση κλειδιού. Επιπρόσθετα προαιρετικά πεδία που μπορεί να μεταφερθούν στο κρυπτογραφημένο μήνυμα είναι: Ένα timestamp ή ένας αριθμός ακολουθίας που παρέχει «φρεσκάδα» στο Β (ένα πεδίο το οποίο περιέχει πλεονασμό και παρέχει έμμεση πιστοποίηση στο Β ή διευκολύνει την ανίχνευση τροποποίησης του μηνύματος) Ένα αναγνωριστικό στόχου για να παρεμποδίσει την άμεση μη ανιχνεύσιμη επιστροφή (replay back) του μηνύματος στον Α. Οπότε Α→Β : Ε Κ (r A, t A *, B*) (1΄) Αν είναι επιθυμητό και τα δύο μέλη να συνεισφέρουν στο session key, ο Β μπορεί να στείλει στον Α ένα ανάλογο μήνυμα, με το session key να υπολογίζεται ως f(r A, r B ). Επιλέγοντας την f να είναι μία μονόδρομη (one-way) συνάρτηση εμποδίζεται ο έλεγχος της τιμής του τελικού κλειδιού από κάθε μέλος ή από έναν επιτιθέμενο που αποκτά ένα από τα r A, r B. Διανομή συμμετρικού κλειδιού και παραγωγή χωρίς server (ΙΙ)

22 22 Διανομή συμμετρικού κλειδιού και παραγωγή χωρίς server (ΙΙΙ) 2. Διανομή κλειδιού με απάντηση σε πρόκληση Α ← Β : n B (1) Α→Β : Ε Κ (r A, n B, B*) (2) Το νέο session key που χρησιμοποιείται είναι το W= r A.. Το n B χρησιμεύει για «φρεσκάδα» αντί timestamp. Αν είναι επιθυμητό και τα δύο μέλη να συνεισφέρουν στο session key W, ο A εισαγάγει ένα εφάπαξ n A να προηγείται του n B και έτσι έχουμε και τρίτο μήνυμα: Α ← Β : n B (1) Α → Β : Ε Κ (r A, n A, n B, B*) (2) Α ← Β : Ε Κ (r B, n A, n B, A*) (3)

23 23 Συμμετρική διανομή κλειδιού και παραγωγή χωρίς server (IV) B) Διανομή κλειδιού χωρίς a priori διαμοιραζόμενα κλειδιά Αλγόριθμος του Shamir Ο αλγόριθμος του Shamir επιτρέπει την εγκαθίδρυση κλειδιού μέσα από ένα ανοιχτό κανάλι χωρίς να απαιτεί ούτε διαμοιραζόμενα ούτε δημόσια κλειδιά. Κάθε μέλος έχει μόνο ένα δικό του τοπικό συμμετρικό κλειδί. Το πρωτόκολλο παρέχει προστασία μόνο από παθητικές επιθέσεις και δεν παρέχει πιστοποίηση. Δύο μέλη χωρίς να μοιράζονται a priori υλικό κλειδιού καταλήγουν με ένα διαμοιραζόμενο μυστικό κλειδί ασφαλές απέναντι σε παθητικές επιθέσεις (όμοια με το πρωτόκολλο Diffie-Hellman που θα δούμε παρακάτω)

24 24 Πρωτόκολλο Shamir (χωρίς κλειδί) ΠΕΡΙΛΗΨΗ: οι χρήστες Α και Β ανταλλάσσουν 3 μηνύματα σε ένα ανοικτό κανάλι. ΑΠΟΤΕΛΕΣΜΑ: το μυστικό Κ μεταφέρεται με ιδιωτικότητα (privacy) αλλά χωρίς πιστοποίηση (authentication ) από τον Α στον Β. 1. One-time setup (definition and publication of system parameters-ορισμός και δημοσιοποίηση των παραμέτρων του συστήματος). (a) Επέλεξε και δημοσιοποίησε για κοινή χρήση ένα prime p επιλεγμένο έτσι ώστε ο υπολογισμός των discrete λογαρίθμων modulo p να είναι ανέφικτος. (b) Ο A και ο B επιλέγουν αντίστοιχα μυστικούς τυχαίους αριθμούς a, b, with 1 ≤ a, b ≤ p-2, ο καθένας πρώτος με p - 1. Υπολογίζουν αντίστοιχα τους αντίστροφους a -1 και b -1 mod p Protocol messages(μηνύματα πρωτοκόλλου). A → B : K a mod p (1) A ← B : (K a ) b mod p (2) A → B : (K ab ) a -1 mod p (3)

25 25 Πρωτόκολλο Shamir’s (χωρίς κλειδί) II 3. Protocol actions. Εκτελεί τα ακόλουθα βήματα για κάθε απαιτούμενο διαμοιραζόμενο κλειδί. (a) Ο A επιλέγει ένα τυχαίο κλειδί K για διανομή στον B, 1 ≤ K ≤ p - 1. Ο A υπολογίζει K a mod p και στέλνει στον B το μήνυμα (1). (b) Ο B υψώνει σε δύναμη b (mod p) την ληφθείσα τιμή, και στέλνει στον A το μήνυμα(2). (c) Ο A υψώνει σε δύναμη a -1 mod p – 1 (mod p) την ληφθείσα τιμή, «αναιρώντας» ουσιαστικά την προηγούμενη ύψωση σε δύναμη και παράγοντας K b mod p. Ο A στέλνει το αποτέλεσμα στον B σαν μήνυμα(3). (d) Ο B υψώνει σε δύναμη b-1 mod p – 1 (mod p) τη ληφθείσα τιμή, παράγοντας το νέο διαμοιραζόμενο κλειδί K mod p.

26 26 Kerberos και συναφή server based πρωτόκολλα Πρωτόκολλα διανομής κλειδιού που βασίζονται στη συμμετρική κρυπτογράφηση Περιλαμβάνουν δύο μέλη Α και Β τα οποία επικοινωνούν μεταξύ τους και έναν έμπιστο server με τον οποίο μοιράζονται μακροπρόθεσμα pairwise μυστικά κλειδιά a priori. Ο Server είτε : α) έχει το ρόλο ενός κέντρου διανομής κλειδιού (KDC) και παρέχει το session key είτε : β) εξυπηρετεί ως ένα κέντρο μετάφρασης κλειδιού (KTC) και κατασκευάζει ένα κλειδί επιλεγμένο από ένα μέλος διαθέσιμο σε ένα άλλο επανακρυπτογραφόντας (μεταφράζοντας) το.

27 27 Πρωτόκολλο πιστοποίησης Kerberos Το βασικό πρωτόκολλο περιλαμβάνει : τον Α (ο client), τον B (ο server και επαληθευτής) και τον Τ έναν έμπιστο server (ο server πιστοποίησης του Kerberos) Αρχικά ο Α και ο Β δεν μοιράζονται κανένα μυστικό ενώ ο Τ μοιράζεται ένα μυστικό με τον καθέναν τους. Προαιρετικά, ο Α και ο Β μοιράζονται ένα subkey που δεν ξέρει ο Τ. Ο πρωταρχικός στόχος είναι να επαληθεύσει ο Β την ταυτότητα του Α. Το πρωτόκολλο εκτελείται ως εξής : Ο Α ζητά από τον Τ κατάλληλα διαπιστευτήρια τα οποία θα του επιτρέψουν να πιστοποιήσει τον εαυτό του στον Β. Ο Τ παίζει το ρόλο ενός KDC επιστρέφοντας στον Α ένα session key κρυπτογραφημένο για τον Α και ένα εισιτήριο (ticket) κρυπτογραφημένο για τον Β. Το εισιτήριο το οποίο ο Α προωθεί στον Β περιέχει το session key και την ταυτότητα του Α. Αυτό επιτρέπει την πιστοποίηση του Α στον Β όταν συνοδεύεται με ένα κατάλληλο μήνυμα το οποίο δημιουργείται από τον Α και περιέχει ένα timestamp πρόσφατα κρυπτογραφημένο με το session key.

28 28 Βασικό Πρωτόκολλο Πιστοποίησης Kerberos (απλοποιημένο για διδακτικούς λόγους) ΠΕΡΙΛΗΨΗ: Ο A αλληλεπιδρά με τον έμπιστο server T και με το μέλος B. ΑΠΟΤΕΛΕΣΜΑ: πιστοποίηση ταυτότητας του A στον B (προαιρετικά αμοιβαία), με εγκαθίδρυση κλειδιού. 1. Συμβολισμοί. Προαιρετικά αντικείμενα σημειώνονται με αστερίσκο(*). E είναι ένας συμμετρικός αλγόριθμος κρυπτογράφησης N A είναι ένα εφάπαξ επιλεγμένο από τον A T A είναι ένα timestamp από το τοπικό ρολόι του A. k είναι το session-key επιλεγμένο από τον T, ώστε να μοιραστεί από τον A και από τον B. L υποδηλώνει μία περίοδος ισχύος («χρόνος ζωής, lifetime»). 2. One-time setup. Ο A και ο T μοιράζονται ένα κλειδί K AT, ομοίως ο B και ο T μοιράζονται το K BT. Όρισε ticket B = E K BT (k,A,L), authenticator = E k (A, T A,A* subkey ). 3. Protocol messages. A → T : A,B,N A (1) A ← T : ticket B, E K AT (k,N A, L, B) (2) A → B: ticket B, authenticator (3) A ← B : E k (T A, Β* subkey ) (4) (προαιρετικά για αμοιβαία πιστοποίηση)

29 29 Βασικό Πρωτόκολλο Πιστοποίησης Kerberos (απλοποιημένο) 4. Ενέργειες του πρωτοκόλλου. (a) Ο A παράγει ένα εφάπαξ (nonce) N A και στέλνει στον T το μήνυμα (1). (b) Ο T παράγει ένα νέο session key k, και ορίζει ένα χρόνο ζωής (lifetime L) για το εισιτήριο, αποτελούμενο από μία τελική χρονική στιγμή και μία προαιρετική αρχική χρονική στιγμή. Ο T κρυπτογραφεί το k, το ληφθέν εφάπαξ, το χρόνο ζωής, και το ληφθέν identifier (B) χρησιμοποιώντας το κλειδί του Α. Ο T επίσης δημιουργεί ένα ασφαλές εισιτήριο, χρησιμοποιώντας το κλειδί του Β, που περιέχει το k, το ληφθέν identifier (A),και το χρόνο ζωής. Ο T στέλνει στον A το μήνυμα (2). (c) Ο A αποκρυπτογραφεί το χωρίς εισιτήριο μέρος του μηνύματος (2) χρησιμοποιώντας το K AT για να ανακτήσει τα: k, N A, lifetime L, και τον identifier του B για τοn οποίοn το εισιτήριο δημιουργήθηκε. Ο A επαληθεύει ότι αυτός ο identifier και το N A ταιριάζουν με αυτά που στάλθηκαν στο μήνυμα (1), και σώζει το L για αναφορά. Ο A παίρνει τον δικό του identifier και ένα φρέσκο timestamp T A, προαιρετικά παράγει ένα μυστικό A subkey, και τα κρυπτογραφεί χρησιμοποιώντας το k ώστε να σχηματίσει το πιστοποιητικό. Ο A στέλνει στον B το μήνυμα (3).

30 30 Βασικό Πρωτόκολλο Πιστοποίησης Kerberos (απλοποιημένο) 4. Ενέργειες του πρωτοκόλλου (συνέχεια). (d) Ο B λαμβάνει το μήνυμα (3), αποκρυπτογραφεί το εισιτήριο χρησιμοποιώντας το K BT ανακτώντας το k που του επιτρέπει την αποκρυπτογράφηση του πιστοποιητικού. Ο B ελέγχει ότι: i. τα πεδία του identifier του (A) στο ticket και στο πιστοποιητικό ταιριάζουν. ii. το timestamp T A στο πιστοποιητικό είναι έγκυρο και iii. Η τοπική ώρα του B είναι εντός του L που καθορίστηκε στο εισιτήριο. Αν όλοι οι έλεγχοι περάσουν, ο B δηλώνει την πιστοποίηση του A ως επιτυχής, και σώζει το A subkey (αν υπάρχει) όπως απαιτείται. (e) Προαιρετικά, για αμοιβαία πιστοποίηση οντότητας ο Β φτιάχνει και στέλνει στον Α το μήνυμα (4) που περιέχει το timestamp του Α από το πιστοποιητικό (ειδικά αποκλείοντας τον identifier A, για να το ξεχωρίσει από το πιστοποιητικό) κρυπτογραφώντας το με το k. Προαιρετικά ο Β περιλαμβάνει και ένα subkey που θα του επιτρέψει να διαπραγματευθεί ένα κλειδί υποσυνόδου (session). (f) Προαιρετικά, για αμοιβαία πιστοποίηση οντότητας ο A αποκρυπτογραφεί το μήνυμα (4) και ελέγχει εάν το timestamp είναι αυτό που έστειλε στο μήνυμα (3) και έτσι δηλώνει επιτυχή την πιστοποίηση της οντότητας Β (και σώζει το Β subkey εάν υπάρχει.

31 31 Περίληψη: Basic Kerberos authentication protocol

32 32 Πρωτόκολλο διαμοιραζόμενου κλειδιού Needham-Schroeder Αποτελεί τη βάση για πολλά πρωτόκολλα πιστοποίησης βασισμένα σε server και πρωτόκολλα διανομής κλειδιού που προτάθηκαν από το Αποτελεί παράδειγμα πρωτοκόλλου το οποίο είναι : ανεξάρτητο από timestamps, παρέχει τόσο εγγυήσεις πιστοποίησης ταυτότητας όσο και εγκαθίδρυση κλειδιού με επιβεβαίωση του κλειδιού. Διαφορές μεταξύ τπυ πρωτοκόλλου Needham-Schroeder και του Kerberos 1. Η παράμετρος lifetime του Kerberos δεν υπάρχει στο Needham- Schroeder 2. Τα δεδομένα του μηνύματος (3) τα οποία ανταποκρίνονται στο «εισιτήριο» του Kerberos είναι διπλά κρυπτογραφημένα στο Needham-Schroeder χωρίς αυτό να είναι αναγκαίο 3. Η πιστοποίηση χρησιμοποιεί εφάπαξ παρά timestamps

33 33 Πρωτόκολλο διαμοιραζόμενου κλειδιού Needham-Schroeder ΠΕΡΙΛΗΨΗ: Ο A αλληλεπιδρά με έναν έμπιστο T και με ένα μέλος B. ΑΠΟΤΕΛΕΣΜΑ: πιστοποίηση ταυτότητας (A με B), εγκαθίδρυση κλειδιού με επιβεβαίωση κλειδιού. 1. Σημείωση. E είναι ένα συμμετρικός αλγόριθμος κρυπτογράφησης. N A και N B είναι εφάπαξ επιλεγμένα από τον A και τον B, αντίστοιχα. Το k είναι ένα session key επιλεγμένο από τον έμπιστο server T για να μοιραστούν οι A και B. 2. One-time setup. Ο A και ο T μοιράζονται ένα συμμετρικό κλειδί K AT, ο B και ο T μοιράζονται το K BT. 3. Μηνύματα του πρωτοκόλλου. A → T : A, B, N A (1) A ← T : E K AT (N A, B, k, E K BT (k, A)) (2) A → B : E K BT (k,A) (3) A ← B : E k (N B ) (4) A → B : E k (N B - 1) (5) 4. Ενέργειες του πρωτοκόλλου. Εκτός από την επαλήθευση των εφάπαξ, οι ενέργειες είναι ουσιαστικά ανάλογες με αυτές στο πρωτόκολλο Kerberos, και εδώ δεν αναφέρονται λεπτομερώς.

34 34 Πρωτόκολλο Otway-Rees Βασισμένο σε server πρωτόκολλο το οποίο παρέχει διανομή πιστοποιημένου κλειδιού σε 4 μόνο μηνύματα Μηνύματα ίδια με αυτά του Kerberos αλλά χωρίς την απαίτηση timestamps Δεν παρέχει πιστοποίηση ταυτότητας ή επαλήθευση κλειδιού

35 35 Πρωτόκολλο Otway-Rees ΠΕΡΙΛΗΨΗ: Ο Β αλληλεπιδρά με έναν έμπιστο T και με ένα μέλος Α. ΑΠΟΤΕΛΕΣΜΑ: εγκαθίδρυση ανανεωμένου μυστικού κλειδιού K μεταξύ A και B. 1. Σημείωση. E είναι ένα συμμετρικός αλγόριθμος κρυπτογράφησης. k είναι ένα session key το οποίο ο T παράγει για να μοιραστούν οι A και B. N A και N B είναι εφάπαξ επιλεγμένα από τον A και τον B, αντίστοιχα, ώστε να επιτρέψουν την επαλήθευση της ανανέωσης του κλειδιού (thereby detecting replay). Το M είναι ένα δεύτερο εφάπαξ επιλεγμένο από τον A που εξυπηρετεί σαν identifier δοσοληψίας. 2. One-time setup. Ο T μοιράζεται τα συμμετρικά κλειδιά K AT και K BT με τους A, B, αντίστοιχα. 3. Μηνύματα Πρωτοκόλλου. A → B : M,A, B, Ε K AT (N A, M, A, B) (1) B → T : M,A, B,E K AT (N A, M, A, B), E K BT (N B, M, A, B) (2) B ← T : E K AT (N A, k), E K BT (N B, k) (3) A ← B : E K AT (N A, k) (4)

36 36 Πρωτόκολλο Otway-Rees 4. Ενέργειες Πρωτοκόλλου. (a) ο Α κρυπτογραφεί δεδομένα για τον server που περιέχουν δύο εφάπαξ,N A και M, και τις ταυτότητες του εαυτού του και του B στον οποίο επιθυμεί να διανείμει ο server ένα κλειδί. Ο A στέλνει αυτά μαζί με κάποιο plaintext στον B σαν μήνυμα (1). (b) ο B δημιουργεί το δικό του N B και ένα ανάλογο κρυπτογραφημένο μήνυμα και το στέλνει μαζί με το μήνυμα του Α στον Τ σαν μήνυμα (2). (c) ο T χρησιμοποιεί το cleartext identifiers στο μήνυμα (2) για να ανακτήσει το K AT και το K BT, μετά επαληθεύει ότι το cleartext (M A, B) ταιριάζει με αυτό που ανακτήθηκε από την αποκρυπτογράφηση και των δυο μερών του μηνύματος (2). Αν ταιριάζει,ο T εισάγει ένα νέο κλειδί k και τα αντίστοιχα εφάπαξ στα διαφορετικά μηνύματα κρυπτογραφημένα για τους A και B, και στέλνει και τα δυο στον Β σαν μήνυμα (3). (d) ο B αποκρυπτογραφεί το δεύτερο μέρος του μηνύματος (3), ελέγχει αν το N B ταιριάζει με αυτό του μηνύματος (2), και αν ναι στέλνει το πρώτο μέρος στον Α σαν μήνυμα (4). (e) ο A αποκρυπτογραφεί το μήνυμα (4) και ελέγχει αν το N A ταιριάζει με αυτό του μηνύματος (1).

37 37 Συμφωνία Κλειδιού βασισμένη σε Συμμετρικές Τεχνικές Ορισμός : Ένα Σύστημα Διανομής Κλειδιού (key distribution system – KDS) είναι μία μέθοδος δια μέσου της οποίας, κατά τη διάρκεια ενός σταδίου αρχικοποίησης, ένας έμπιστος server παράγει και διανέμει μυστικές τιμές δεδομένων (κομμάτια – pieces) σε χρήστες, έτσι ώστε κανένα ζευγάρι χρηστών να μπορεί να υπολογίσει στη συνέχεια ένα κοινό (shared) κλειδί άγνωστο σε όλους τους υπόλοιπους χρήστες (εκτός του server). Σε ένα τετριμμένο KDS ο έμπιστος server διαλέγει διακριτά κλειδιά για κάθε ζεύγος μεταξύ n χρηστών και με κάποιο ασφαλές μέσο μοιράζει αρχικά σε κάθε χρήστη n – 1 κλειδιά κατάλληλα ονοματισμένα. Αυτό προσφέρει άνευ όρων τέλεια ασφάλεια, όμως απαιτεί μεγάλη μνήμη!

38 38 Συμφωνία Κλειδιού βασισμένη σε Συμμετρικές Τεχνικές Ορισμός : Ένα KDS ονομάζεται j-ασφαλές εάν, δεδομένου ενός συγκεκριμένου ζεύγους χρηστών, οποιοσδήποτε συνδυασμός συμμαχίας j το πλήθος άλλων χρηστών (ξένων προς το ζευγάρι) βάζοντας μαζί τα κομμάτια τους, να μην μπορεί να υπολογίσει κατά καλλίτερο τρόπο το κοινό κλειδί του ζευγαριού απ’ ό,τι ένας χρήστης που μαντεύει το κλειδί χωρίς να έχει στην κατοχή του κομμάτια. Συνεπώς ένα j-ασφαλές KDS είναι άνευ όρων ασφαλές έναντι συμμαχιών μεγέθους j ή μικρότερου. Γεγονός: (όριο του Blom για KDS) Εάν ένα οποιοδήποτε j-ασφαλές KDS παρέχει m-bit κατά ζεύγη session keys τα κρυφά δεδομένα τα οποία αποθηκεύει ο κάθε χρήστης πρέπει να είναι το λιγότερο m.(j+1) bits. Ένα τετριμμένο KDS είναι συνεπώς βέλτιστο σε σχέση με τον αριθμό των bits των μυστικών κλειδιών που αποθηκεύονται, υποθέτοντας τη συμμαχία όλων των υπόλοιπων μελών εκτός του ζεύγους. Στην περίπτωση αυτή το κατώτατο όριο του Blom ισχύει για j = n-2.

39 39 Σύστημα Προδιανομής Κλειδιού του Blom Είναι ένα KDS που μπορεί να χρησιμοποιηθεί για να ικανοποιήσει το κάτω όριο του θεωρήματος για τιμές j < n – 2. Κάθε μέλος χρειάζεται μόνο ένα δείκτη i με 1 ≤ i ≤ n ο οποίος προσδιορίζει μοναδικά το μέλος εκείνο με το οποίο πρόκειται να σχηματίσει το κοινό κλειδί. Σε κάθε χρήστη εκχωρείται ένα μυστικό διάνυσμα ως βάση κλειδιών από το οποίο μπορεί μετά να υπολογίσει ένα ανά ζεύγη secret (παραγόμενο κλειδί) με κάθε άλλο χρήστη. Το σχήμα του Blom βασίζεται σε (n, k) κώδικες μέγιστης απόστασης διαχωρισμού (MDS) και είναι j-ασφαλές για j ≤ k – 1 και συνεπώς με βάση το Γεγονός είναι βέλτιστος σε ό,τι αφορά το απαιτούμενο αρχικό υλικό κλειδιών. Οικονομία στη μνήμη γίνεται εάν k < n. Όμως τα κλειδιά δεν είναι στατιστικά ανεξάρτητα

40 40 Σύστημα Προδιανομής Συμμετρικού Κλειδιού του Blom ΠΕΡΙΛΗΨΗ: σε κάθε έναν από τους n χρήστες δίνεται αρχικό υλικό κλειδιών και δημόσια δεδομένα. ΑΠΟΤΕΛΕΣΜΑ: κάθε ζεύγος χρηστών U i, U j μπορεί να υπολογίσει ένα m-bit ανά ζεύγη μυστικό κλειδί K i,j. 1. Ένας k x n πίνακας γεννήτορας (generator matrix) G ενός (n, k) MDS κώδικα πάνω σε ένα πεπερασμένου πεδίου F q τάξης q γίνεται γνωστός σε όλους τους n χρήστες του συστήματος. 2. Ένα έμπιστο μέλος T δημιουργεί ένα τυχαίο μυστικό συμμετρικό πίνακα k x k D πάνω στο F q. 3. Ο T δίνει σε κάθε χρήστη U i το μυστικό κλειδί S i, που ορίζεται ως η γραμμή i του n x k πίνακα S = (DG) T (ο S i είναι μια k-άδα στο F q με k lοg(q) bits, που επιτρέπει στον U i να υπολογίζει οποιοδήποτε στοιχείο στη γραμμή i του (DG) T G). 4. Οι χρήστες U i και U j υπολογίζουν το κοινό μυστικό K i,j = K j,i με μήκος bit m = lοg(q) ως εξής: χρησιμοποιώντας τον S i και τη στήλη j του G, ο U i υπολογίζει τo (i, j) στοιχείο του n x n συμμετρικού πίνακα K = (DG) T G. Χρησιμοποιώντας τον S j και τη στήλη i του G, ο Uj υπολογίζει με παρόμοιο τρόπο το (j, i) στοιχείο (που είναι ίσο με το (i, j) στοιχείο αφού ο K είναι συμμετρικός).

41 41 Σύστημα Προδιανομής Συμμετρικού Κλειδιού του Blom Υπόβαθρο για (n, k) MDS κώδικες (Maximum Distance Separable - Μέγιστης Απόστασης Διαχωρισμού) Έστω G=[I k A] ένας k x n πίνακας όπου κάθε σειρά του είναι είναι μια n-άδα στο F q, με q πρώτο ή δύναμη πρώτου αριθμού. Ι k είναι ο k x k μοναδιαίος πίνακας. Το σύνολο των n-άδων που παράγονται με γραμμικούς συνδιασμούς (στο F q ) των σειρών του G είναι ο γραμμικός κώδικας C. Κάθε μια από τις q k n-άδες είναι μια κωδική λέξη και το C ισούται με C = {c: c = mG, m = (m 1 m 2 …m k ), m i  F q } O G είναι ο γεννήτορας πίνακας για τον γραμμικό (n, k) κώδικα C. Η απόσταση μεταξύ δύο κωδικών λέξεων c και c’ είναι ο αριθμός των στοιχείων στα οποία διαφέρουν. Η απόσταση d του κώδικα είναι η ελάχιστη τέτοια απόσταση μεταξύ όλων των ζευγών κωδικών λέξεων. Ένας κώδικας με απόσταση d μπορεί να διορθώσει e =  (d – 1 ) /2  λάθη. Για γραμμικούς κώδικες ισχύει d  n – k + 1 (όριο Singleton). Κώδικες με όριο d = n – k + 1 έχουν την μεγαλύτερη δυνατή απόσταση για δεδομένα n και k και καλούνται κώδικες μέγιστης απόστασης διαχωρισμού.

42 42 Διανομή κλειδιού με χρήση αλγορίθμου Δημοσίου κλειδιού Αποστολέας A Παραλήπτης B 2. Κρυπτογράφηση Του κλειδιού με το Δημόσιο Κλειδί του B 4. Αποκρυπτογράφηση του συμμετρικού κλειδιού, με χρήση του κλειδιού του B 3. Αποστολή του συμμετρικού κλειδιού (κρυπτογραφημένου) 5. Χρήση του συμμετρικού κλειδιού για κρυπτογράφηση του μηνύματος 1.Δημιουργία συμμετρικού κλεδιού

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

44 44 Διανομή κλειδιού βασισμένη σε κρυπτογράφηση δημόσιου κλειδιού (Public Key, PK) Οι διασφαλίσεις πιστοποίησης μπορούν να χορηγηθούν με ή χωρίς τη χρήση ψηφιακών υπογραφών ως εξής : 1.Πιστοποίηση ταυτότητας χρήστη μέσω αποκωδικοποίησης δημόσιου κλειδιού Ο προτεινόμενος αποδέκτης πιστοποιείται επιστρέφοντας κάποια τιμή που μεταβάλλεται με το χρόνο που ο ίδιος μπορεί να παράγει ή να ανακτήσει. Αυτό μπορεί να επιστρέψει πιστοποίηση τόσο της ταυτότητας χρήστη όσο και του μεταφερόμενου κλειδιού. 2. Ακεραιότητα δεδομένων μέσω ψηφιακών υπογραφών Η κρυπτογράφηση του δημόσιου κλειδιού συνδυάζεται με μια ψηφιακή υπογραφή, εξασφαλίζοντας διανομή κλειδιού με διασφαλίσεις ταυτότητας πηγής (source identity )

45 45  Ιδιότητες ↓ Πρωτόκολλο Απαιτούνται υπογραφές πιστοποίηση ταυτότητας χρήστη Αριθμός μηνυμάτων Βασική PK κρυπτογράφηση(1-pass) Needham-Schroeder PK Όχι Αμοιβαία 1313 Κρυπτογράφηση υπογεγραμμένων κλειδιών Ξεχωριστή υπογραφή, κρυπτογράφηση Υπογραφή κρυπτογραφημένων κλειδιών X.509(2-pass) – timestamps X.509(3-pass) – random #’s Ναι μόνο η πηγή των data Αμοιβαία Beller-Yacobi (4-pass) Beller-Yacobi (2-pass) Ναι Αμοιβαία Μονομερής 4242 Πρωτόκολλα διανομής κλειδιού βασισμένα σε PK κρυπτογραφία

46 46 Διανομή κλειδιού χρησιμοποιώντας PK κρυπτογράφηση χωρίς υπογραφές Διανομή κλειδιού ενός βήματος με κρυπτογράφηση δημόσιου κλειδιού Κατάλληλη για μονόδρομες επικοινωνίες, όπως είναι το & fax Ο δημιουργός Α κατέχει a priori ένα αυθεντικό αντίτυπο του δημόσιου κλειδιού κρυπτογράφησης του προτεινόμενου αποδέκτη Β. Χρησιμοποιώντας το δημόσιο κλειδί κρυπτογράφησης του Β, ο Α κρυπτογραφεί ένα τυχαίως παραγόμενο κλειδί k, και στέλνει το αποτέλεσμα P B (k) στον Β (P B μπορεί να είναι μια συνάρτηση δημόσιας κρυπτογράφησης, όπως του RSA, Rabin, ElGamal, etc). O δημιουργός Α δεν λαμβάνει πιστοποίηση ταυτότητας από τον αποδέκτη Β αλλά βεβαιώνεται για έμμεση πιστοποίηση κλειδιού – κανένας εκτός από τον Β δε θα μπορούσε να ανακτήσει το κλειδί. Από την άλλη ο Β δεν έχει καμία διασφάλιση όσον αφορά την πηγή του κλειδιού, το οποίο παραμένει αληθές ακόμα και στην περίπτωση που ο Α στέλνει το μήνυμα Α -> Β : P B (k,Α) !

47 47 Πρωτόκολλα που συνδυάζουν PK κρυπτογράφηση χωρίς υπογραφές Πρωτόκολλο δημόσιου κλειδιού Needham-Schroeder Παρέχει αμοιβαία πιστοποίηση ταυτότητας χρήστη και αμοιβαία διανομή κλειδιού(ο Α και ο Β μεταβιβάζουν ένα συμμετρικό κλειδί ο καθένας στον άλλο). Τα μεταφερόμενα κλειδιά μπορεί να εξυπηρετούν και τους δυο ειδικά για πιστοποίηση ταυτότητας και κρυφού κλειδιού για περαιτέρω χρήση. Ο συνδυασμός των παραγόμενων κοινών κλειδιών επιτρέπει τον υπολογισμό ενός κοινού κλειδιού στο οποίο και τα δυο μέλη συμβάλουν.

48 48 ΣΥΝΟΨΗ: Ο Α και ο Β ανταλλάσσουν 3 μηνύματα. ΑΠΟΤΕΛΕΣΜΑ: πιστοποίηση ταυτότητας χρήστη, πιστοποίηση κλειδιού και διανομή κλειδιού (όλα αμοιβαία) 1. Συμβολισμοί:Το P X (Y) δηλώνει κρυπτογράφηση δημόσιου κλειδιού (e.g. RSA) των δεδομένων Υ χρησιμοποιώντας το δημόσιο κλειδί του μέλους Χ. Το Ρ Χ (Υ 1,Υ 2 ) δηλώνει κρυπτογράφηση της αλληλουχίας του Υ 1 και Υ 2. k 1,k 2 είναι κρυφά συμμετρικά κλειδιά συνόδου επιλεγμένα από τους Α, Β αντίστοιχα. 2.One-time setup Θεωρούμε ότι οι Α, Β κατέχουν ο καθένας το αυθεντικό δημόσιο κλειδί του άλλου. 3.Μηνύματα πρωτοκόλλου Α -> Β : Ρ Β (k 1,Α) (1) Α <- Β : Ρ A (k 1,k 2 ) (2) Α -> Β : Ρ Β (k 2 ) (3) 4.Ενέργειες πρωτοκόλλου (α) Ο Α στέλνει ένα μήνυμα στον Β (1) (β) Ο Β ανακτά το k1 λαμβάνοντας το μήνυμα (1), και επιστρέφει στον Α το μήνυμα (2) (γ) Όταν αποκρυπτογραφήσει το μήνυμα (2) ο Α ελέγχει αν το ανακτημένο κλειδί k 1 συμφωνεί με αυτό που στάλθηκε στο μήνυμα (1). Ο Α στέλνει στον Β το μήνυμα (3). (δ) Όταν αποκρυπτογραφήσει το μήνυμα (3) ο Β ελέγχει αν το ανακτημένο κλειδί k 2 συμφωνεί με αυτό που στάλθηκε στο μήνυμα (2). Πρωτόκολλο δημόσιου κλειδιού Needham- Schroeder

49 49 Πρωτόκολλα που συνδυάζουν PK κρυπτογράφηση και υπογραφές Τα πρωτόκολλα διανομής κλειδιού που συνδυάζουν κρυπτογράφηση δημόσιου κλειδιού και υπογραφές περιλαμβάνουν: 1. αυτά που υπογράφουν το κλειδί και μετά κρυπτογραφούν δημόσια το υπογεγραμμένο κλειδί. 2. αυτά που υπογράφουν το κλειδί και ξεχωριστά κρυπτογραφούν το (μη υπογεγραμμένο ) κλειδί. 3. αυτά που κρυπτογραφούν δημόσια το κλειδί ναι μετά υπογράφουν το κρυπτογραφημένο κλειδί 4. αυτά που χρησιμοποιούν συμμετρική κρυπτογράφηση επιπρόσθετα της κρυπτογράφησης δημόσιου κλειδιού και των υπογραφών.

50 50 1. Κρυπτογραφώντας υπογεγραμμένα κλειδιά Μια επιλογή για το συνδυασμό υπογραφών και κρυπτογράφησης δημοσίου κλειδιού είναι να κρυπτογραφήσεις υπογεγραμμένα κλειδιά : Α -> Β : Ρ Β (k, t A *, S A (B, k, t A * )) Ο αστερίσκος δηλώνει ότι το timestamp t A του Α είναι προαιρετικό. Ο αναγνωριστής (identifier) Β μέσα στην εμβέλεια της υπογραφής εμποδίζει τον Β από το να στείλει το υπογεγραμμένο κλειδί σε κάποιο άλλο μέλος και να υποδυθεί τον Α. Ένα μειονέκτημα αυτής της μεθόδου έναντι της εναλλακτικής «υπογράφοντας κρυπτογραφημένα κλειδιά» είναι ότι εδώ τα δεδομένα για να κρυπτογραφηθούν με δημόσιο κλειδί είναι μεγαλύτερα υπονοώντας την πιθανή ανάγκη για ρύθμιση του block size του σχήματος κρυπτογράφησης με δημόσιο κλειδί, ή τη χρήση τεχνικών όπως το cipher- block-chaining. Στην περίπτωση των σχημάτων υπογραφών με ανάκτηση του μηνύματος (π.χ. RSA) το παραπάνω μπορεί να απλοποιηθεί στο : Α -> Β : Ρ Β ( S A (B, k, t A * ))

51 51 2. Κρυπτογραφώντας και υπογράφοντας χωριστά παραλλαγή της παραπάνω επιλογής είναι να : υπογράφεις το κλειδί και να κρυπτογραφείς το κλειδί αλλά όχι να κρυπτογραφείς την ίδια την υπογραφή. Αυτό είναι αποδεκτό μόνο αν το σχήμα υπογραφής είναι τέτοιο ώστε καμιά πληροφορία που αφορά τα δεδομένα ανοικτού κειμένου να μπορεί να προκύψουν από την ίδια την υπογραφή των δεδομένων (π.χ., όταν η υπογραφή περιλαμβάνει και αρχικό hashing). Αυτό είναι κρίσιμο γιατί, γενικά, τα δεδομένα μπορεί να ανακτηθούν από μια υπογραφή σε αυτά (π.χ., RSA χωρίς hashing). Α -> Β : Ρ Β (k, t A *), S A (B, k, t A * ) Αν το κλειδί k χρησιμοποιηθεί μόνο για να κρυπτογραφήσει ένα αρχείο δεδομένων y, τότε η υπογραφή S A μπορεί να είναι πάνω στο y αντί του k. Τότε το κρυπτογραφημένο αρχείο μπορεί να μεταφερθεί μαζί με τις πληροφορίες εγκαθίδρυσης κλειδιού, οπότε πρώτα ανακτάται το y χρησιμοποιώντας το k για την αποκρυπτογράφηση του αρχείου και μετά επαληθεύεται η υπογραφή στο y.

52 52 3. Υπογράφοντας κρυπτογραφημένα κλειδιά (Ι) Σε αντίθεση με την κρυπτογράφηση υπογεγραμμένων κλειδιών, έχουμε την υπογραφή κρυπτογραφημένων κλειδιών : Α -> Β : t A *, Ρ Β (Α,k), S A (B, t A *, Ρ Β (Α,k)) Η παράμετρος Α μέσα στην εμβέλεια της κρυπτογράφησης δημόσιου κλειδιού εμποδίζει την απογύμνωση υπογραφής (signature stripping )- η απλή υπογραφή ενός δημοσίως κρυπτογραφημένου κλειδιού, δηλ. S A ( Ρ Β (k)) είναι ευάλωτη σε έναν τρίτο C να ανακτήσει το Ρ Β (k) και μετά να το υπογράψει με το δικό του κλειδί και συνεπώς να μην έχουμε πιστοποίηση του Α στον Β. Επιπλέον, ο μηχανισμός κρυπτογράφησης πρέπει να διαβεβαιώνει ότι ένας εχθρός C χωρίς πρόσβαση στο κλειδί k δε μπορεί να αλλάξει το Ρ Β (Α,k) σε Ρ Β (C,k). Το συνδυασμένο μήκος των παραμέτρων A και k δεν πρέπει να υπερβαίνουν το μήκος του block του σχήματος κρυπτογράφησης δημόσιου κλειδιού, ώστε να περιοριστεί ο υπολογισμός σε ένα block κρυπτογράφησης.

53 53 Αμοιβαία πιστοποίηση ταυτότητας χρήστη χρησιμοποιώντας timestamps. Μπορεί να χρησιμοποιηθεί για εγκαθίδρυση κλειδιού σε one- pass πρωτόκολλα, αν και αυτό δεν παρέχει πιστοποίηση ταυτότητας χρήστη του παραλήπτη στον δημιουργό-αποστολέα. Για αμοιβαία πιστοποίηση ταυτότητας χρήστη απαιτούνται δύο μηνύματα της μορφής αυτής (οπότε έχουμε το Χ.509 πρωτόκολλο) Αμοιβαία πιστοποίηση ταυτότητας χρήστη χρησιμοποιώντας challenge response. Το 2-pass πρωτόκολλο διανομής κλειδιού που αναφέρθηκε παραπάνω απαιτεί τη χρήση timestamps και σε αυτήν την περίπτωση η ασφάλεια βασίζεται στην υπόθεση για ασφαλή, συγχρονισμένα ρολόγια. Αυτή η απαίτηση μπορεί να εξαλειφθεί χρησιμοποιώντας 3-pass πρωτόκολλο με τυχαίους αριθμούς για challenge response. A -> B : r A A <- B : r B, P A (B,k 1 ), S B (r B, r A,A, P A (B,k 1 )) A -> B : P B (A,k 2 ), S A (r A, r B,B, P B (A,k 2 )) Οι Α και Β μπορούν να υπολογίσουν ένα κοινό κλειδί k ως συνάρτηση των k 1 και k 2. Εναλλακτικά, ένα εκ των PA(B,k 1 ) και PB(A,k 2 ) μπορούν να παραληφθούν από το δεύτερο ή το τρίτο μήνυμα. 3. Υπογράφοντας κρυπτογραφημένα κλειδιά (ΙΙ)

54 54 4. X.509 strong authentication protocols Διανομή δημόσιου κλειδιού υπογράφοντας κρυπτογραφημένα κλειδιά. προσδιορίζει και “strong two-way” και “strong three-way” πρωτόκολλα πιστοποίησης, παρέχοντας αμοιβαία πιστοποίηση ταυτότητας χρήστη με προαιρετική διανομή κλειδιού. το strong τα διαφοροποιεί από πιο απλές μεθόδους που βασίζονται σε κωδικούς και τα two και three-way αναφέρονται σε πρωτόκολλα με δυο και τρεις ανταλλαγές μηνυμάτων, χρησιμοποιώντας timestamps και challenge- response βασισμένο σε τυχαίους αριθμούς, αντίστοιχα. Και τα δυο πρωτόκολλα σχεδιάστηκαν για να παρέχουν τις παρακάτω διασφαλίσεις στον αποκρινόμενο B και αντίστροφες βεβαιώσεις στον Α. (Το token αναφέρεται σε κρυπτογραφικά προστατευμένα δεδομένα ) 1. Η ταυτότητα του Α και ότι το token που έλαβε ο Β φτιάχτηκε από τον Α 2. ότι το token που έλαβε ο Β προορίζονταν συγκεκριμένα για τον Β 3. ότι το token που έλαβε ο Β έχει “freshness” (δεν έχει ξαναχρησιμοποιηθεί και έχει αρχικοποιηθεί εντός ενός αποδεκτά σύντομου χρονικού διαστήματος) 4. η αμοιβαία εχεμύθεια του μεταφερόμενου κλειδιού

55 55 i. Πρωτόκολλο X.509 strong two-way authentication (two-pass) ΣΥΝΟΨΗ: Ο Α στέλνει στον Β ένα μήνυμα και ο Β απαντάει με ένα μήνυμα ΑΠΟΤΕΛΕΣΜΑ:αμοιβαία πιστοποίηση ταυτότητας χρήστη, και διανομή κλειδιού με πιστοποίηση κλειδιού Συμβολισμοί: P X (y) δηλώνει το αποτέλεσμα της κρυπτογράφησης των δεδομένων y με το δημόσιο κλειδί του X S X (y) δηλώνει το αποτέλεσμα της υπογραφής των δεδομένων y με το ιδιωτικό κλειδί του X r A,r B είναι αριθμοί που δεν έχουν ξαναχρησιμοποιηθεί cert X είναι ένα πιστοποιητικό που δεσμεύει το μέλος X για ένα κλειδί κατάλληλο τόσο για κρυπτογράφηση όσο και για πιστοποίηση υπογραφής System setup: (α) Κάθε μέλος έχει το δικό του ζεύγος δημόσιου κλειδιού για υπογραφές και κρυπτογράφηση. (β) Ο Α πρέπει να αποκτήσει και να πιστοποιήσει το δημόσιο κλειδί κρυπτογράφησης του Β a priori (αυτό ίσως απαιτεί πρόσθετα μηνύματα). Μηνύματα πρωτοκόλλου(Ο αστερίσκος δηλώνει ότι το αντικείμενο είναι προαιρετικό) Έστω D A =(t A, r A, B, data1*,P B (k1)* ) και D B =(t B, r B, A, data2*,P A (k2)* ) A -> B : cert A, D A, S A (D A ) (1) A <- B : cert B, D B, S B (D B ) (2)

56 56 i. Πρωτόκολλο X.509 strong two-way authentication (two-pass) Ενέργειες πρωτοκόλλου (α) Ο Α λαμβάνει ένα timestamp tA που δείχνει ένα χρόνο λήξης, κατασκευάζει το rA, προαιρετικά παίρνει ένα συμμετρικό κλειδί k1 και στέλνει το μήνυμα (1) στον Β. (β) Ο Β επαληθεύει την αυθεντικότητα του certA, εξάγει το δημόσιο κλειδί υπογραφής του Α και επαληθεύει την υπογραφή του Α στο block δεδομένων DA.Μετά ελέγχει αν ο αναγνωριστής (identifier) στο μήνυμα (1) προσδιορίζει αυτόν σαν παραλήπτη, ότι το timestamp είναι έγκυρο, και ελέγχει ότι το rA δεν έχει ξαναχρησιμοποιηθεί. (γ) Αν όλοι οι έλεγχοι πετύχουν, ο Β δηλώνει την αυθεντικότητα του Α επιτυχή, αποκρυπτογραφεί το k1 χρησιμοποιώντας το ιδιωτικό του κλειδί αποκρυπτογράφησης και σώζει το κλειδί που διαμοιράζονται τώρα. Ο Β μετά λαμβάνει ένα timestamp tΒ, κατασκευάζει το rΒ, και στέλνει το μήνυμα (2) στον Α. (δ) Ο Α εκτελεί πράξεις ανάλογες με του Β. Αν όλοι οι έλεγχοι πετύχουν ο Α δηλώνει την αυθεντικότητα του Β επιτυχή, και σώζει το κλειδί k2 για επόμενη χρήση. Ο Α και ο Β μοιράζονται αμοιβαία τα μυστικά k1 και k2.

57 57 ii. Πρωτόκολλο X.509 strong three-way authentication (three-pass) ΣΥΝΟΨΗ: Ο Α και ο Β ανταλλάσσουν 3 μηνύματα ΑΠΟΤΕΛΕΣΜΑ: όπως και το πρωτόκολλο (i) χωρίς να απαιτούνται timestamps Το πρωτόκολλο διαφέρει από το πρωτόκολλο (i) στα εξής : 1. Τα timestamps t A και t Β μπορούν να αρχικοποιηθούν σε μηδέν και δε χρειάζεται να ελεγχθούν 2. Μόλις ο Α λάβει το (2) ελέγχει αν το r A ταιριάζει με αυτό στο μήνυμα (1) 3. Ένα τρίτο μήνυμα στέλνεται από τον Α στον Β : A -> B : (r Β, Β), S A (r B, B) (3) 4. Όταν λάβει το (3) ο Β επαληθεύει ότι η υπογραφή ταιριάζει με το απλό κείμενο που έχει λάβει, ότι ο identifier κειμένου Β είναι σωστός και ότι το κείμενο r Β που ελήφθη ταιριάζει με αυτό στο μήνυμα (2).

58 58 Υβριδικά πρωτόκολλα διανομής κλειδιού χρησιμοποιώντας την Ρ ublic Κ ey κρυπτογράφηση Πρωτόκολλο διανομής κλειδιού των Beller – Yacobi Χρησιμοποιεί συμμετρική κρυπτογράφηση μαζί με ΡΚ κρυπτογράφηση και ψηφιακές υπογραφές. Τέτοια πρωτόκολλα που χρησιμοποιούν τόσο συμμετρικές όσο και ασύμμετρες τεχνικές καλούνται υβριδικά πρωτόκολλα. παρέχει αμοιβαία πιστοποίηση ταυτότητας και έμμεση πιστοποίηση κλειδιού σχεδιάστηκε συγκεκριμένα για εφαρμογές όπου υπάρχει ανισορροπία υπολογιστικής ισχύος μεταξύ των δυο μελών, ο στόχος είναι να ελαχιστοποιηθούν οι υπολογιστικές απαιτήσεις του πιο ασθενούς μέλους η ταυτότητα των μελών παραμένει κρυφή από τους ωτακουστές ο Α (ο πιο αδύναμος) εξακριβώνει τον εαυτό του στον Β υπογράφοντας τυχαία πρόκληση m, ενώ ο Β εξακριβώνει τον εαυτό του στον Α αποδεικνύοντας την γνώση του κλειδιού Κ που μόνο ο Β θα μπορούσε να ανακτήσει.

59 59 Συμφωνία Κλειδιού βασισμένη σε μη Συμμετρικές Τεχνικές Πρωτόκολλα εγκαθίδρυσης κλειδιού βασισμένα σε συμφωνία εκθετικού κλειδιού (δηλ., διακριτού λογαρίθμου) Πρωτόκολλο Diffie-Hellman και σχετικά πρωτόκολλα συμφωνίας κλειδιού : 1. Συμφωνία κλειδιού Diffie-Hellman 2. Συμφωνία κλειδιού ElGamal σε ένα στάδιο 3. Πρωτόκολλο Συμφωνίας Κλειδιού δύο σταδίων ΜΤΙ 4. Πρωτόκολλο Σταθμού προς Σταθμό Station-to-Station protocol (STS)

60 60 1. Συμφωνία κλειδιού Diffie-Hellman Παρέσχε την πρώτη πρακτική λύση στο πρόβλημα διανομής κλειδιού επιτρέποντας σε δύο μέρη, που δεν έχουν συναντηθεί ποτέ ή δεν μοιράζονται υλικό κλειδιού, να εγκαθιδρύσουν ένα κοινό μυστικό ανταλλάσσοντας μηνύματα σε ένα ανοιχτό κανάλι. Η βασική έκδοση παρέχει προστασία από παθητικούς εχθρούς αλλά όχι από ενεργητικούς εχθρούς ικανούς να αναχαιτίσουν, να τροποποιήσουν ή να παρεμβάλλουν μηνύματα. Κανένα μέλος δεν έχει εγγύηση της ταυτότητας της πηγής του εισερχόμενου μηνύματος ή της ταυτότητας του μέλους που μπορεί να γνωρίζει το κλειδί του αποτελέσματος.

61 61 Πρωτόκολλο συμφωνίας κλειδιού Diffie-Hellman ΠΕΡΙΛΗΨΗ: οι A και B ανταλλάσσουν από ένα μήνυμα σε ένα ανοιχτό κανάλι. ΑΠΟΤΕΛΕΣΜΑ: ένα διαμοιραζόμενο μυστικό K γνωστό και στα δύο μέλη A και B. 1. One-time setup: Επιλέγονται και δημοσιοποιούνται ένας κατάλληλος πρώτος p και ένας generator α του Zp* με (2 ≤ α ≤ p - 2). 2. Μηνύματα του Πρωτοκόλλου. A → B : α x mod p (1) A ← B : α y mod p (2) 3. Ενέργειες του πρωτοκόλλου. Εκτελεί τα ακόλουθα βήματα κάθε φορά που απαιτείται ένα διαμοιραζόμενο κλειδί. (a) ο A επιλέγει ένα τυχαίο μυστικό x, 1 ≤ x ≤ p - 2, και στέλνει στον B το μήνυμα (1). (b) ο B επιλέγει ένα τυχαίο μυστικό y, 1 ≤ y ≤ p - 2, και στέλνει στον Α το μήνυμα (2). (c) ο B λαμβάνει το α x και υπολογίζει το κοινό κλειδί ως εξής: K = (α x ) y mod p. (d) ο Α λαμβάνει το α y και υπολογίζει το κοινό κλειδί ως εξής: K = (α y ) x mod p.

62 62 Diffie-Hellman μέθοδος (ι) A B 3. Υπολογισμός x’=α x mod p 3. Υπολογισμός y’=α y mod p 4. Ανταλλαγή x’, y’ χωρίς ασφάλεια

63 63 Diffie-Hellman μέθοδος (II) A B 5. Υπολογισμός κλειδιού= y’ x mod p =α xy mod p 5. Υπολογισμός κλειδιού= x’ y mod p =α xy mod p 6. Κρυπτογράφηση με το παραπάνω συμμετρικό κλειδί που υπολογίστηκε

64 64 Συμφωνία κλειδιού ElGamal σε ένα στάδιο Αποτελεί παραλλαγή του Diffie-Hellman πρωτοκόλλου η οποία παρέχει ένα πρωτόκολλο ενός περάσματος με μονομερή πιστοποίηση κλειδιού (του προτεινόμενου παραλήπτη στον γεννήτορα) παρέχοντας το δημόσιο κλειδί του παραλήπτη ο οποίος είναι γνωστός στον γεννήτορα a priori.

65 65 2. Πρωτόκολλο Συμφωνίας Κλειδιού ElGamal (ημί- πιστοποιημένο Diffie-Hellman) ΠΕΡΙΛΗΨΗ: ο A στέλνει στον B ένα μοναδικό μήνυμα επιτρέποντας συμφωνία κλειδιού με ένα πέρασμα. ΑΠΟΤΕΛΕΣΜΑ: ένα διαμοιραζόμενο μυστικό K γνωστό και στα δύο μέλη A και B. 1. One-time setup (δημιουργία κλειδιού και δημοσιοποίηση). Κάθε χρήστης Β εκτελεί τα ακόλουθα : Παίρνει ένα κατάλληλο πρώτο p και ένα γεννήτορα α του Zp*. Επιλέγει ένα τυχαίο ακέραιο b, 1 ≤ b ≤ p - 2, και υπολογίζει το α b mod p. Ο B δημοσιοποιεί το δημόσιο κλειδί του (p, α, α b ), κρατώντας το ιδιωτικό κλειδί b μυστικό. 2. Μηνύματα του πρωτοκόλλου. A → B : α x mod p (1) 3. Ενέργειες του πρωτοκόλλου. Εκτελεί τα ακόλουθα βήματα κάθε φορά που απαιτείται ένα διαμοιραζόμενο κλειδί. (a) Ο A παίρνει ένα πιστοποιημένο αντίγραφο του δημόσιου κλειδιού του Β (p, α, α b ). Ο A επιλέγει ένα τυχαίο ακέραιο x, 1 ≤ x ≤ p - 2, και στέλνει στον B το μήνυμα (1). Ο A υπολογίζει το κλειδί ως εξής K = (α b ) x mod p. (b) Ο B υπολογίζει το ίδιο κλειδί με τη λήψη του μηνύματος (1) ως εξής : K = (α x ) b mod p.

66 66 Πρωτόκολλο Συμφωνίας Κλειδιού δύο περασμάτων ΜΤΙ Παραλλαγή του Diffie-Hellman πρωτοκόλλου με δύο μηνύματα (χωρίς κανένα να απαιτεί υπογραφές), session keys μεταβλητού χρόνου με έμμεση πιστοποίηση κλειδιού ενάντια σε παθητικές επιθέσεις. Παρόμοιο με το πρωτόκολλο συμφωνίας κλειδιού ElGamal Δεν παρέχει πιστοποίηση ταυτότητας και επαλήθευση κλειδιού Παρόλο που είναι κατάλληλο για εφαρμογές οπού είναι πιθανές μόνο παθητικές επιθέσεις το πρωτόκολλο είναι ευαίσθητο σε ισχυρές ενεργητικές επιθέσεις.

67 67 3. Πρωτόκολλο Συμφωνίας Κλειδιού MTI/A0 ΠΕΡΙΛΗΨΗ: συμφωνία κλειδιού Diffie-Hellman δύο περασμάτων ασφαλή ενάντια σε παθητικές επιθέσεις. ΑΠΟΤΕΛΕΣΜΑ: ένα κοινό κλειδί K γνωστό και στα δύο μέλη Α και B. 1. One-time setup. Επιλογή και δημοσιοποίηση (με εγγύηση πιστοποίησης) ένός κατάλληλου πρώτου p του συστήματος και ένός γεννήτορα α του Zp*, με 2 ≤ α ≤ p - 2. Ο A επιλέγει ως ένα μακροπρόθεσμο ιδιωτικό κλειδί ένα τυχαίο ακέραιο a, 1 ≤ a ≤ p-2, και υπολογίζει ένα μακροπρόθεσμο δημόσιο κλειδί z A = α a mod p. (Ο B έχει ανάλογα κλειδιά b, z B.) Οι A και B έχουν πρόσβαση σε πιστοποιημένα αντίγραφα των μεταξύ τους μακροπρόθεσμων δημόσιων κλειδιών. 2. Μηνύματα του πρωτοκόλλου. A → B : α x mod p (1) A ← B : α y mod p (2) 3. Ενέργειες πρωτοκόλλου. Εκτελεί τα ακόλουθα βήματα κάθε φορά που απαιτείται ένα κοινό κλειδί. (a) ο A επιλέγει ένα τυχαίο μυστικό x, 1 ≤ x ≤ p - 2, και στέλνει στον B το μήνυμα (1). (b) ο B επιλέγει ένα τυχαίο μυστικό y, 1 ≤ y ≤ p - 2, και στέλνει στον Α το μήνυμα (2). (c) ο A υπολογίζει το κλειδί k = (α y ) a z B x mod p. (d) ο B υπολογίζει το κλειδί k = (α x ) b z A y mod p. και έτσι τα δύο μέλη τώρα μοιράζονται το κλειδί k = α bx+ay mod p.)

68 68 Πρωτόκολλο Σταθμού προς Σταθμό Station-to-Station protocol (STS) Παραλλαγή του βασικού Diffie-Hellman πρωτοκόλλου σε τρία στάδια Επιτρέπει την εγκαθίδρυση ενός διαμοιραζόμενου μυστικού κλειδιού μεταξύ δύο μελών με αμοιβαία πιστοποίηση ταυτότητας και έμμεση πιστοποίηση κλειδιού Επίσης διευκολύνει την ανωνυμία (οι ταυτότητες των Α και Β προστατεύονται από ωτακουστές) Χρησιμοποιεί ψηφιακές υπογραφές Ειδική περίπτωση με RSA υπογραφές

69 69 Πρωτόκολλο Σταθμού προς Σταθμό Station-to-Station protocol (STS) ΠΕΡΙΛΗΨΗ: τα μέλη A και B ανταλλάσσουν 3 μηνύματα. ΑΠΟΤΕΛΕΣΜΑ: συμφωνία κλειδιού, αμοιβαία πιστοποίηση ταυτότητας, άμεση πιστοποίηση κλειδιού. 1. Σημείωση. Το E είναι ένας συμμετρικός αλγόριθμος κρυπτογράφησης. S A (m) δηλώνει την υπογραφή του A στο m, που ορίζεται ως: S A (m) = (H(m)) d A mod n A,, δηλ., RSA προηγούμενο από μια hash συνάρτηση Η με H(m) < n A 2. One-time setup (ορισμός και δημοσιοποίηση των παραμέτρων του συστήματος). (a) Επιλέγει και δημοσιοποιεί ένα κατάλληλο πρώτο συστήματος p και ένα γεννήτορα α του Zp*, 2 ≤ α ≤ p - 2. (Για επιπρόσθετη ασφάλεια κάθε μέλος διαθέτει τις δικές του μοναδικές παραμέτρους ως μέρος του δημοσίου κλειδιού του.) (b) Κάθε χρήστης A επιλέγει RSA δημόσια και ιδιωτικά κλειδιά υπογραφής (e A, n A ) και d A, αντίστοιχα (ο B έχει ανάλογα κλειδιά). Υποθέτουμε ότι κάθε μέλος έχει πρόσβαση σε πιστοποιημένο αντίγραφο στο κλειδί του άλλου (εάν όχι, η πιστοποίηση μπορεί να συμπεριληφθεί στα υπάρχοντα μηνύματα (2) και (3)). 3. Μηνύματα του πρωτοκόλλου. A → B : α x mod p (1) A ← B : α y mod p, E k (S B (α y, α x )) (2) A → B : E k (S A (α y, α x )) (3)

70 70 Πρωτόκολλο Σταθμού προς Σταθμό Station-to-Station protocol (STS) 4. Ενέργειες του πρωτοκόλλου. Εκτελεί τα ακόλουθα βήματα κάθε φορά που απαιτείται ένα διαμοιραζόμενο κλειδί. Το πρωτόκολλο αυτό εγκαταλείπεται αμέσως όταν μία υπογραφή αποτυγχάνει. (a) ο A παράγει έναν τυχαίο μυστικό x, 1 ≤ x ≤ p - 2, και στέλνει στον Β το μήνυμα (1). (b) ο B παράγει έναν τυχαίο μυστικό y, 1 ≤ y ≤ p - 2, και υπολογίζει το κοινό κλειδί k = (α x ) y mod p. Ο B υπογράφει την αλληλουχία των δύο εκθετών με την σειρά του μηνύματος (2), την κρυπτογραφεί με το κλειδί που υπολογίστηκε, και στέλνει στον A το μήνυμα (2). (c) ο A υπολογίζει το κοινό κλειδί k = (α y ) x mod p, αποκρυπτογραφεί τα κρυπτογραφημένα δεδομένα, και χρησιμοποιεί το δημόσιο κλειδί του B για να επαληθεύσει την ληφθείσα τιμή ως την υπογραφή πάνω στο hash του ανοικτού εκθέτη που ελήφθη και του εκθέτη που εστάλη στο μήνυμα (1). Μετά την επιτυχή επαλήθευση, ο A αποδέχεται ότι το k μοιράζεται πραγματικά με τον B, και στέλνει στον B ένα ανάλογο μήνυμα (3). (d) ο B παρομοίως αποκρυπτογραφεί το ληφθέν μήνυμα (3) και επαληθεύει την υπογραφή του A μέσα από αυτό. Αν είναι επιτυχής ο B αποδέχεται ότι το k μοιράζεται πραγματικά με τον Α.

71 71 Κρυφός διαμοιρασμός (secret sharing) πρωτόκολλα πολλών ατόμων σχετιζόμενα με εγκαθίδρυση κλειδιού αρχικό κίνητρο : για να διαφυλαχθούν τα κρυπτογραφικά κλειδιά από απώλειες κατασκευάζουμε backup αντίγραφα αλλά όσο μεγαλύτερος αριθμός αντιγράφων κατασκευάζεται, τόσο μεγαλύτερος κίνδυνος ασφάλειας υπάρχει, ενώ όσο μικρότερος αριθμός αντιγράφων κατασκευάζεται, τόσο μεγαλύτερος είναι ο κίνδυνος να χαθούν όλα ιδέα : αρχίζει με ένα μυστικό που διαιρείται σε κομμάτια που καλούνται shares τα οποία διανέμονται μεταξύ των χρηστών έτσι ώστε τα shares συγκεκριμένων υποσυνόλων να μπορούν να ανασυγκροτήσουν το αρχικό μυστικό. χρησιμεύσει σαν διαμοιραζόμενο σχήμα ελέγχου αν τα shares από δύο ή περισσότερους χρήστες απαιτούνται για να πραγματοποιηθεί μια κρίσιμη ενέργεια.

72 72 Απλά σχήματα διαμοιρασμένου ελέγχου (i) Διπλός έλεγχος με modular πρόσθεση S είναι ένας μυστικός αριθμός που τον ξέρει μόνο ένας έμπιστος Τ Ο Τ δημιουργεί ένα τυχαίο αριθμό 0  S 1  m-1 Δίνει τις τιμές S 1 και S-S 1 mod m σε δύο μέλη Α και Β, αντίστοιχα. Ο Α και ο Β εισάγουν χωριστά τις τιμές τους στη διάταξη η οποία τις αθροίζει modulo m για να ανακτήσει το S. Αν ο Α και ο Β είναι εμπιστοσύνης ότι δε θα συνωμοτήσουν τότε κανένας από αυτούς δεν έχει καμιά πληροφορία για το S. Είναι παράδειγμα ενός split-knowledge σχήματος, η γνώση του μυστικού S μοιράζεται μεταξύ δυο ατόμων. Οποιαδήποτε πράξη που απαιτεί το S λέγεται dual control ­–χρειάζονται δυο άνθρωποι για να την προκαλέσουν.

73 73 Απλά σχήματα διαμοιρασμένου ελέγχου (ii) Ομόφωνος έλεγχος συμφωνίας με modular πρόσθεση Γενίκευση του dual control σχήματος ώστε το μυστικό S να μοιράζεται μεταξύ t χρηστών και χρειάζονται όλοι για να ανακτηθεί το S. Ο Τ δημιουργεί t-1 ανεξάρτητους τυχαίους αριθμούς S i με 0  S i  m-1, 1  i  t-1. Τα μέλη Ρ 1 ως Ρ t-1 παίρνουν τα S i ενώ ο Ρ t παίρνει το άθροισμα των Si Το μυστικό ανακτάται ως το άθροισμα των Si mod m Τόσο εδώ όσο και στο dual control οι modulo m πράξεις μπορούν να αντικατασταθούν από XOR, χρησιμοποιώντας τιμές S και S i καθορισμένου μήκους bits.

74 74 Σχήματα κατωφλίου Ορισμός : Ένα (t, n) σχήμα κατωφλίου (t  n) είναι μια μέθοδος με την οποία ένα έμπιστο μέλος υπολογίζει τα κρυφά shares Si, 1  i  n από ένα αρχικό μυστικό S και το μοιράζει με ασφάλεια τα Si στους χρήστες Ρi, έτσι ώστε το επόμενο να αληθεύει : κάθε t ή περισσότεροι χρήστες που τραβούν το share τους μπορούν εύκολα να ανακτήσουν το S, αλλά οποιοδήποτε ομάδα από t-1 ή λιγότερα άτομα δε μπορούν. Ένα τέλειο σχήμα κατωφλίου είναι ένα σχήμα κατωφλίου στο οποίο γνωρίζοντας μόνο t-1 ή λιγότερα shares δεν παρέχει κανένα προβάδισμα ως προς ένα ανταγωνιστή που δεν ξέρει κανένα share.

75 75 Γενικευμένος κρυφός διαμοιρασμός Η ιδέα ενός σχήματος κατωφλίου μπορεί να διευρυνθεί σε ένα γενικευμένο σχήμα διαμοιρασμού μυστικού: Δεδομένου ενός συνόλου χρηστών Ρ καθορίζεται ένα σύνολο υποσυνόλων Α, που καλούνται εξουσιοδοτημένα υποσύνολα του Ρ. Υπολογίζοντα και διανέμονται τα shares ετσι ώστε το τράβηγμα shares που αντιστοιχούν σε κάθε εξουσιοδοτημένο υποσύνολο Α του A επιτρέπει την ανάκτηση του μυστικού S. Τα σχήματα κατωφλίου είναι ειδική κλάση γενικευμένων σχημάτων κρυφού διαμερισμού στα οποία η δομή προσπέλασης αποτελείται από ακριβώς όλα τα υποσύνολα χρηστών. Μια δομή προσπέλασης καλείται μονότονη αν όποτε ένα συγκεκριμένο υποσύνολο Α από χρήστες είναι εξουσιοδοτημένο τότε κάθε υποσύνολο Ρ που περιέχει το Α είναι επίσης εξουσιοδοτημένο. Οι δομές προσπέλασης είναι προϋπόθεση για πολλές εφαρμογές και τα περισσότερα φυσικά σχήματα είναι μονότονα.

76 76 Γενικευμένος κρυφός διαμοιρασμός Ορισμός Ένα σχήμα κρυφού διαμοιρασμού είναι τέλειο αν τα shares που αντιστοιχούν σε κάθε μη εξουσιοδοτημένο υποσύνολο δεν παρέχουν καμία πληροφορία Ορισμός Για τα σχήματα κρυφού διαμοιρασμού ο ρυθμός πληροφορίας για ένα συγκεκριμένο χρήστη είναι η αναλογία μεγέθους bit (bitsize ratio) (μέγεθος του διαμοιραζόμενου μυστικού)/(μέγεθος του share του χρήστη). Σε όλα τα τέλεια σχήματα κρυφού διαμοιρασμού για τα shares των χρηστών ισχύει (μέγεθος του share του χρήστη) >= (μέγεθος του διαμοιραζόμενου μυστικού) και τελικά τα σχήματα πρέπει να έχουν ρυθμό πληροφορίας <=1. τα σχήματα κρυφού διαμοιρασμού με ρυθμό πληροφορίας 1 λέγονται ιδανικά.

77 77 Σχήματα κρυφού διαμοιρασμού με εκτεταμένες δυνατότητες Προκαθορισμένα Σχήματα κρυφού διαμοιρασμού(όλη η απαραίτητη κρυφή πληροφορία τοποθετείται σε ένα μέρος εκτός από ένα share το οποίο πρέπει αργότερα να διαβιβαστεί Δυναμικά Σχήματα κρυφού διαμοιρασμού(προκαθορισμένα σχήματα στα οποία τα μυστικά ανακατασκευάζονται από διάφορα εξουσιοδοτημένα υποσύνολα) Πολύ – μυστικά σχήματα κατωφλίου (διαφορετικά μυστικά συνδυάζονται με διαφορετικά εξουσιοδοτημένα υποσύνολα) Ανίχνευση κλεφτών και επαληθεύσιμος κρυφός διαμοιρασμός Κρυφός διαμοιρασμός με από-εγγραφή

78 78 Συνδιάσκεψη Κλειδιών Ορισμός : Ένα πρωτόκολλο συνδιάσκεψης κλειδιών είναι μια γενίκευση μιας εγκαθίδρυσης κλειδιού δύο μελών η οποία παρέχει σε τρία ή περισσότερα μέλη ένα διαμοιραζόμενο μυστικό κλειδί. Διαφέρουν από τα secret sharing στο ότι δυναμικές διακριτές ομάδες μελών μπορούν να δημιουργούν δυναμικά διακριτά κλειδιά. Προφανής μέθοδος για την εγκαθίδρυση ενός κλειδιού συνδιάσκεψης για ένα σύνολο από t >= 3 μελών είναι να κανονιστεί ότι κάθε μέλος μοιράζεται ένα μοναδικό συμμετρικό κλειδί με ένα κοινό έμπιστο μέλος. Έπειτα το έμπιστο μέλος μπορεί να επιλέξει ένα νέο τυχαίο κλειδί και να το μοιράσει με διανομή συμμετρικού κλειδιού ξεχωριστά σε κάθε μέλος του συνόλου συνδιάσκεψης. Μειονεκτήματα είναι : η απαίτηση ενός online έμπιστου τρίτου μέλους και η επικοινωνιακή και υπολογιστική επιβάρυνση του.

79 79 Πρωτόκολλο Συνδιάσκεψης Κλειδιών Burmester-Desmedt t χρήστες U 0 έως U t-1 ο καθένας με τον δικό του Diffie-Hellman εκθέτη z i =a r i θα σχηματίσουν ένα κλειδί συνδιάσκεψης: Κ=a r 0 r 1 +r 1 r 2 +r 2 r 3 +…+r t-1 r 0 = a r 0 r 1 a r 1 r a r t-1 r 0 Ορίζουμε τα Α j =a r j r j+1 και Χ j =a r j +1 r j - r j r j -1, οπότε Α j = z j r j +1 επίσης εύκολα συνάγεται ότι ισχύει Α j = Α j-1 Χ j (πράγματι, Α j-1 Χ j = a r j- 1 r j a r j +1 r j - r j r j -1 = a r j r j+1 = Α j Επίσης το Κ μπορεί να γραφεί ως (οι δείκτες θεωρούνται mod t) Αλλά A i-1 t = (z i-1 ) t r i = (z i-1 ) t r i X i t-1 X i+1 t-2... X i+(t-3) 2 X i+(t-2) 1 mod p= K i K i = A 0 A 1... A t-1 = A i-1 A i A i+1 … A i+(t-2) = A i-1. (A i-1 X i ). (A i-1 X i X i+1 ) … (A i-1 X i X i+1 … X i+(t-2 ) ) = A i-1 t. X i t-2. X i t-2 … X i+(t-3 ) 2. X i+(t-2 ) 1

80 80 Πρωτόκολλο Συνδιάσκεψης Κλειδιών Burmester-Desmedt ΠΕΡΙΛΗΨΗ: t ≥ 2 χρήστες users παράγουν ένα κοινό κλειδί συνδιάσκεψης K. ΑΠΟΤΕΛΕΣΜΑ: Το K είναι ασφαλές από παθητικές επιθέσεις. 1.One-time setup. Ένας κατάλληλος πρώτος p και ένας γεννήτορας α του Zp* επιλέγονται και πιστοποιημένα αντίγραφά τους παρέχονται σε κάθε έναν από τους n χρήστες του συστήματος. 2. Conference key generation. Οποιοδήποτε σύνολο από t ≤ n χρήστες, παράγουν ένα κοινό κλειδί συνδιάσκεψης K όπως παρακάτω. (Χωρίς απώλεια της γενικότητας, οι χρήστες προσδιορίζονται ως U 0 έως U t-1, και όλοι οι δείκτες j προς τους χρήστες λαμβάνονται modulo t.) (a) Κάθε U i επιλέγει ένα τυχαίο ακέραιο r i, 1 ≤ r i ≤ p-2, υπολογίζει το z i = α r i mod p, και το στέλνει σε κάθε έναν από τους υπόλοιπους t-1 χρήστες του συνόλου. (b) Κάθε U i, αφού λάβει τα z i-1 και z i+1, υπολογίζει X i = (z i+1 / z i-1 ) r i mod p (σημ. X i = α r i+ 1 r i -r i r i- 1 ), και στέλνει το X i σε κάθε έναν από τους υπόλοιπους t-1 χρήστες του συνόλου. (c) Αφού λάβει το X j, 1 ≤ j ≤ t εκτός από j = i, ο U i υπολογίζει το K = K i ως εξής: K i = (z i-1 ) tr i X i t-1 X i+1 t-2... X i+(t-3) 2 X i+(t-2) 1 mod p

81 81 Στόχοι και Ιδιότητες της Ανάλυσης Ορισμός: Ένα πρωτόκολλο εγκαθίδρυσης κλειδιού είναι λειτουργικό (operational) αν κατά την απουσία ενεργών εχθρών και επικοινωνιακών λαθών, τα ειλικρινή μέλη τα οποία συμμορφώνονται με την προδιαγραφή του (πρωτοκόλλου) πάντοτε ολοκληρώνουν το πρωτόκολλο έχοντας υπολογίσει ένα κοινό κλειδί και γνωρίζοντας τις ταυτότητες των μελών με τα οποία το κλειδί αυτό μοιράζεται. Ορισμός Ένα πρωτόκολλο εγκαθίδρυσης κλειδιού είναι ανθεκτικό αν είναι αδύνατο για έναν ενεργητικό επιτιθέμενο να παραπλανήσει τους ειλικρινείς συμμετέχοντες ως προς το τελικό αποτέλεσμα.

82 82 Στόχοι και Ιδιότητες της Ανάλυσης ενός πρωτοκόλλου Η ανάλυση ενός πρωτοκόλλου εγκαθίδρυσης κλειδιού πρέπει να επιβεβαιώνει ότι το πρωτόκολλο ικανοποιεί τουλάχιστον τους εξής στόχους : 1. Να είναι λειτουργικό 2. Να παρέχει τόσο μυστικότητα όσο και πιστοποίηση του κλειδιού 3. Να είναι ανθεκτικό Επιπρόσθετοι στόχοι είναι : 1. Επαλήθευση κλειδιού 2. Τέλεια μυστικότητα 3. Ανίχνευση επαναχρησιμοποίησης κλειδιού 4. Αντίσταση σε γνωστές επιθέσεις κλειδιού

83 83 Στόχοι και Ιδιότητες της Ανάλυσης Για να επαληθεύσει την επίτευξη των στόχων στην Ανάλυση του πρωτοκόλλου συμπεριλαμβάνονται τα εξής πλεονεκτήματα : 1. Άμεση αναγνώριση των υποθέσεων πάνω στις οποίες βασίζεται η ασφάλεια του πρωτοκόλλου 2. Αναγνώριση των ιδιοτήτων του πρωτοκόλλου και ακριβής δήλωση των στόχων του 3. Εξέταση της αποδοτικότητας του πρωτοκόλλου Όλες οι μέθοδοι ανάλυσης πρωτοκόλλου απαιτούν τα ακόλουθα 1. Προδιαγραφές πρωτοκόλλου (σαφής προσδιορισμός των μηνυμάτων του πρωτοκόλλου όταν στέλνονται και τις ενέργειες όταν λαμβάνονται) 2. Στόχοι (σαφής δήλωση των εγγυήσεων που απαιτούνται κατά την ολοκλήρωση) 3. Υποθέσεις και αρχικό στάδιο (δήλωση των υποθέσεων και των αρχικών συνθηκών) 4. Αποδείξεις (κάποιας μορφής επιχειρήματα, δεδομένων των υποθέσεων και των αρχικών συνθηκών, ότι τα βήματα του συγκεκριμένου πρωτοκόλλου οδηγούν σε ένα τελικό στάδιο όπου επιτυγχάνονται οι αρχικοί στόχοι

84 84 Μέθοδοι Ανάλυσης 1. ad hoc και πρακτική ανάλυση : περιέχει ένα σύνολο από πειστικά επιχειρήματα ότι οποιαδήποτε επιτυχής επίθεση πρωτοκόλλου απαιτεί ένα επίπεδο πόρων (π.χ. χρόνο ή χώρο) μεγαλύτερο από αυτό του προβλεπόμενου επιτιθέμενου. 2. αναγωγή από δύσκολα προβλήματα : έγκειται στην απόδειξη ότι οποιαδήποτε επιτυχής επίθεση πρωτοκόλλου οδηγεί απευθείας στη δυνατότητα να λυθεί ένα καλά μελετημένο πρόβλημα αναφοράς το οποίο θεωρείται υπολογιστικά αδύνατο για έναν επιτιθέμενο με περιορισμένους πόρους. 3. ανάλυση με θεωρία πολυπλοκότητας : ορίζεται ένα κατάλληλο μοντέλο υπολογισμού και οι επιτιθέμενοι μοντελοποιούνται σαν να έχουν πολυωνυμική υπολογιστική δύναμη. 4. ανάλυση με θεωρία πληροφορίας : χρησιμοποιεί μαθηματικές αποδείξεις συμπεριλαμβάνοντας τις σχέσεις της εντροπίας για να αποδείξει ότι τα πρωτόκολλα είναι απεριόριστα ασφαλή. 5. Τυπικές μέθοδοι : περιλαμβάνουν αρχές πιστοποίησης, διατάξεις επανεγγράψιμων συστημάτων, έμπειρα συστήματα και πλήθος άλλων μεθόδων οι οποίες συνδυάζουν αλγεβρικές τεχνικές και τεχνικές μεταβολής κατάστασης.

85 85 Περισσότεροι αλγόριθμοι mi htm mi htm Αλγόριθμος κβαντικής κρυπτογραφίας (βλέπε διάλεξη «κβαντικής κρυπτογραφίας»)


Κατέβασμα ppt "Εισαγωγή στην Κρυπτογραφία Εγκαθίδρυση κλειδιού (γέννηση, διανομή & συμφωνία)"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google