Ασφάλεια ικτύων (Computer Security) Τι Εννοούµε µε τον Όρο Ασφάλεια ικτύων; Ασφάλεια Μόνο ο αποστολέας και ο προοριζόµενος παραλήπτης µπορούν να διαβάσουν και να κατανοήσουν ένα µήνυµα. Ο αποστολέας το κρυπτογραφεί (encrypt) Ο παραλήπτης το αποκρυπτογραφεί (decrypt). Πιστοποίηση Αυθεντικότητας (authentication) Αποστολέας και παραλήπτης µπορούν να επιβεβαιώσουν την ταυτότητα τους. Ακεραιότητα Μηνύµατος (message integrity) Αποστολέας και παραλήπτης µπορούν να επιβεβαιώσουν ότι το µήνυµα δεν αλλοιώθηκε ή ξαναστάλθηκε χωρίς να γίνει αντιληπτό. 1
Κρυπτογραφία Κρυπτογραφία είναι η «επιστήµη» η οποία ασχολείται µε την µη καταστρεπτική αλλοίωση δεδοµένων µε τέτοιο τρόπο έτσι ώστε να µην µπορούν να κατανοηθούν από οποιοδήποτε Μη καταστρεπτική αλλοίωση: πρέπει να υπάρχει τρόπος ο ιδιοκτήτης ή ο προοριζόµενος παραλήπτης να µπορεί να αναπαράξει τα αρχικά δεδοµένα Κρυπτογραφία Ασφάλεια Υπηρεσίες Ασφάλειας Μυστικό κλειδί (π.χ. DES) Message Digest (e.g. MD5) Φανερό κλειδί (π.χ. RSA) Μυστικότητα (privacy) Πιστοποίηση Αυθεντικότητας Ακεραιότητα Μηνυµάτων Περίληψη Απειλές Ασφάλειας στο ιαδίκτυο Παραδοσιακή Κρυπτογραφία Βασικές Αρχές Κρυπτογραφίας Αλγόριθµοι Μυστικού Κλειδιού (secrete key encryption) Αλγόριθµοι Φανερού Κλειδιού (public key encryption) Ψηφιακές Υπογραφές Πρωτόκολλα Πιστοποίησης Αυθεντικότητας 2
Απειλές Ασφάλειας στο ιαδίκτυο Packet Sniffing Κάποιος µπορεί να χρησιµοποιήσει ένα δέκτη για να «κρυφάκουει» όλα τα πακέτα που µεταδίδονται µέσα από µέσα εκποµπής Μπορεί να διαβάζει όλες τις µη κρυπτογραφηµένες πληροφορίες που µεταδίδονται Μπορεί επίσης να αποθηκεύει ακόµα και κρυπτογραφηµένες πληροφορίες A C src:b dest:a payload B Απειλές Ασφάλειας στο ιαδίκτυο IP Spoofing (παραπλάνηση) Κάποιος µπορεί να προγραµµατίσει µια εφαρµογή η οποία να δηµιουργεί πακέτα στα οποία η διεύθυνση αποστολέα να είναι αλλαγµένη (προσποιείται ότι είναι κάποιος άλλος) Ο παραλήπτης δεν µπορεί να ξέρε αν ο αποστολέας είναι όντως ο ιδιοκτήτης της διεύθυνσης που αναγράφεται στην επικεφαλίδα του πακέτου. A C src:b dest:a payload B 3
Απειλές Ασφάλειας στο ιαδίκτυο Αποστέρηση Υπηρεσιών (Denial of Service) Αποστολή πληµµυράς πακέτων στα οποία δεν µπορεί να αντεπεξέλθει ο παραλήπτης Κατανεµηµένη αποστέρηση υπηρεσιών (Distributed Denial of Service) A C SYN SYN SYN SYN SYN SYN SYN B Κρυπτογραφία Κ Α =Κ Β : Συµµετρικός αλγόριθµος όπου το κλειδί πρέπει να είναι µυστικό Κ Α Κ Β : Μη συµµετρικός αλγόριθµος όπου το ένα κλειδί είναι µυστικό φανερό (δηµόσιο). 4
Παραδοσιακή Κρυπτογραφία Κρυπτογραφία Αντικατάστασης (substitution cipher) Κάθε γράµµα αντικαθίσταται µε κάποιο άλλο plaintext: abcdefghijklmnopqrstuvwxyz ciphertext: mnbvcxzasdfghjklpoiuytrewq Παράδειγµα Plaintext: bob. i love you. alice ciphertext: nkn. s gktc wky. mgsbc Πόσο δύσκολο είναι να σπάσει κάποιος αυτόν τον αλγόριθµο; Βρίσκοντας όλες τις δυνατέ περιπτώσεις Χρησιµοποιώντας άλλες τεχνικές Κρυπτογραφία Μετατροπής (Transposition Cipher) Αλλάζει η σειρά µε την οποία µπαίνουν τα γράµµατα Πώς µπορεί κάποιος να σπάσει αυτόν τον αλγόριθµο; 5
Βάση µιας Χρήσης (One-Time Pads) Αυτός ο αλγόριθµος δεν µπορεί να σπάσει, αλλά όµως δεν είναι καθόλου πρακτικός. Αρχές Κρυπτογραφίας Τα κρυπτογραφηµένα µηνύµατα πρέπει να περιέχουν πλεονάζουσες µη αναγκαίες πληροφορίες (redundancy) Τέτοιες πληροφορίες µπορούν να χρησιµοποιηθούν από τον παραλήπτη για να ανιχνεύσει κατά πόσο το µήνυµα έχει τις σωστές πληροφορίες. Ο παραλήπτης µπορεί να χρησιµοποιήσει αλγόριθµους επιδιόρθωσης σφαλµάτων για να διορθώσει πιθανές παρεµβολές από διαρρήκτες. Τα κρυπτογραφηµένα µηνύµατα πρέπει να έχουν τρόπο µε τον οποίο να ανιχνεύεται κατά πόσο το µήνυµα έχει επεξεργαστεί προηγουµένως (freshness) εν πρέπει να επιτρέπεται η χρήση ενός κρυπτογραφηµένου µηνύµατος περισσότερες από µια φορές 6
Πρότυπο Κρυπτογράφησης εδοµένων (Data Encryption Standard DES) Τριπλό DES Κρυπτογράφηση. Αποκρυπτογράφηση. 7
Προχωρηµένο Πρότυπο Κρυπτογράφησης (Advanced Encryption Standard). Απαιτήσεις του νέου αλγορίθµου Ο αλγόριθµος πρέπει να είναι συµµετρικός Ο πλήρης σχεδιασµός του αλγόριθµου πρέπει να είναι δηµόσιος Το µήκος των κλειδιών πρέπει να υποστηρίζει 128, 192 και 258 bits. Θα πρέπει να µπορεί να εφαρµοστεί είτε σε υλικό είτε σε λογισµικό. Θα πρέπει όποιος θέλει να µπορεί να τον χρησιµοποιήσει χωρίς διακρίσεις. Rijndael (Joan Daemen και Vincent Rijmen). Αλγόριθµοι Κρυπτογραφίας µε Συµµετρικό Κλειδί Πρόβληµα: Πώς ο αποστολέας και παραλήπτης ανταλλάσσουν το κοινό κλειδί; 8
Αλγόριθµοι µε Φανερό ( ηµόσιο) Κλειδί (Public Key Encryption) Υπάρχουν δύο κλειδιά (ένα µυστικό και ένα φανερό) Ο αποστολέας χρησιµοποιεί το φανερό κλειδί για την κρυπτογράφηση Ο παραλήπτης χρησιµοποιεί το µυστικό κλειδί για την αποκρυπτογράφηση Αλγόριθµοι µε Φανερό ( ηµόσιο) Κλειδί Το πρόβληµα έχει τις εξής δύο απαιτήσεις Χρειάζονται δύο συναρτήσεις e Κ1 ( ) και d Κ2 ( ) έτσι ώστε ( K ( )) d e m = m K2 1 Χρειάζονται δυο κλειδιά Κ1 (φανερό) και Κ2 (µυστικό) για τις συναρτήσεις e Κ1 ( ) και d Κ2 ( ) RSA: Rivest, Shamir, Adelson algorithm 9
Αλγόριθµος 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 (δηλαδή το υπόλοιπο της διαίρεσης m e δια n) Για να αποκρυπτογραφήσουµε το κρυπτογραφηµένο µήνυµα χρησιµοποιούµε m = c d mod n (δηλαδή το υπόλοιπο της διαίρεσης c d δια n) Magic! m = (m e d mod n) mod n 10
Παράδειγµα Ο Bob επέλεξε p =5, q= 7 Τότε n= pq= 35, z=(p-1)(q-1)= 24 Επέλεξε επίσης e= 5 (έτσι ώστε να µην διαιρεί το z) Επέλεξε επίσης το d=29 (έτσι ώστε ed-1 να διαιρείται από το z) Κρυπτογράφηση του γράµµατος µ: m=12, m e = 1524832 c= m e mod n = 17 Αποκρυπτογράφηση c d = 481968572106750915091411825223072000 m= c d mod n = 12 = µ Επισκόπηση Μηνύµατος (Message Digest) Κρυπτογραφηµένο άθροισµά ελέγχου Συνηθισµένο άθροισµα ελέγχου το οποίο είναι κρυπτογραφηµένο έτσι ώστε ένα αλλάξει κάποιος το µήνυµα να µπορεί να ανιχνευτεί Μονόδροµη συνάρτηση εδοµένου του αθροίσµατος ελέγχου πρέπει να είναι αδύνατο να υπολογίσουµε το µήνυµα που το δηµιούργησε. ύο διαφορετικά µηνύµατα δεν πρέπει να έχουν το ίδιο άθροισµα ελέγχου Συσχετισµός εδοµένου του αθροίσµατος ελέγχου για κάποιο µήνυµα, εάν µπορούµε να υπολογίσουµε ακριβώς το ίδιο άθροισµα ελέγχου, τότε πιθανότητα το συγκεκριµένο άθροισµα ελέγχου έχει παραχθεί από το δεδοµένο µήνυµα 11
Secure Hash Algorithm (SHA-1) Οι 16 λέξεις (words) αρχικοποιούν τις λέξεις W o W 15 Οι υπόλοιπες 16 έως79, υπολογίζονται σαν συναρτήσεις των προηγούµενων 5 προσωρινές µεταβλητές παίρνουν τιµές οι οποίες είναι συναρτήσεις των δεδοµένων Το τελικό του αποτέλεσµα προστίθεται στα Η 0 Η 4 Το τελικό αποτέλεσµα Η 0 Η 4 για το Μ i είναι το αρχικό του Μ i+1 Πρωτόκολλα Πιστοποίηση Αυθεντικότητας Μπορεί ο Bob να εµπιστευτεί ότι όντως µιλά µε την Alice; 12
Πρωτόκολλα Πιστοποίηση Αυθεντικότητας Μπορεί ο Bob να εµπιστευτεί ότι όντως µιλά µε την Alice; Πρωτόκολλα Πιστοποίηση Αυθεντικότητας I am Alice encrypt(password) Μπορεί ο Bob να εµπιστευτεί ότι όντως µιλά µε την Alice; 13
Πρωτόκολλα Πιστοποίηση Αυθεντικότητας µε Κοινό Κλειδί R είναι ένας τυχαίος αριθµός ο οποίος θα χρησιµοποιηθεί µόνο µια φορά. Πρωτόκολλα Πιστοποίηση Αυθεντικότητας µε Κοινό Κλειδί Hi, I am Alice R B K AB (R B ), R A R A Hi, I am Alice, R A R B K AB (R A ), K AB (R B ) 14
Πρωτόκολλα Πιστοποίηση Αυθεντικότητας µε Κοινό Κλειδί Hi, I am Alice, R T R B,K AB (R T ), Hi, I am Alice, R B R B2, K AB (R B ), K AB (R B ) Second Session Ο Bob νοµίζει ότι µιλά µε την Alice Πρωτόκολλα Πιστοποίηση Αυθεντικότητας µε Κοινό Κλειδί Hi, I am Alice Hi I am Bob Second Session R A R A K AB (R A ) K AB (R A ) R A2 R A2 K AB (R A2 ) H Alice νοµίζει ότι µιλά µε τoν Bob K AB (R A2 ) 15
Γενικοί Κανόνες Πιστοποίησης Ταυτότητας Αυτός που αρχίζει µια συνδιάλεξη πρέπει να είναι ο πρώτος ο οποίος θα πρέπει να αποδείξει την ταυτότητα του, πριν ο παραλήπτης δώσει οποιαδήποτε στοιχεία για την δική του ταυτότητα. Ο δύο θα πρέπει να χρησιµοποιούν δύο διαφορετικά κλειδιά ακόµα και για αλγορίθµους κοινού κλειδιού Οι τυχαίοι αριθµοί (challenges) που χρησιµοποιούν τα δύο µέρη θα πρέπει να προέρχονται από διαφορετικά σύνολα. Το πρωτόκολλο πρέπει να είναι σχεδιασµένο να αποφεύγει επιθέσεις από παράλληλες συνδέσεις. Πρωτόκολλο Ανταλλαγής Κοινού Κλειδιού Πως ο Bob και η Alice µπορούν να συµφωνήσουν σε ένα κοινό κλειδί; Μπορούν να συναντηθούν και αφού επιβεβαιώσουν τις ταυτότητες τους να συµφωνήσουν σε ένα κοινό κλειδί. The Diffie-Hellman Key Exchange Επιλέγουν 2 µεγάλους αριθµούς g και n όπου n είναι πρώτος ως επίσης και ο (n-1)/2. Οι αριθµοί αυτοί είναι φανεροί Η Alice επιλέγει ένα µεγάλο (512- bit) αριθµό x n, g, g x mod n g y mod n y x xy x ( g mod n) = g mod n ( mod ) y xy g n = g mod n O Bob επιλέγει ένα µεγάλο (512- bit) αριθµό y H Trudy µπορεί να δει τους n, g, g x mod n, g y mod n, αλλά δεν µπορεί να υπολογίσει το g xy mod n. 16
Αδυναµία Πρωτοκόλλου Ανταλλαγής Κοινού Κλειδιού Πως µπορεί η Trudy να σπάσει το πρωτόκολλο; Η Alice επιλέγει x n, g, g x mod n g z mod n Η Trudy επιλέγει z n, g, g z mod n g y mod n O Bob επιλέγει y z x xz y ( g mod n) = g mod n ( mod ) z yz g n = g mod n Κέντρα ιανοµής Κλειδιών (Key Distribution Center KDC) Η διαχείριση πολλών κλειδιών είναι δύσκολή για πολυσύχναστες υπηρεσίες Session Key Η Alice και ο Bob στη συνέχεια χρησιµοποιούν το session key K S Πως η Trudy µπορεί να εκµεταλλευθεί το πρωτόκολλο; Η Trudy µπορεί να αποθηκεύσει το κρυπτογραφηµένο µήνυµα (K S (.)) και µετά να το στέλνει συνέχεια (Replay Attack) 17
Κέντρα ιανοµής Κλειδιών (Key Distribution Center KDC) Η διαχείριση πολλών κλειδιών είναι δύσκολή για πολυσύχναστες υπηρεσίες Session Key Η Alice και ο Bob στη συνέχεια χρησιµοποιούν το session key K S Πως η Trudy µπορεί να εκµεταλλευθεί το πρωτόκολλο; Η Trudy µπορεί να αποθηκεύσει το κρυπτογραφηµένο µήνυµα (K S (.)) και µετά να το στέλνει συνέχεια (Replay Attack) Κακή Λύση: Χρήση χρονοµέτρων και τυχαίων αριθµών Needham-Schroeder Authentication 18
Otway-Rees Authentication Kerberos Authentication 19
Πιστοποίηση Ταυτότητας µε Φανερό Κλειδί Πιστοποιητικά Ταυτότητας (Authenticity Certificates) Πρόβληµα: Πως ξέρει η Alice ότι πήρε το σωστό κλειδί και όντως επικοινωνεί µε τον Bob; Hi, I am Alice, send me E B Alice Here is the key E T Trudy Bob E T ( Message ) E B ( Message ) 20
Πιστοποιητικά Ταυτότητας (Αυθεντικότητας) (Authenticity Certificates) Εάν ο Bob θέλει να είναι σίγουρος ότι όσοι θέλουν να επικοινωνήσουν µαζί του, θα επικοινωνούν µόνο µαζί του, πάει σε µια Πιστοποιούσα Αρχή (Certification Authority) η οποία αφού εξακριβώσει την ταυτότητα του Bob εκδίδει το πιο κάτω πιστοποιητικό. Η Πιστοποιούσα Αρχή (Certification Authority CA) χρησιµοποιεί το µυστικό της κλειδί για να δηµιουργήσει το SHA-1 Πιστοποιητικά Αυθεντικότητας (Authenticity Certificates) Hi, I am Alice, send me your certificate with E B Alice Here is the key E T Trudy Bob E T ( Message ) E B ( Message ) Εάν η Trudy δοκιµάσει να αντικαταστήσει το κλειδί του Bob στο πιστοποιητικό, τότε η Alice µπορεί εύκολα να το ανιχνεύσει! Παίρνοντας το φανερό κλειδί της πιστοποιούσας αρχής, ελέγχει το SHA-1, το οποίο δεν θα ταιριάζει µε αυτό που θα άρµοζε στο δεδοµένο πιστοποιητικό. Η Trudy δεν έχει το µυστικό κλειδί της πιστοποιούσας αρχής έτσι δεν µπορεί να αλλάξει το SHA-1 να αντικατοπτρίζει το πιστοποιητικό του Bob µε το δικό της κλειδί 21
Πιστοποιητικά Αυθεντικότητας (Authenticity Certificates) Εάν κάποιος θέλει να πιστοποιήσει ότι έχει κάποια ιδιότητα (π.χ., είναι µεγαλύτερος από 18 ετών). Πάει σε µια αρχή η οποία του εκδίδει ένα πιστοποιητικό το οποίο λέει πως το φανερό αυτό κλειδί ανήκει σε κάποιον ο οποίος είναι πέραν των 18 ετών. Here is my certificate User A E A (Random Number R) WWW R=D A (E A (R )) Με αυτό τον τρόπο ο εξυπηρετητής ξέρει πως ο Α είναι κάτοχος του πιστοποιητικού Υποδοµή Πιστοποίησης Φανερών Κλειδιών Ιεραρχική Υποδοµή Κάθε πιστοποιούσα αρχή έχει πιστοποιητικό από την αµέσως προηγούµενη αρχή. Ποιον εµπιστεύεστε για το Root; 22
Ψηφιακές Υπογραφές µε Κοινό Κλειδί Big Brother Σε κάθε περίπτωση ο Bob αποθηκεύει το µήνυµα P καθώς και το κρυπτογράφηµα K BB (A, t, P). Ένα υπάρξει αµφισβήτηση ότι όντως το µήνυµα στάλθηκε από την Alice, τότε ο Bob Παρουσιάζει το κρυπτογραφηµένο µήνυµα Κ BB (A, t, P) Καλεί τον BB (τον οποίο όλοι εµπιστεύονται) για να αποκρυπτογραφήσει το µήνυµα Πως αποδεικνύεται πως το µήνυµα στάλθηκε από την Alice; Ψηφιακές Υπογραφές µε Φανερό Κλειδί Σε κάθε περίπτωση ο Bob αποθηκεύει το µήνυµα P καθώς και το κρυπτογράφηµα D Α (P). Ένα υπάρξει αµφισβήτηση ότι όντως το µήνυµα στάλθηκε από την Alice, τότε ο Bob Παρουσιάζει το κρυπτογραφηµένο µήνυµα D A (P) Χρησιµοποιεί το φανερό κλειδί της Alice για να αποκρυπτογραφήσει το µήνυµα και να δείξει ότι όντως το µήνυµα στάλθηκε από την Alice. Πως αποδεικνύεται πως το µήνυµα στάλθηκε από την Alice; 23
Firewalls Τι συµβαίνει στην περίπτωση ασύρµατων δικτύων; 24