Giannis F. Marias 1
Pretty Good Privacy S/MIME Προτεινόµενες ιστοσελίδες Giannis F. Marias 2
Αναπτύχθηκε από τον Phil Zimmermann το 1991 (first version) Commercial version by PGP Corp.: www.pgp.com Freeware version : www.pgpi.org OpenPGP RFC 2440 www.ietf.org/html.charters/openpgpcharter.html Αν και µπορεί να χρησιµοποιηθεί για να κρυπτογραφήσει οποιαδήποτε δεδοµένα, χρησιµοποιείται κυρίως για e-mail Υπάρχει ενσωµατωµένο στους περισσότερους e- mail clients Giannis F. Marias 3
ιατίθεται δωρεάν για πολλές πλατφόρµες Βασίζεται σε γνωστούς αλγόριθµους Έχει µεγάλη γκάµα εφαρµογών εν αναπτύσσεται ούτε ελέγχεται από κυβερνητικές υπηρεσίες Giannis F. Marias 4
Παρέχει σε µηνύµατα υπηρεσίες Αυθεντικοποίησης της πηγής προέλευσης Εµπιστευτικότητας (Confidentiality) Compression Παρέχει επίσης υπηρεσίες Key management Generation, distribution, revocation of public/private keys Generation distribution of session keys εν απαιτεί την ύπαρξη κεντρικών Αρχών Πιστοποίησης (CA) Κάθε κόµβος είναι µια CA Giannis F. Marias 5
Αυθεντικοποίησης της πηγής προέλευσης Ψηφιακή υπογραφή RSA/SHA ή DSS/SHA Εµπιστευτικότητα Κρυπτογράφηση µηνυµάτων Παραγωγή session key µε συµµετρική: CAST, IDEA ή 3-key 3DES Ανταλλαγή session key µε RSA ή DH Συµπίεση(ΖΙΡ) Giannis F. Marias 6
Χρησιµοποιεί συνδυασµό ασύµµετρης και συµµετρικής κρυπτογραφίας Ο αποστολέας κρυπτογραφεί χρησιµοποιώντας συµµετρικούς αλγορίθµους και ένα κλειδί συνόδου το µήνυµα Το κλειδί συνόδου κρυπτογραφείται µε το δηµόσιο κλειδί του παραλήπτη και αποστέλλεται µαζί µε το µήνυµα Ο παραλήπτης αποκρυπτογραφεί το κλειδί συνόδου χρησιµοποιώντας το ιδιωτικό του κλειδί Με το κλειδί συνόδου αποκρυπτογραφεί το µήνυµα Υποστηριζόµενοι αλγόριθµοι Συµµετρικοί: CAST, IDEA, 3DES Ασύµµετροι: RSA, El Gamal, κλπ. Σύνοψη: SHA Giannis F. Marias 7
Κs : Session Key (για συµµετρική κρυπτογράφηση) ΚR a : Ιδιωτικό κλειδί Α (για κρυπτογράφηση δηµοσίου κλειδιού) ΚU a : ηµόσιο κλειδί Α (για κρυπτογράφηση δηµοσίου κλειδιού) ΕΡ : Public-key Encryption DP : Public-key Decryption EC : Conventional Encryption DC : Conventional Decryption H : Hash function Z : Compression : Concatenation Giannis F. Marias 8
Giannis F. Marias 9 Network security essentials (International edition), William Stallings, Prentice-Hall, 2002
Κάθε χρήστης µπορεί να έχει πολλά ζεύγη κλειδιών Πολλά ζεύγη από ιδιωτικό-δηµόσιο Λόγοι: Συχνή αλλαγή χρησιµοποιούµενων κλειδιών Χρήση διαφορετικών κλειδιών ανάλογα µε αποδέκτη ή οµάδες αποδεκτών τα ζεύγη κλειδιών αποθηκεύονται σε κλειδοθήκες (key rings) Private key ring Αποθηκεύει τα ζεύγη public private keys που ανήκουν στον ιδιοκτήτη Public key ring Αποθηκεύει τα public keys που ανήκουν σε άλλους χρήστες υσκολίες Ποιο public key θα πιστοποιήσει µια υπογραφή? Ποιο private key θα αποκρυπτογραφήσει το session key? Giannis F. Marias 10
Στην αυθεντικοποίηση: Μετάδοση όλου του public key του αποστολέα είναι «σπατάλη» Στην κρυπτογράφηση: Μετάδοση όλου του public key του παραλήπτη είναι «σπατάλη» Ένα RSA Public key µπορεί να είναι πολλά δεκαδικά ψηφία Σχετίζοντας ένα τυχαίο ID στο public key προκαλεί διαχειριστικό πρόβληµα κλειδιά που ανήκουν σε διαφορετικούς ιδιοκτήτες κατά κανόνα δεν πρέπει να έχουν το ίδιο ID Λύση: PGP KeyID: least significant 64 bits του public key Ήτοι: το KeyID του public key ΚUa είναι το ΚUa mod 2 64 Μοναδικό για κάθε χρήση µε πολύ µεγάλη πιθανότητα Η συνένωση UserID και KeyID να ταυτοποιεί «µοναδικά» το κλειδί Giannis F. Marias 11
Message Component: Plaintext για µετάδοση ή αποθήκευση Όνοµα αρχείου χρόνος δηµιουργίας κειµένου Signature Component χρόνος δηµιουργίας υπογραφής KeyID του public key αποστολέα MD:Σύνοψη (160bits) υπογεγραµµένη µε το ιδιωτικό κλειδί αποστολέα Συνοψίζει signature timestamp και data (replay attacks avoidance) Leading two octets of the message digest: Επιτρέπει στον παραλήπτη τον έλεγχο αν έχει χρησιµοποιήσει το σωστό public key Session key Component Giannis F. Marias Κρυπτογραφηµένο session key 12
Private key ring Time Stamp: KeyID: Public Key: Encry. Private Key: UserID: Χρόνος δηµιουργίας ζεύγους κλειδιών Least Significant 64 bits of public key Το δηµόσιο κλειδί του ζεύγους Το κρυπτογραφηµένο ιδιωτικό κλειδί του ζεύγους e-mail χρήστη (π.χ., marias@aueb.gr) ή άλλο διακριτικό όνοµα χρήστη Giannis F. Marias 13
Κρυπτογραφηµένο ιδιωτικό κλειδί µε CAST-128 του οποίου το συµµετρικό κλειδί κρυπτογράφησης προκύπτει από την SHA-1 σύνοψη µιας passphrase του χρήστη 1. User selects a passphrase 2. When PGP system generates a new key pair, it asks the user for a passphrase. 3. Using SHA-1, a 160 bit hash code is generated from the passphrase. // passphrase is then discarded 4. System encrypts the private key using CAST-128 using 128 bits of the hash as the key. // hash code is then discarded 5. Encrypted private key stored in ring. Giannis F. Marias 14
Public key ring Time Stamp: KeyID: Public Key: UserID: Χρόνος δηµιουργίας αυτού του entry Least Significant 64 bits of public key Το δηµόσιο κλειδί του ζεύγους Όνοµα του ιδιοκτήτη (χρήστη) αυτού του ζεύγους Giannis F. Marias 15
Giannis F. Marias 16
Giannis F. Marias 17
Κάθε entry στο public key ring είναι ένα πιστοποιητικό που πιστοποιεί την αντιστοιχία χρήστη (UserID) και δηµόσιου κλειδιού Τοπική έννοια στο «όνοµα χρήστη» όχι καθολικό Χ.500 Το πιστοποιητικό µπορεί να υπογράψει οποιοσδήποτε τρίτος «δέχεται» την αντιστοιχία αυτή Υπάρχουν διάφορες διαβαθµίσεις εµπιστοσύνης σε αυτή την υπογραφή Όσες περισσότερες υπογραφές µαζεύει Giannis F. Marias 18
Public key ring KeyLegitimacy: Βαθµός στον οποίο υπάρχει πεποίθηση ότι το δηµόσιο κλειδί ανήκει στο ιδιοκτήτη µε UserID Signatures: Υπογραφές που συνοδεύουν τη σχέση δηµόσιου κλειδιού και του ιδιοκτήτη του (UserID) SignaturesTrust: Βαθµός εµπιστοσύνης προς τον υπογράφοντα για να πιστοποιεί δηµόσια κλειδιά OwnerTrust: Αναφέρεται στο βαθµό εµπιστοσύνης προς τον ιδιοκτήτη για να πιστοποιεί (υπογράφει) Giannis δηµόσια F. Marias κλειδιά άλλων 19
Public key ring - Undefined trust - Unknown user - Usually not trusted to sign other keys - Usually trusted to sign other keys - Always trusted to sign other keys - Ultimate Trust (the key is present in the private ring) - Unknown or Undefined trust - Key ownership not trusted - marginal trust in Key ownership - complete trust in Key ownership - Undefined trust - Unknown user - Usually not trusted to sign other keys - Usually trusted to sign other keys - Always trusted to sign other keys - Ultimate Trust (the key is present in the private ring) Giannis F. Marias 20
ιαχείριση public key ring χρήστη Α O Α δέχεται νέο public key Θέλει να εισάγει νέο public key entry στο ring Αν ο Α είναι ο ιδιοκτήτης (entry is in private ring) τότε OwnerTrust:=Ultimate_Trust Aν όχι τότε το PGP ρωτά χρήστη Α για τιµή στο OwnerTrust πεδίο O A εισάγει το νέο entry Το public key στο νέο entry µπορεί να συνοδεύεται από µια µια ή περισσότερες υπογραφές Για κάθε υπογράφοντα ελέγχεται αν έχει entry µέσα στο public key ring και έχει trustflag στο OwnerTrust πεδίο» Αν ναι, τότε το OwnerTrust trustflag αντιγράφεται στο SignaturesTrust trustflag» Αν όχι τότε SignaturesTrust:=Unknown_user Giannis F. Marias 21
ιαχείριση public key ring χρήστη Α... cont Αποµένει ο υπολογισµός του πεδίου KeyLegitimacy Αν ένα τουλάχιστον tustflag του SignaturesTrust πεδίου είναι UltimateTrust τότε KeyLegitimacy:=Complete ιαφορετικά υπολογίζεται ένα weighted sum ως εξής: βάρος 1/Χ αποδίδεται σε υπογραφές µε SignaturesTrust =A lways_trusted βάρος 1/Υ αποδίδεται σε υπογραφές µε SignaturesTrust = Usually_Trusted Χ, Υ είναι προκαθορισµένες παράµετροι Όταν το σταθµισµένο βάρος γίνει 1 τότε η σύνδεση public key και UserID του entry θεωρείται έµπιστη, οπότε KeyLegitimacy:=Complete Άρα αν στο entry δεν υπάρχει SignaturesTrust µε Ultimate_Trust, τότε απαιτούνται τουλάχιστον:» Χ υπογραφές µε SignaturesTrust= Always_Trusted, ή» Υ υπογραφές µε SignaturesTrust= Usually_Trusted, ή» συνδυασµός τους Giannis F. Marias 22
You: public key ring PU Arrow: ring Arrow?: key ring signer s key public key You Multiple arrows : You. A B Partially_Trusted Giannis F. Marias keys 23 signer s key public You D,E,F, L Always_Trusted keys ring Pus
PUs owners always partially trusted You. L: To PU always trusted user D To F, PU always trusted user Giannis F. Marias 24
partially trusted signatures PU.., PU H legitimate: partially trusted users (, ) certify PU. legitimate PU user trusted PUs..., User N R s PU You PU R legitimate. Giannis F. Marias 25
Ο ιδιοκτήτης εκδίδει ένα πιστοποιητικό ανάκλησης κλειδιού. Κανονικό πιστοποιητικό υπογραφής µε σήµανση ανάκλησης. Το αντίστοιχο ιδιωτικό κλειδί χρησιµοποιείται για υπογραφή του πιστοποιητικού. Giannis F. Marias 26
Secure/Multipurpose Internet Mail Extension, Ασφαλείς Γενικές Επεκτάσεις Ταχυδροµείου ιαδικτύου Το S/MIME θα γίνει µάλλον το πρότυπο. Το PGP θα χρησιµοποιείται για προσωπική ασφάλεια ηλεκτρονικού ταχυδροµείου Giannis F. Marias 27
εκτελέσιµα αρχεία ή άλλα δυαδικά αρχεία (π.χ εικόνες jpeg) εθνικοί χαρακτήρες (όχι ASCII) µηνύµατα πάνω από κάποιο όριο µεγέθους προβλήµατα µετατροπής από ASCII σε EBCDIC γραµµές µεγαλύτερες από κάποιο µέγεθος (72 ως 254 χαρακτήρες) Giannis F. Marias 28
Πρέπει να είναι 1.0 -> RFC 2045, RFC 2046 Προστίθενται κι άλλοι τύποι από προγραµµατιστές (application/word) Τρόπος κωδικοποίησης του µηνύµατος (radix-64) Μοναδικό αλφαριθµητικό αναγνωριστικού. Απαιτείται όταν το περιεχόµενο δεν διαβάζεται ως κείµενο (π.χ. mpeg) Giannis F. Marias 29
Κρυπτογραφηµένο περιεχόµενο και κρυπτογραφηµένα κλειδιά περιόδου εργασίας για παραλήπτες. Κρυπτογραφηµένη σύνοψη µηνύµατος µε το ιδιωτικό κλειδί του υπογράφοντα. Υπογεγραµµένα αλλά όχι κρυπτογραφηµένα δεδοµένα. ιάφορες διατάξεις για κρυπτογράφηση και υπογραφή. Giannis F. Marias 30
SHA-1 και MDS DSS Triple- DES, RC2/40 (εξαγώγιµος) RSA µε µέγεθος κλειδιού 512 και 1024 bit, και Diffie-Hellman (για κλειδιά περιόδου εργασίας). Giannis F. Marias 31
Το S/MIME χρησιµοποιεί πιστοποιητικά δηµόσιου κλειδιού - X.509 έκδοση 3 - υπογεγραµµένα από αρχή πιστοποίησης (CA) Λειτουργίες: - Diffie-Hellman, DSS, και ζεύγη κλειδιών RSA. ηµόσια κλειδιά πρέπει να καταχωριστούν σε αρχή πιστοποίησης X.509. - Τοπική (όπως σε εφαρµογές φυλλοµετρητή) για διαφορετικές υπηρεσίες. - ιάφορες διατάξεις για κρυπτογράφηση και υπογραφή. Giannis F. Marias 32
Το µήνυµα του αγοραστή επιβεβαιώνεται µε αποστολή µηνύµατος κρίσιµων πληροφοριών. Επιβεβαιώνεται και η ταχυδροµική διεύθυνση, και τα δεδοµένα ελέγχονται σε καταλόγους. Ο αγοραστής πρέπει να εµφανιστεί αυτοπροσώπως, ή να στείλει συµβολαιογραφικά έγγραφα πιστοποίησης ταυτότητας. Giannis F. Marias 33
PGP: www.pgp.com Κέντρο διανοµής PGP στο MIT S/MIME Charter S/MIME Central: Η τοποθεσία της RSA Inc. Giannis F. Marias 34