Document 7927395
Download
Report
Transcript Document 7927395
Ασφάλεια Δικτύων
(Computer Security)
Τι Εννοούμε με τον Όρο Ασφάλεια
Δικτύων;
Ασφάλεια
Μόνο ο αποστολέας και ο προοριζόμενος παραλήπτης μπορούν
να διαβάσουν και να κατανοήσουν ένα μήνυμα.
Πιστοποίηση Αυθεντικότητας (authentication)
Ο αποστολέας το κρυπτογραφεί (encrypt)
Ο παραλήπτης το αποκρυπτογραφεί (decrypt).
Αποστολέας και παραλήπτης μπορούν να επιβεβαιώσουν την
ταυτότητα τους.
Ακεραιότητα Μηνύματος (message integrity)
Αποστολέας και παραλήπτης μπορούν να επιβεβαιώσουν ότι το
μήνυμα δεν αλλοιώθηκε ή ξαναστάλθηκε χωρίς να γίνει
αντιληπτό.
Κρυπτογραφία
Κρυπτογραφία είναι η «επιστήμη» η οποία ασχολείται με
την μη καταστρεπτική αλλοίωση δεδομένων με τέτοιο
τρόπο έτσι ώστε να μην μπορούν να κατανοηθούν από
οποιοδήποτε
Μη καταστρεπτική αλλοίωση: πρέπει να υπάρχει τρόπος ο
ιδιοκτήτης ή ο προοριζόμενος παραλήπτης να μπορεί να
αναπαράξει τα αρχικά δεδομένα
Ασφάλεια
Κρυπτογραφία
Μυστικό κλειδί
(π.χ. DES)
Φανερό κλειδί
(π.χ. RSA)
Message Digest
(e.g. MD5)
Υπηρεσίες Ασφάλειας
Μυστικότητα
(privacy)
Ακεραιότητα
Μηνυμάτων
Πιστοποίηση
Αυθεντικότητας
Περίληψη
Απειλές Ασφάλειας στο Διαδίκτυο
Παραδοσιακή Κρυπτογραφία
Βασικές Αρχές Κρυπτογραφίας
Αλγόριθμοι Μυστικού Κλειδιού (secrete key
encryption)
Αλγόριθμοι Φανερού Κλειδιού (public key
encryption)
Ψηφιακές Υπογραφές
Πρωτόκολλα Πιστοποίησης Αυθεντικότητας
Απειλές Ασφάλειας στο Διαδίκτυο
Packet Sniffing
Κάποιος μπορεί να χρησιμοποιήσει ένα δέκτη για να
«κρυφάκουει» όλα τα πακέτα που μεταδίδονται μέσα από μέσα
εκπομπής
Μπορεί να διαβάζει όλες τις μη κρυπτογραφημένες πληροφορίες
που μεταδίδονται
Μπορεί επίσης να αποθηκεύει ακόμα και κρυπτογραφημένες
πληροφορίες
C
A
src:B dest:A
payload
B
Απειλές Ασφάλειας στο Διαδίκτυο
IP Spoofing (παραπλάνηση)
Κάποιος μπορεί να προγραμματίσει μια εφαρμογή η οποία να
δημιουργεί πακέτα στα οποία η διεύθυνση αποστολέα να είναι
αλλαγμένη (προσποιείται ότι είναι κάποιος άλλος)
Ο παραλήπτης δεν μπορεί να ξέρε αν ο αποστολέας είναι όντως ο
ιδιοκτήτης της διεύθυνσης που αναγράφεται στην επικεφαλίδα του
πακέτου.
C
A
src:B dest:A
payload
B
Απειλές Ασφάλειας στο Διαδίκτυο
Αποστέρηση Υπηρεσιών (Denial of Service)
Αποστολή
πλημμυράς πακέτων στα οποία δεν μπορεί
να αντεπεξέλθει ο παραλήπτης
Κατανεμημένη αποστέρηση υπηρεσιών (Distributed
Denial of Service)
C
A
SYN
SYN
SYN
SYN
SYN
B
SYN
SYN
Κρυπτογραφία
ΚΑ=ΚΒ : Συμμετρικός αλγόριθμος όπου το κλειδί πρέπει
να είναι μυστικό
ΚΑ ≠ ΚΒ : Μη συμμετρικός αλγόριθμος όπου το ένα κλειδί
είναι μυστικό φανερό (δημόσιο).
Παραδοσιακή Κρυπτογραφία
Κρυπτογραφία Αντικατάστασης (substitution cipher)
Κάθε γράμμα αντικαθίσταται με κάποιο άλλο
plaintext:
abcdefghijklmnopqrstuvwxyz
ciphertext:
Παράδειγμα
mnbvcxzasdfghjklpoiuytrewq
Plaintext: bob. i love you. alice
ciphertext: nkn. s gktc wky. mgsbc
Πόσο δύσκολο είναι να σπάσει κάποιος αυτόν τον αλγόριθμο;
•Βρίσκοντας όλες τις δυνατέ περιπτώσεις
•Χρησιμοποιώντας άλλες τεχνικές
Κρυπτογραφία Μετατροπής
(Transposition Cipher)
Αλλάζει η σειρά με την οποία μπαίνουν τα γράμματα
Πώς μπορεί κάποιος να σπάσει αυτόν τον αλγόριθμο;
Βάση μιας Χρήσης (One-Time Pads)
Αυτός ο αλγόριθμος δεν μπορεί να σπάσει, αλλά όμως
δεν είναι καθόλου πρακτικός.
Αρχές Κρυπτογραφίας
Τα κρυπτογραφημένα μηνύματα πρέπει να περιέχουν
πλεονάζουσες μη αναγκαίες πληροφορίες (redundancy)
Τέτοιες πληροφορίες μπορούν να χρησιμοποιηθούν από τον
παραλήπτη για να ανιχνεύσει κατά πόσο το μήνυμα έχει τις
σωστές πληροφορίες.
Ο παραλήπτης μπορεί να χρησιμοποιήσει αλγόριθμους
επιδιόρθωσης σφαλμάτων για να διορθώσει πιθανές
παρεμβολές από διαρρήκτες.
Τα κρυπτογραφημένα μηνύματα πρέπει να έχουν τρόπο
με τον οποίο να ανιχνεύεται κατά πόσο το μήνυμα έχει
επεξεργαστεί προηγουμένως (freshness)
Δεν πρέπει να επιτρέπεται η χρήση ενός κρυπτογραφημένου
μηνύματος περισσότερες από μια φορές
Πρότυπο Κρυπτογράφησης Δεδομένων
(Data Encryption Standard DES)
Τριπλό DES
Κρυπτογράφηση.
Αποκρυπτογράφηση.
Προχωρημένο Πρότυπο Κρυπτογράφησης
(Advanced Encryption Standard).
Απαιτήσεις του νέου αλγορίθμου
Ο αλγόριθμος πρέπει να είναι συμμετρικός
Ο πλήρης σχεδιασμός του αλγόριθμου πρέπει να
είναι δημόσιος
Το μήκος των κλειδιών πρέπει να υποστηρίζει 128,
192 και 258 bits.
Θα πρέπει να μπορεί να εφαρμοστεί είτε σε υλικό
είτε σε λογισμικό.
Θα πρέπει όποιος θέλει να μπορεί να τον
χρησιμοποιήσει χωρίς διακρίσεις.
Rijndael (Joan Daemen και Vincent Rijmen).
Αλγόριθμοι Κρυπτογραφίας με
Συμμετρικό Κλειδί
Πρόβλημα: Πώς ο αποστολέας και παραλήπτης
ανταλλάσσουν το κοινό κλειδί;
Αλγόριθμοι με Φανερό (Δημόσιο) Κλειδί
(Public Key Encryption)
Υπάρχουν δύο κλειδιά (ένα μυστικό και ένα φανερό)
Ο αποστολέας χρησιμοποιεί το φανερό κλειδί για την
κρυπτογράφηση
Ο παραλήπτης χρησιμοποιεί το μυστικό κλειδί για την
αποκρυπτογράφηση
Αλγόριθμοι με Φανερό (Δημόσιο) Κλειδί
Το πρόβλημα έχει τις εξής δύο απαιτήσεις
Χρειάζονται
ώστε
δύο συναρτήσεις eΚ1( ) και dΚ2( ) έτσι
d K 2 eK 1 m m
Χρειάζονται
δυο κλειδιά Κ1 (φανερό) και Κ2 (μυστικό)
για τις συναρτήσεις eΚ1( ) και dΚ2( )
RSA:
Rivest, Shamir, Adelson algorithm
Αλγόριθμος RSA
Επιλέξτε δύο μεγάλους πρώτους αριθμούς p, q (π.χ.,
1024 bits)
Υπολογίστε τα γινόμενα n=pq και z=(p-1)(q-1)
Επιλέξτε αριθμό e (όπου e<n) έτσι ώστε να μην
υπάρχουν κοινοί παράγοντες μεταξύ e και z (e και z
πρέπει να είναι «πρώτοι» μεταξύ τους)
Επιλέξτε αριθμό d έτσι ώστε ed-1 να διαιρείται ακριβώς
από το z (δηλαδή ed mod z = 1)
Το φανερό κλειδί είναι το (n,e) και το μυστικό κλειδί είναι
το (n,d).
Κρυπτογράφηση Αποκρυπτογράφηση
RSA
Δεδομένων των κλειδιών (n,e) και (n,d).
Για την κρυπτογράφηση του μηνύματος m υπολογίζουμε
c = m e mod n (δηλαδή το υπόλοιπο της διαίρεσης me δια n)
Για να αποκρυπτογραφήσουμε το κρυπτογραφημένο
μήνυμα χρησιμοποιούμε
m = c d mod n (δηλαδή το υπόλοιπο της διαίρεσης cd δια n)
Magic!
m = (m e mod n)
d
mod n
Παράδειγμα
Ο Bob επέλεξε p =5, q= 7
Τότε n= pq= 35, z=(p-1)(q-1)= 24
Επέλεξε επίσης e= 5 (έτσι ώστε να μην διαιρεί το z)
Επέλεξε επίσης το d=29 (έτσι ώστε ed-1 να διαιρείται από
το z)
Κρυπτογράφηση του γράμματος μ:
m=12,
me= 1524832
c= me mod n = 17
Αποκρυπτογράφηση
cd= 481968572106750915091411825223072000
m= cd mod n = 12 = μ
Επισκόπηση Μηνύματος
(Message Digest)
Κρυπτογραφημένο άθροισμά ελέγχου
Μονόδρομη συνάρτηση
Συνηθισμένο άθροισμα ελέγχου το οποίο είναι κρυπτογραφημένο
έτσι ώστε ένα αλλάξει κάποιος το μήνυμα να μπορεί να ανιχνευτεί
Δεδομένου του αθροίσματος ελέγχου πρέπει να είναι αδύνατο να
υπολογίσουμε το μήνυμα που το δημιούργησε.
Δύο διαφορετικά μηνύματα δεν πρέπει να έχουν το ίδιο άθροισμα
ελέγχου
Συσχετισμός
Δεδομένου του αθροίσματος ελέγχου για κάποιο μήνυμα, εάν
μπορούμε να υπολογίσουμε ακριβώς το ίδιο άθροισμα ελέγχου,
τότε πιθανότητα το συγκεκριμένο άθροισμα ελέγχου έχει
παραχθεί από το δεδομένο μήνυμα
Secure Hash Algorithm (SHA-1)
Οι 16 λέξεις (words) αρχικοποιούν τις λέξεις Wo…W15
Οι υπόλοιπες 16 έως79, υπολογίζονται σαν συναρτήσεις των
προηγούμενων
5 προσωρινές μεταβλητές παίρνουν τιμές οι οποίες είναι συναρτήσεις
των δεδομένων
Το τελικό του αποτέλεσμα προστίθεται στα Η0…Η4
Το τελικό αποτέλεσμα Η0…Η4 για το Μi είναι το αρχικό του Μi+1
Πρωτόκολλα Πιστοποίηση
Αυθεντικότητας
Μπορεί ο Bob να εμπιστευτεί
ότι όντως μιλά με την Alice;
Πρωτόκολλα Πιστοποίηση
Αυθεντικότητας
Μπορεί ο Bob να εμπιστευτεί
ότι όντως μιλά με την Alice;
Πρωτόκολλα Πιστοποίηση
Αυθεντικότητας
I am Alice
encrypt(password)
Μπορεί ο Bob να εμπιστευτεί
ότι όντως μιλά με την Alice;
Πρωτόκολλα Πιστοποίηση
Αυθεντικότητας με Κοινό Κλειδί
R είναι ένας τυχαίος αριθμός ο οποίος θα χρησιμοποιηθεί
μόνο μια φορά.
Πρωτόκολλα Πιστοποίηση
Αυθεντικότητας με Κοινό Κλειδί
Hi, I am Alice
RB
KAB(RB), RA
RA
Hi, I am Alice, RA
RB KAB(RA),
KAB(RB)
Πρωτόκολλα Πιστοποίηση
Αυθεντικότητας με Κοινό Κλειδί
Hi, I am Alice, RT
RB, KAB(RT),
Hi, I am Alice, RB
RB2, KAB(RB),
KAB(RB)
Second Session
Ο Bob νομίζει ότι
μιλά με την Alice
Πρωτόκολλα Πιστοποίηση
Αυθεντικότητας με Κοινό Κλειδί
Hi, I am Alice
Second Session
Hi I am Bob
RA
RA
KAB(RA)
KAB(RA)
RA2
RA2
KAB(RA2)
KAB(RA2)
H Alice νομίζει ότι
μιλά με τoν Bob
Γενικοί Κανόνες Πιστοποίησης
Ταυτότητας
Αυτός που αρχίζει μια συνδιάλεξη πρέπει να είναι ο
πρώτος ο οποίος θα πρέπει να αποδείξει την ταυτότητα
του, πριν ο παραλήπτης δώσει οποιαδήποτε στοιχεία για
την δική του ταυτότητα.
Ο δύο θα πρέπει να χρησιμοποιούν δύο διαφορετικά
κλειδιά ακόμα και για αλγορίθμους κοινού κλειδιού
Οι τυχαίοι αριθμοί (challenges) που χρησιμοποιούν τα
δύο μέρη θα πρέπει να προέρχονται από διαφορετικά
σύνολα.
Το πρωτόκολλο πρέπει να είναι σχεδιασμένο να
αποφεύγει επιθέσεις από παράλληλες συνδέσεις.
Πρωτόκολλο Ανταλλαγής Κοινού
Κλειδιού
Πως ο Bob και η Alice μπορούν να συμφωνήσουν σε ένα
κοινό κλειδί;
Μπορούν να συναντηθούν και αφού επιβεβαιώσουν τις ταυτότητες
τους να συμφωνήσουν σε ένα κοινό κλειδί.
The Diffie-Hellman Key Exchange
Επιλέγουν 2 μεγάλους αριθμούς g και n όπου n είναι πρώτος ως
επίσης και ο (n-1)/2. Οι αριθμοί αυτοί είναι φανεροί
Η Alice
επιλέγει ένα
μεγάλο (512bit) αριθμό x
n, g, gx mod n
gy mod n
g y mod n g xy mod n
x
g x mod n g xy mod n
O Bob
επιλέγει ένα
μεγάλο (512bit) αριθμό y
y
H Trudy μπορεί να δει τους n, g, gx mod n, gy mod n, αλλά δεν μπορεί
να υπολογίσει το gxy mod n.
Αδυναμία Πρωτοκόλλου Ανταλλαγής
Κοινού Κλειδιού
Πως μπορεί η Trudy να σπάσει το πρωτόκολλο;
Η Trudy
επιλέγει z
Η Alice
επιλέγει x
g
z
O Bob
επιλέγει y
n, g, gx mod n
n, g, gz mod n
gz mod n
gy mod n
mod n g mod n
x
xz
g y mod n g yz mod n
z
Κέντρα Διανομής Κλειδιών (Key
Distribution Center KDC)
Η διαχείριση πολλών κλειδιών είναι δύσκολή για
πολυσύχναστες υπηρεσίες
Session Key
Η Alice και ο Bob στη συνέχεια χρησιμοποιούν το session
key KS
Πως η Trudy μπορεί να εκμεταλλευθεί το πρωτόκολλο;
Η Trudy μπορεί να αποθηκεύσει το κρυπτογραφημένο μήνυμα
(KS(.)) και μετά να το στέλνει συνέχεια (Replay Attack)
Κέντρα Διανομής Κλειδιών (Key
Distribution Center KDC)
Η διαχείριση πολλών κλειδιών είναι δύσκολή για
πολυσύχναστες υπηρεσίες
Session Key
Η Alice και ο Bob στη συνέχεια χρησιμοποιούν το session
key KS
Πως η Trudy μπορεί να εκμεταλλευθεί το πρωτόκολλο;
Η Trudy μπορεί να αποθηκεύσει το κρυπτογραφημένο μήνυμα
(KS(.)) και μετά να το στέλνει συνέχεια (Replay Attack)
Κακή Λύση: Χρήση χρονομέτρων και τυχαίων αριθμών…
Needham-Schroeder Authentication
Otway-Rees Authentication
Kerberos Authentication
Πιστοποίηση Ταυτότητας με Φανερό
Κλειδί
Πιστοποιητικά Ταυτότητας
(Authenticity Certificates)
Πρόβλημα: Πως ξέρει η Alice ότι πήρε το σωστό κλειδί
και όντως επικοινωνεί με τον Bob;
ET( Message )
Bob
Here is the key ET
Trudy
Hi, I am Alice, send me EB
Alice
EB( Message )
Πιστοποιητικά Ταυτότητας (Αυθεντικότητας)
(Authenticity Certificates)
Εάν ο Bob θέλει να είναι σίγουρος ότι όσοι θέλουν να επικοινωνήσουν
μαζί του, θα επικοινωνούν μόνο μαζί του, πάει σε μια Πιστοποιούσα
Αρχή (Certification Authority) η οποία αφού εξακριβώσει την
ταυτότητα του Bob εκδίδει το πιο κάτω πιστοποιητικό.
Η Πιστοποιούσα Αρχή (Certification Authority CA) χρησιμοποιεί το
μυστικό της κλειδί για να δημιουργήσει το SHA-1
Πιστοποιητικά Αυθεντικότητας
(Authenticity Certificates)
ET( Message )
Bob
Here is the key ET
Trudy
Alice
Hi, I am Alice, send me your
certificate with EB
EB( Message )
Εάν η Trudy δοκιμάσει να αντικαταστήσει το κλειδί του Bob στο
πιστοποιητικό, τότε η Alice μπορεί εύκολα να το ανιχνεύσει!
Παίρνοντας το φανερό κλειδί της πιστοποιούσας αρχής, ελέγχει το SHA-1,
το οποίο δεν θα ταιριάζει με αυτό που θα άρμοζε στο δεδομένο
πιστοποιητικό.
Η Trudy δεν έχει το μυστικό κλειδί της πιστοποιούσας αρχής έτσι δεν μπορεί
να αλλάξει το SHA-1 να αντικατοπτρίζει το πιστοποιητικό του Bob με το δικό
της κλειδί
Πιστοποιητικά Αυθεντικότητας
(Authenticity Certificates)
Εάν κάποιος θέλει να πιστοποιήσει ότι έχει κάποια ιδιότητα
(π.χ., είναι μεγαλύτερος από 18 ετών).
Πάει σε μια αρχή η οποία του εκδίδει ένα πιστοποιητικό το οποίο λέει
πως το φανερό αυτό κλειδί ανήκει σε κάποιον ο οποίος είναι πέραν
των 18 ετών.
Here is my certificate
EA(Random Number R)
WWW
User A
R=DA(EA(R ))
Με αυτό τον τρόπο ο
εξυπηρετητής ξέρει πως ο Α είναι
κάτοχος του πιστοποιητικού
Υποδομή Πιστοποίησης Φανερών
Κλειδιών
Ιεραρχική Υποδομή
Κάθε πιστοποιούσα αρχή έχει πιστοποιητικό από την αμέσως
προηγούμενη αρχή.
Ποιον εμπιστεύεστε για το Root;
Ψηφιακές Υπογραφές με Κοινό Κλειδί
Big Brother
Σε κάθε περίπτωση ο Bob αποθηκεύει το μήνυμα P καθώς και το
κρυπτογράφημα KBB(A, t, P).
Ένα υπάρξει αμφισβήτηση ότι όντως το μήνυμα στάλθηκε από την
Alice, τότε ο Bob
Παρουσιάζει το κρυπτογραφημένο μήνυμα ΚBB(A, t, P)
Καλεί τον BB (τον οποίο όλοι εμπιστεύονται) για να αποκρυπτογραφήσει το
μήνυμα
Πως αποδεικνύεται πως το μήνυμα στάλθηκε από την Alice;
Ψηφιακές Υπογραφές με Φανερό Κλειδί
Σε κάθε περίπτωση ο Bob αποθηκεύει το μήνυμα P καθώς και το
κρυπτογράφημα DΑ(P).
Ένα υπάρξει αμφισβήτηση ότι όντως το μήνυμα στάλθηκε από την
Alice, τότε ο Bob
Παρουσιάζει το κρυπτογραφημένο μήνυμα DA(P)
Χρησιμοποιεί το φανερό κλειδί της Alice για να αποκρυπτογραφήσει το
μήνυμα και να δείξει ότι όντως το μήνυμα στάλθηκε από την Alice.
Πως αποδεικνύεται πως το μήνυμα στάλθηκε από την Alice;
Firewalls
Τι συμβαίνει στην περίπτωση ασύρματων δικτύων;