ΠΜΣ 36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

45
ΠΜΣ 36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6 Αν. Καθ. Π. Γεωργιάδης Υπ. Δρ. Κ. Παπαπαναγιώτου [email protected] Δρ. Μαριάς Ιωάννης [email protected]

description

Αν. Καθ. Π. Γεωργιάδης. ΠΜΣ 36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6. Υπ. Δρ. Κ. Παπαπαναγιώτου [email protected] Δρ. Μαριάς Ιωάννης [email protected]. Περιεχόμενα. Συστήματα και Πρωτόκολλα αυθεντικοποίησης Kerberos Pretty Good Privacy (PGP) Simple PKI/SDSI – ANSI X9.68 - PowerPoint PPT Presentation

Transcript of ΠΜΣ 36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

Page 1: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

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

Lecture 6

Αν. Καθ. Π. Γεωργιάδης

Υπ. Δρ. Κ. Παπαπαναγιώτου [email protected] Δρ. Μαριάς Ιωάννης [email protected]

Page 2: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

2ΠΜΣ 36 / 2006 Lecture 6

Περιεχόμενα

Συστήματα και Πρωτόκολλα αυθεντικοποίησης Kerberos Pretty Good Privacy (PGP) Simple PKI/SDSI – ANSI X9.68 Personal PKI

Page 3: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

3ΠΜΣ 36 / 2006 Lecture 6

Kerberos Το Kerberos παρέχει υπηρεσίες αυθεντικοποίησης

χρήστη σε δικτυακά και κατανεμημένα περιβάλλοντα, χρησιμοποιώντας μία έμπιστη τρίτη οντότητα (TTP)

TTP αποτελεί την KDC Αναπτύχθηκε από το Project Athena του MIT

http://web.mit.edu/kerberos/www/ Βασίζεται σε αλγορίθμους συμμετρικής

κρυπτογράφησης Αυθεντικοποιεί δύο μέρη

Μονομερώς (Client 2 Server) Αμοιβαία (C 2 S/ S 2C) Χωρίς να αποκαλύπτει κοινό μυστικό (π.χ., password) Χρησιμοποιεί ως βάση τον αλγόριθμο Needham –

Schroeder.

Page 4: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

4ΠΜΣ 36 / 2006 Lecture 6

Kerberos Χρησιμοποιείται, μεταξύ άλλων, στα

Windows 2000 για την αυθεντικοποίηση των χρηστών στο σύστημα και τη χρήση δικτυακών πόρων Το κοινό μυστικό είναι ένα κλειδί που βασίζεται

στο συνθηματικό του χρήστη Χρησιμοποιείται και για να υποστηρίξει

εφαρμογές Single Sign On (SSO) Τελευταία έκδοση: v5 (RFC 1510)

H v4 χρησιμοποιείται ακόμα, ενώ οι εκδόσεις 1-3 δεν δημοσιεύτηκαν

Page 5: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

5ΠΜΣ 36 / 2006 Lecture 6

Χρησιμότητα Το Kerberos αντιμετωπίζει το πρόβλημα της

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

Οι υπηρεσίες μπορούν να παρέχονται μόνο σε χρήστες μετά από εξουσιοδότηση

Το Kerberos αντικαθιστά την ανάγκη επιμέρους αυθεντικοποίησης σε κάθε σύστημα, με ένα κεντρικό σύστημα που διαχειρίζεται όλες τις σχέσεις εμπιστοσύνης μεταξύ υπηρεσιών και χρηστών

Page 6: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

6ΠΜΣ 36 / 2006 Lecture 6

Απαιτήσεις Ασφάλεια: Ένας ωτακουστής δεν θα πρέπει να μπορεί

να χρησιμοποιήσει τις πληροφορίες που λαμβάνει για να ιδιοποιηθεί την ταυτότητα ενός χρήστη

Αξιοπιστία: Εφόσον ο έλεγχος πρόσβασης στις υπηρεσίες γίνεται από το Kerberos, πιθανή έλλειψη διαθεσιμότητάς του θα συνεπάγεται και μη διαθεσιμότητα των υπηρεσιών. Συνεπώς ο Kerberos θα πρέπει να είναι πάντα διαθέσιμος

υλοποιείται μέσα από μια κατανεμημένη αρχιτεκτονική (κατά specs)

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

Κλιμάκωση: Πρέπει να μπορεί να υποστηρίξει μεγάλο αριθμό clients και servers,

μέσα από μία κατανεμημένη αρχιτεκτονική domains (realms)

Page 7: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

7ΠΜΣ 36 / 2006 Lecture 6

Διανομή Κλειδιών μέσω TTP Σενάριο με συμμετρικά κλειδιά

Δίκτυο n κόμβων Κάθε ζεύγος κόμβων θέλει να επικοινωνήσει με ασφάλεια Απαιτούνται n(n-1)/2 κλειδιά και κάθε κόμβος πρέπει να

διαθέτει n-1 κλειδιά Θα μπορούσαν να χρησιμοποιηθούν αλγόριθμοι

ασύμμετρης κρυπτογραφίας Εναλλακτικά, θα μπορούσε να χρησιμοποιηθεί μία

έμπιστη τρίτη οντότητα (KDC) που θα βοηθά τους χρήστες να αυθεντικοποιούνται μόνο απέναντί της

Κατόπιν μοιράζονται κλειδιά συνόδου (διάλεξη 2η) Τελικά: Χρήση πρωτοκόλλου Needham -

Schroeder

Page 8: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

8ΠΜΣ 36 / 2006 Lecture 6

Needham – SchroederΚλειδιά Κάθε κόμβος H μοιράζεται ένα κλειδί μακράς

διάρκειας KH,T με το KDC, T. Η Alice μοιράζεται ένα κλειδί μακράς διάρκειας KA,T

με το KDC. Ο Bob επίσης μοιράζεται ένα κλειδί μακράς

διάρκειας KB,T με το KDC. Αρχικά η Alice και ο Bob δεν μοιράζονται κάποιο

κοινό κλειδί. Η Alice και ο Bob χρησιμοποιούν το KDC ώστε

να αυθεντικοποιούνται ο ένας απέναντι στον άλλον (έμμεσα) και να συμφωνήσουν σε ένα κλειδί συνόδου.

Page 9: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

9ΠΜΣ 36 / 2006 Lecture 6

Needham – SchroederΤο πρωτόκολλο

Alice Bob

KDC

1 2

3

4

5

Εγκαθίδρυση κοινού κλειδιού συνόδου Κ μεταξύ Alice και Bob μέσω ΤΤΡ

A T: A || B || NA

T A: ΕKA,T{NA || B || K || ΕKB,T

{K || A}}

A B: ΕKB,T{K || A}

B A: NB

A B: ΕK{NB -1||B}

Page 10: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

10ΠΜΣ 36 / 2006 Lecture 6

Needham – Schroeder Αναλυτικά1: Η Alice στέλνει στο KDC ένα μήνυμα που

περιέχει το όνομα της, το όνομα του Βob και ένα τυχαίο αριθμό (ή αύξοντα)

2: Το KDC δημιουργεί ένα (ψευδο)τυχαίο κλειδί συνόδου, το οποίο το δίνει στην Alice. Στο στάδιο αυτό αυθεντικοποιείται απέναντι στην

Alice. 3: H Alice στέλνει το κλειδί συνόδου

κρυπτογραφημένο από KDC στον Bob. 4: O Bob στέλνει στην Alice ένα τυχαίο αριθμό (ή

αύξοντα)5: Η Αlice αυθεντικοποιείται απέναντι στον Bob

χρησιμοποιώντας το κλειδί συνόδου K που πλέον μπορούν και να μοιράζονται

Page 11: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

11ΠΜΣ 36 / 2006 Lecture 6

Πλεονεκτήματα - Μειονεκτήματα Πλεονεκτήματα

Απαιτούνται μόνο n κλειδιά στο KDC Απαιτείται μόνο ένα κλειδί μακράς διάρκειας στον

κάθε κόμβο (αντί n-1) Χρήση Συμμετρικής Κρυπτογραφίας Ο Βob μπορεί να είναι offline στα βήματα 1 και 2,

ομοίως και o KDC στα βήματα 3,4,5. Μειονεκτήματα

KDC: Μοναδικό σημείο κατάρρευσης Φόρτος μηνυμάτων στο KDC

Απαίτηση για έμπιστο KDC Απαίτηση για καλή διαχείριση κλειδιών μακράς

διαρκείας από τους κόμβους

Page 12: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

12ΠΜΣ 36 / 2006 Lecture 6

Στοιχεία του Kerberos Kerberos Key Distribution Centre (KDC)

γνωστό και σαν Kerberos Authentication Server (KAS) αυθεντικοποιεί χρήστες (ή και άλλες οντότητες) και

εκδίδει εισιτήρια, τα οποία είναι έγκυρα για μία σύνοδο Ticket Granting Servers (TGSs)

Εκδίδουν εισιτήρια προς οντότητες που ζητούν πρόσβαση σε δικτυακές υπηρεσίες

Client Χρήστες που επιθυμούν να έχουν πρόσβαση σε υπηρεσίες

που παρέχονται από servers του δικτύου Server

Παρέχουν υπηρεσίες σε clients βασιζόμενοι στην αυθεντικοποίηση που πραγματοποιούν οι KDC και TGS

Realm To σύνολο των client και server που διαχειριστικά ανήκουν

σε ένα ζεύγος KDC/TGS

Page 13: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

13ΠΜΣ 36 / 2006 Lecture 6

Πρωτόκολλο

C(client)

S(server)

KDC(Authentication

Server, AS)

TGS(ticket-

grantingserver)

1 2 3 4

5

6

1. Αίτηση για Ticket-Granting Ticket

2. Ticket-Granting Ticket3. Αίτηση για Server Ticket4. Server Ticket5. Αίτηση για Service6. Ασφαλής επικοινωνία

Page 14: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

14ΠΜΣ 36 / 2006 Lecture 6

Φάσεις του πρωτοκόλλου Φάση 1: Στα μηνύματα 1 και 2, χρησιμοποιείται το

κλειδί μακράς διάρκειας για αυθεντικοποίηση μεταξύ Client και KDC. To KDC δίνει ένα κλειδί μικρής διάρκειας και ένα ticket granting ticket (TGT).

Φάση 2: Στα μηνύματα 3 και 4, χρησιμοποιούνται το κλειδί μικρής διάρκειας και το TGT για αυθεντικοποίηση μεταξύ Client και TGS. Ο TGS δίνει ένα κλειδί συνόδου και ένα εισιτήριο (ticket).

Φάση 3: Στα μηνύματα 5 και 6, χρησιμοποιούνται το κλειδί συνόδου και το εισιτήριο για αυθεντικοποίηση μεταξύ Client και Server και για την εγκαθίδρυση ασφαλούς συνόδου.

Οι Φάσεις 2 και 3 συνήθως επαναλαμβάνονται πολλές φορές για κάθε 1η φάση.

Page 15: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

15ΠΜΣ 36 / 2006 Lecture 6

Ροή Μηνυμάτων

Network security essentials (International edition), William Stallings, Prentice-Hall, 2002. ISBN: 0131202715

Page 16: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

16ΠΜΣ 36 / 2006 Lecture 6

Μηνύματα

Authentication phase

Απόκτηση Ticket-Granting Ticket (TGT)

Once per user logon session

1. CKDC: IDtgs||IDC||TS1

2. KDCC: EKc{Kc,tgs|| IDtgs || TS2 || Lifetime2 || Tickettgs}

Tickettgs := Ekkdc, tgs{Kc,tgs|| IDc || ADc || IDtgs || TS2 ||

Lifetime2 }

Page 17: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

17ΠΜΣ 36 / 2006 Lecture 6

Μηνύματα

Ticket Granting Service phase

Απόκτηση Service-Granting Ticket

Once per type of service

3. CTGS: IDS|| Tickettgs||Authenticatorc

4. TGSC: Ekc,tgs{Kc,s|| IDs|| TS4 || Tickets}

Tickettgs := Ekkdc, tgs{Kc,tgs|| IDc || ADc || IDtgs || TS2 || Lifetime2}

Tickets := Eks{Kc,s|| IDc || ADc || IDs || TS4 || Lifetime4}

Authenticatorc := Ekc,tgs{IDc || ADc || TS3}

Page 18: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

18ΠΜΣ 36 / 2006 Lecture 6

Μηνύματα

Client-Server Authentication phase

Πρόσβαση σε υπηρεσία

Once per service session

5. CS: Tickets||Authenticator’c

6. SC: Ekc, s{TS5 +1}

Tickets := Eks{Kc,s|| IDc || ADc || IDs || TS4 || Lifetime4}

Authenticator’c := Ekc, s{IDc || ADc || TS5}

Page 19: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

19ΠΜΣ 36 / 2006 Lecture 6

Αυθεντικοποίηση σε Διαφορετικά Realms Το Kerberos υποστηρίζει αυθεντικοποίηση σε

διαφορετικά realms Clients που ανήκουν σε ένα realms μπορούν να έχουν

πρόσβαση σε servers άλλου realm. Απαιτείται προ-συμφωνία μεταξύ των σχετικών

KDC/TGS. Χρησιμοποιούνται forwardable tickets.

Ένας Client στο realm A ζητεί ένα TGT από τον TGS για να το χρησιμοποιήσει σε ένα άλλο realm B.

Ο TGS του realm A δίνει ένα TGT για το realm B. Ο TGS πρέπει να γνωρίζει το κλειδί KKDC,TGS που ισχύει

στο realm B. Ο TGS στο realm A εισάγει ένα forwardable flag στο

TGT που εκδίδει. Ο Client από το realm A μπορεί να χρησιμοποιήσει το

TGT στο realm B.

Page 20: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

20ΠΜΣ 36 / 2006 Lecture 6

Επικοινωνία Μεταξύ Realms

Network security essentials (International edition), William Stallings, Prentice-Hall, 2002. ISBN: 0131202715

Page 21: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

21ΠΜΣ 36 / 2006 Lecture 6

Διαφορές v4 – v5 To v4 χρησιμοποιεί DES ενώ το v5 μπορεί

να χρησιμοποιήσει οποιονδήποτε αλγόριθμο.

Το v4 βασίζεται στις διευθύνσεις του πρωτοκόλλου IP ενώ το v5 μπορεί να χρησιμοποιήσει οποιεσδήποτε διευθύνσεις.

Τα εισιτήρια στο v4 μπορούν να είναι μέχρι 21 ώρες, ενώ στο v5 έχουν συγκεκριμένους χρόνους αρχής και τέλους.

Τα μηνύματα 2 και 4 κρυπτογραφούνταν 2 φορές στη v4.

Page 22: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

22ΠΜΣ 36 / 2006 Lecture 6

Ανοικτά Θέματα Ανάκληση: Τα TGT ισχύουν μέχρι να λήξουν, συνήθως σε 10

ώρες. Διαχείριση κλειδιών: μέσα σε ένα realm: Κλειδιά μακράς

διαρκείας πρέπει να ανταλλαχθούν μεταξύ KDC και TGS, TGS και Server, KDC και Client.

Απαιτείται συγχρονισμός των ρολογιών, εφόσον χρησιμοποιούνται χρονικές ενδείξεις.

Διαθεσιμότητα: απαιτούνται online έμπιστοι KDC και TGS. Key storage: short-term keys και ticket-granting tickets είναι

αποθηκευμένα σε μη προστατευόμενους client hosts. Συνθηματικά: στις περισσότερες υλοποιήσεις το κλειδί μακράς

διαρκείας μεταξύ Client και KDC (KKDC,C) βασίζεται σε ένα συνθηματικό που εισάγει ο χρήστης στην αρχή της συνόδου

Επιθέσεις με χρήση λεξικού είναι δυνατές π.χ.: http://citeseer.ist.psu.edu/wu99realworld.html Τελικά η ασφάλεια του συστήματος εξαρτάται από τους χρήστες και

την ποιότητα των συνθηματικών. Ευπάθειες στον Κώδικα : κάθε τόσο βρίσκονται αρκετές:

http://web.mit.edu/kerberos/www/advisories/

Page 23: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

23ΠΜΣ 36 / 2006 Lecture 6

Single Sign On (SSO) O Kerberos είναι ένα παράδειγμα

συστήματος Single Sign On (SSO). Ο χρήστης εισάγει ένα μόνο

συνθηματικό για να αποκτήσει πρόσβαση σε πολλαπλές υπηρεσίες και εφαρμογές.

Microsoft Passport: παράδειγμα web-based εφαρμογής SSO solution.

Liberty Alliance: μία ανοικτή προσπάθεια δημιουργίας προτύπων για την επίτευξη μιας federated network identity, έννοιας που σχετίζεται με το SSO.

Page 24: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

24ΠΜΣ 36 / 2006 Lecture 6

PGP - Pretty Good Privacy Παρέχει σε μηνύματα υπηρεσίες

Αυθεντικοποίησης της πηγής προέλευσης Confidentiality Compression

Παρέχει Υπηρεσίες Key management Generation, distribution, revocation of

public/private keys Generation distribution of session keys

Δεν απαιτεί την ύπαρξη κεντρικών Αρχών Πιστοποίησης (CA) Κάθε κόμβος είναι CA

Page 25: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

25ΠΜΣ 36 / 2006 Lecture 6

PGP - Pretty Good Privacy Αναπτύχθηκε από τον 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/openpgp-charter.html

Αν και μπορεί να χρησιμοποιηθεί για να κρυπτογραφήσει οποιαδήποτε δεδομένα, χρησιμοποιείται κυρίως για e-mail Υπάρχει ενσωματωμένο στους περισσότερους e-

mail clients

Page 26: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

26ΠΜΣ 36 / 2006 Lecture 6

Αυθεντικοποίηση/ Κρυπτογράφηση στο PGP Χρησιμοποιεί συνδυασμό ασύμμετρης και συμμετρικής

κρυπτογραφίας Ο αποστολέας κρυπτογραφεί χρησιμοποιώντας

συμμετρικούς αλγορίθμους και ένα κλειδί συνόδου το μήνυμα

Το κλειδί συνόδου κρυπτογραφείται με το δημόσιο κλειδί του παραλήπτη και αποστέλλεται μαζί με το μήνυμα

Ο παραλήπτης αποκρυπτογραφεί το κλειδί συνόδου χρησιμοποιώντας το ιδιωτικό του κλειδί

Με το κλειδί συνόδου αποκρυπτογραφεί το μήνυμα Υποστηριζόμενοι αλγόριθμοι

Συμμετρικοί: DES, 3DES, AES, κλπ. Ασύμμετροι: RSA, El Gamal, κλπ.

Page 27: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

27ΠΜΣ 36 / 2006 Lecture 6

Κρυπτογράφηση

Δημόσιοκλειδί

παραλήπτη

Ιδιωτικόκλειδί

παραλήπτηΚρυπτογραφημένο

κλειδί συνόδου

Αποκρυπτογράφηση

Κλειδί συνόδου

Μήνυμα

Κρυπτογραφημένομήνυμα

Κλειδί συνόδου

Μήνυμα

Αυθεντικοποίηση/ Κρυπτογράφηση στο PGP

Page 28: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

28ΠΜΣ 36 / 2006 Lecture 6

Διαχείριση Κλειδιών Κάθε χρήστης μπορεί να έχει πολλά ζεύγη κλειδιών:

ιδιωτικό-δημόσιο τα ζεύγη κλειδιών αποθηκεύονται σε κλειδοθήκες (key rings)

Private key ring Αποθηκεύει τα ζεύγη public– private keys που ανήκουν στον

ιδιοκτήτη Public key ring

Αποθηκεύει τα public keys που ανήκουν σε άλλους χρήστες Δυσκολίες

Ποιο public key θα πιστοποιήσει μια υπογραφή ? Ποιο private key θα αποκρυπτογραφήσει το session key ?

Μετάδοση όλου του public key είναι «σπατάλη» Σχετίζοντας ένα τυχαίο ID στο public key προκαλεί

διαχειριστικό πρόβλημα PGP key ID: least significant 64 bits του public key

Σχεδόν σίγουρα μοναδικό για ένα χρήστη DEADBEEF attack

Page 29: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

29ΠΜΣ 36 / 2006 Lecture 6

Διαχείριση Κλειδιών Κάθε χρήστης έχει ένα πιστοποιητικό

που πιστοποιεί την αντιστοιχία χρήστη-δημόσιου κλειδιού Τοπική έννοια «χρήστη» όχι καθολικό Χ.500

Το πιστοποιητικό μπορεί να υπογράψει οποιοσδήποτε τρίτος «δέχεται» την αντιστοιχία αυτή Υπάρχουν διάφορες διαβαθμίσεις

εμπιστοσύνης σε αυτή την υπογραφή Όσες περισσότερες υπογραφές μαζεύει

Ποιο το μοντέλο εμπιστοσύνης;

Page 30: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

30ΠΜΣ 36 / 2006 Lecture 6

Web of TrustOwner Trust Επίπεδα εμπιστοσύνης που τίθενται από

χρήστη Κάθε χρήστης μπορεί να αποκτήσει μία ή

περισσότερες υπογραφές για το πιστοποιητικό του

αυξάνει την αξιοπιστία του Εάν ο χρήστης Α εμπιστεύεται το

πιστοποιητικό του Β και ο Β εμπιστεύεται το πιστοποιητικό του Γ, τότε ο Α μπορεί να εμπιστευτεί το πιστοποιητικό του Γ

Η αλυσίδα εμπιστοσύνης μπορεί να εξαρτάται από το βαθμό εμπιστοσύνης σε κάθε πιστοποιητικό ξεχωριστά

Page 31: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

31ΠΜΣ 36 / 2006 Lecture 6

Web of Trust Σε νεότερες εκδόσεις εισάγεται η

έννοια των «υπογραφών εμπιστοσύνης» που μπορούν να υποστηρίξουν τη δημιουργία Αρχών Πιστοποίησης Η «υπογραφή εμπιστοσύνης» επιβεβαιώνει

την αντιστοιχία κλειδιού-οντότητας και διαβεβαιώνει πως ο ιδιοκτήτης του κλειδιού είναι αρκετά έμπιστος να υπογράφει άλλα πιστοποιητικά

Μία μορφή distributed CAs

Page 32: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

32ΠΜΣ 36 / 2006 Lecture 6

Εναλλακτικές Υποδομές Δημόσιου Κλειδιού Ψηφιακά Πιστοποιητικά

Συνδέουν ονόματα με κλειδιά Δημόσια άμεσα, άρα και ιδιωτικά έμμεσα

Δημόσια διαθέσιμες λίστες πιστοποιητικών δημιουργούν ένα τύπο «τηλεφωνικών» καταλόγων

Kohnfelder (1978): Εάν δεν υπάρχει άμεσος και αξιόπιστος τρόπος

διαμοιρασμού των κλειδιών, καλύτερα να εμπιστευτούμε κάποια έμπιστη τρίτη οντότητα

Page 33: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

33ΠΜΣ 36 / 2006 Lecture 6

Καθολικά Ονόματα Χ.500 και X.509

Distinguished Name: ένα παγκόσμιο όνομα που χαρακτηρίζει μοναδικά μία οντότητα.

Εύκολα υλοποιήσιμο σε μικρές κοινωνίες Όλοι είναι γνωστοί με τα ονόματά τους

Μη εφικτό σε παγκόσμια κλίμακα Δεν υπάρχει παγκόσμιος κανόνας ονοματοδοσίας Πολλές εταιρίες δραστηριοποιούνται στο χώρο,

δίνοντας η καθεμία ονόματα με διαφορετικό τρόπο

Page 34: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

34ΠΜΣ 36 / 2006 Lecture 6

Πιστοποιητικό X.509

Page 35: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

35ΠΜΣ 36 / 2006 Lecture 6

SPKI Simple PKI Χρησιμοποιεί «τοπικά» ονόματα Δεν απαιτείται να είναι καθολικά

μοναδικά Πρέπει να είναι μοναδικά στα πλαίσια

της οντότητας που τα διαχειρίζεται Διευκολύνει τη δημιουργία λιστών

ελέγχου πρόσβασης (ACL – Access Control Lists)

Page 36: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

36ΠΜΣ 36 / 2006 Lecture 6

Ονοματολογία SDSI Simple Distributed Security Infrastructure Αναπτύχθηκε παράλληλα με το SPKI, και

αργότερα ενοποιήθηκαν Σύμφωνα με το SDSI 2.0 ένα βασικό όνομα

αποτελείται από 2 στοιχεία: τη λέξη name και το όνομα

π.χ. george: (name fred)

Ο george oρίζει το όνομα fred Σύνθετα ονόματα

fred: (name sam) george: (name fred sam)

Page 37: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

37ΠΜΣ 36 / 2006 Lecture 6

Διεθνοποίηση Ονομάτων SDSI Κάποιες εφαρμογές απαιτούν παγκοσμίως

μοναδικά ονόματα Στην ασύμμετρη κρυπτογραφία έχουμε ήδη ένα

μοναδικό χαρακτηριστικό: το ιδιωτικό κλειδί Κάθε ιδιωτικό κλειδί σχετίζεται μοναδικά με το

αντίστοιχο δημόσιο Υπολογιστικά η σύνοψη του δημόσιου κλειδιού

είναι επίσης μοναδική Ένα όνομα SDSI παίρνει τη μορφή:

(name (ΣύνοψηΚλειδιούΕκδότη) Όνομα) π.χ.: (name (|TLCgPLFlGTzgUbcaYLW8kGTEnUk=|) jim)

Page 38: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

38ΠΜΣ 36 / 2006 Lecture 6

Πιστοποιητικά SPKI Πιστοποιητικά Ονομάτων

Πιστοποιούν ότι ένα όνομα ανήκει στον εκδότη του πιστοποιητικού

Δίνουν συμβολικά ονόματα σε κλειδιά ή ομάδες κλειδιών

C: (K,A,S,V) K: Το δημόσιο κλειδί του εκδότη Α: Τοπικό όνομα S: Όνομα ή Κλειδί που προσδίδει επιπλέον

χαρακτηριστικά στο συγκεκριμένο Όνομα V: Διάρκεια ισχύος

Το πιστοποιητικό υπογράφεται ψηφιακά από τον εκδότη

Page 39: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

39ΠΜΣ 36 / 2006 Lecture 6

Πιστοποιητικά SPKI (2) Πιστοποιητικά Αυθεντικοποίησης

Αυθεντικοποιούν ένα χρήστη Αντιστοιχούν συγκεκριμένα δικαιώματα σε

κλειδιά ή ομάδες κλειδιών C: (K,S,d,T,V)

K: Το δημόσιο κλειδί του εκδότη, ο οποίος αυθεντικοποιεί τον χρήστη

S: Το υποκείμενο που αυθεντικοποιείται d: delegation bit: Δίνει δικαίωμα μεταφοράς των

συγκεκριμένων δικαιωμάτων και σε άλλα κλειδιά του ίδιου χρήστη

T: Δικαιώματα που δίνονται V: Διάρκεια ισχύος

Page 40: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

40ΠΜΣ 36 / 2006 Lecture 6

X9.68 Domain Certificates ANSI 2001:

Digital Certificates for Mobile/Wireless and High Transaction Volume Financial Systems

Χωρίζει ένα PKI σε domains Χρησιμοποιεί τοπικά ονόματα στα domains

κατ’ αναλογία με SPKI Επιβάλλει αυστηρούς συντακτικούς κανόνες

περιορίζει το μέγεθος των πιστοποιητικών και απλουστεύσει την επεξεργασία τους

Page 41: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

41ΠΜΣ 36 / 2006 Lecture 6

X.509 vs X9.68 X.509: Ένα πιστοποιητικό περιλαμβάνει:

Όνομα εκδότη (distinguished name) Σειριακός Αριθμός Όνομα κατόχου (distinguished name)

X9.68: Τα παραπάνω αντικαθίστανται από δύο πεδία:

rootName: καθορίζει τον ιδιοκτήτη του πιστοποιητικού ρίζας του domain

localName: λίστα ονομάτων που σχηματίζουν μία ιεραρχία, όπως τα σύνθετα ονόματα SDSI.

Το δεξιότερο όνομα είναι το όνομα του κατόχου Πλεονεκτήματα X9.68

Μικρότερο μέγεθος επειδή δε χρησιμοποιούνται DNs Ευκολία στη δημιουργία της αλυσίδας εμπιστοσύνης

Page 42: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

42ΠΜΣ 36 / 2006 Lecture 6

Personal PKI Δίκτυα Προσωπικών Επικοινωνιών

(Personal Area Networks – PAN) Οι χρήστες τους δεν έχουν τρόπο

Να ανταλλάξουν μυστικά συμμετρικά κλειδιά

Να προμηθευτούν δημόσια κλειδιά από μία κεντρική υποδομή PKI

Μπορεί να υλοποιηθεί μία περιορισμένη υποδομή PKI Θεωρούμε ότι ένας κόμβος λειτουργεί σαν

Personal CA O Personal CA εκδίδει πιστοποιητικά για

όλους τους χρήστες του δικτύου

Page 43: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

43ΠΜΣ 36 / 2006 Lecture 6

Προβλήματα στο Personal PKI Ανανέωση Πιστοποιητικών και Κλειδιών

Όταν παρέλθει η ημερομηνία λήξης του πιστοποιητικού αυτό πρέπει να ανανεωθεί

Ανάκληση Πιστοποιητικών Το ιδιωτικό κλειδί ενός χρήστη μπορεί να κλαπεί Το ιδιωτικό κλειδί της Personal CA μπορεί να κλαπεί Σε κάθε περίπτωση όλοι οι χρήστες του δικτύου

πρέπει να ενημερωθούν Διαχείριση εμπιστοσύνης

Η Personal CA πρέπει να είναι καθολικά έμπιστη Πρέπει να υποστηρίζεται η ανανέωση κλειδιού της

Personal CA Η συσκευή που εκτελεί χρέη Personal CA μπορεί να

κλαπεί ή να χαθεί

Page 44: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

44ΠΜΣ 36 / 2006 Lecture 6

Υλοποίηση Πρωτόκολλο ανταλλαγής δημόσιων κλειδιών για την

έκδοση πιστοποιητικών χρηστών. Απαιτεί φυσική επαφή χρήστη-Personal CA για να εισάγει

ένα αναγνωριστικό της συσκευής Η Personal CA συλλέγει όλα τα δημόσια κλειδιά-

πιστοποιητικά των χρηστών. Μόλις κάποιο λήξει ενημερώνει τον χρήστη και εκδίδει νέο αν κάτι τέτοιο απαιτείται

Ανάκληση πιστοποιητικών Μονίμως online Personal CA: OCSP Κατά περιόδους offline CA: περιοδικός διαμοιρασμός CRLs

Ανανέωση κλειδιών ρίζας Διαμοιρασμός νέου πιστοποιητικού ρίζας υπογεγραμμένο

με το παλιό κλειδί Σε περίπτωση κλοπής

χρήση πολλαπλών Personal CA Επιλογή νέας Personal CA

Page 45: ΠΜΣ  36 Ασφάλεια Υπολογιστικών Συστημάτων Lecture 6

45ΠΜΣ 36 / 2006 Lecture 6

Απαιτήσεις Το ζεύγος κλειδιών της Personal CA πρέπει να έχει

δημιουργηθεί στη συσκευή ή να έχει τοποθετηθεί με ασφάλεια στη συσκευή κατά την κατασκευή της

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

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

Η επικοινωνία που χρειάζεται για να μεταδοθεί το root certificate της Personal CA στους κόμβους του δικτύου θα προστατεύεται τουλάχιστον από ένα «ασθενές» κοινό μυστικό (π.χ. ένα password ή PIN). Η μέθοδος που θα χρησιμοποιείται για το σκοπό αυτό θα πρέπει να είναι ανθεκτική σε επιθέσεις τύπου “brute force”