Download - Ασφάλεια Δικτύων ( Computer Security )

Transcript
Page 1: Ασφάλεια Δικτύων ( Computer Security )

Ασφάλεια Δικτύων (Computer Security)

Page 2: Ασφάλεια Δικτύων ( Computer Security )

Τι Εννοούμε με τον Όρο Ασφάλεια Δικτύων;

Ασφάλεια Μόνο ο αποστολέας και ο προοριζόμενος παραλήπτης μπορούν

να διαβάσουν και να κατανοήσουν ένα μήνυμα. Ο αποστολέας το κρυπτογραφεί (encrypt) Ο παραλήπτης το αποκρυπτογραφεί (decrypt).

Πιστοποίηση Αυθεντικότητας (authentication) Αποστολέας και παραλήπτης μπορούν να επιβεβαιώσουν την

ταυτότητα τους.

Ακεραιότητα Μηνύματος (message integrity) Αποστολέας και παραλήπτης μπορούν να επιβεβαιώσουν ότι το

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

Page 3: Ασφάλεια Δικτύων ( Computer Security )

Κρυπτογραφία

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

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

Ασφάλεια

Ακεραιότητα Μηνυμάτων

Κρυπτογραφία Υπηρεσίες Ασφάλειας

Μυστικό κλειδί (π.χ. DES)

Φανερό κλειδί (π.χ. RSA)

Message Digest (e.g. MD5)

Μυστικότητα (privacy)

Πιστοποίηση Αυθεντικότητας

Page 4: Ασφάλεια Δικτύων ( Computer Security )

Περίληψη

Απειλές Ασφάλειας στο Διαδίκτυο Παραδοσιακή Κρυπτογραφία Βασικές Αρχές Κρυπτογραφίας Αλγόριθμοι Μυστικού Κλειδιού (secrete key

encryption) Αλγόριθμοι Φανερού Κλειδιού (public key

encryption) Ψηφιακές Υπογραφές Πρωτόκολλα Πιστοποίησης Αυθεντικότητας

Page 5: Ασφάλεια Δικτύων ( Computer Security )

Απειλές Ασφάλειας στο Διαδίκτυο

Packet Sniffing Κάποιος μπορεί να χρησιμοποιήσει ένα δέκτη για να

«κρυφάκουει» όλα τα πακέτα που μεταδίδονται μέσα από μέσα εκπομπής

Μπορεί να διαβάζει όλες τις μη κρυπτογραφημένες πληροφορίες που μεταδίδονται

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

A

B

C

src:B dest:A payload

Page 6: Ασφάλεια Δικτύων ( Computer Security )

Απειλές Ασφάλειας στο Διαδίκτυο

IP Spoofing (παραπλάνηση) Κάποιος μπορεί να προγραμματίσει μια εφαρμογή η οποία να

δημιουργεί πακέτα στα οποία η διεύθυνση αποστολέα να είναι αλλαγμένη (προσποιείται ότι είναι κάποιος άλλος)

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

A

B

C

src:B dest:A payload

Page 7: Ασφάλεια Δικτύων ( Computer Security )

Απειλές Ασφάλειας στο Διαδίκτυο

Αποστέρηση Υπηρεσιών (Denial of Service) Αποστολή πλημμυράς πακέτων στα οποία δεν μπορεί

να αντεπεξέλθει ο παραλήπτης Κατανεμημένη αποστέρηση υπηρεσιών (Distributed

Denial of Service)

A

B

C

SYN

SYNSYNSYN

SYN

SYN

SYN

Page 8: Ασφάλεια Δικτύων ( Computer Security )

Κρυπτογραφία

ΚΑ=ΚΒ : Συμμετρικός αλγόριθμος όπου το κλειδί πρέπει να είναι μυστικό ΚΑ ≠ ΚΒ : Μη συμμετρικός αλγόριθμος όπου το ένα κλειδί είναι μυστικό φανερό (δημόσιο).

Page 9: Ασφάλεια Δικτύων ( Computer Security )

Παραδοσιακή Κρυπτογραφία

Κρυπτογραφία Αντικατάστασης (substitution cipher) Κάθε γράμμα αντικαθίσταται με κάποιο άλλο

plaintext: abcdefghijklmnopqrstuvwxyz

ciphertext: mnbvcxzasdfghjklpoiuytrewq

Plaintext: bob. i love you. aliceciphertext: nkn. s gktc wky. mgsbc

Παράδειγμα

Πόσο δύσκολο είναι να σπάσει κάποιος αυτόν τον αλγόριθμο;•Βρίσκοντας όλες τις δυνατέ περιπτώσεις•Χρησιμοποιώντας άλλες τεχνικές

Page 10: Ασφάλεια Δικτύων ( Computer Security )

Κρυπτογραφία Μετατροπής (Transposition Cipher)

Αλλάζει η σειρά με την οποία μπαίνουν τα γράμματα

Πώς μπορεί κάποιος να σπάσει αυτόν τον αλγόριθμο;

Page 11: Ασφάλεια Δικτύων ( Computer Security )

Βάση μιας Χρήσης (One-Time Pads)

Αυτός ο αλγόριθμος δεν μπορεί να σπάσει, αλλά όμως δεν είναι καθόλου πρακτικός.

Page 12: Ασφάλεια Δικτύων ( Computer Security )

Αρχές Κρυπτογραφίας

Τα κρυπτογραφημένα μηνύματα πρέπει να περιέχουν πλεονάζουσες μη αναγκαίες πληροφορίες (redundancy) Τέτοιες πληροφορίες μπορούν να χρησιμοποιηθούν από τον

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

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

Τα κρυπτογραφημένα μηνύματα πρέπει να έχουν τρόπο με τον οποίο να ανιχνεύεται κατά πόσο το μήνυμα έχει επεξεργαστεί προηγουμένως (freshness) Δεν πρέπει να επιτρέπεται η χρήση ενός κρυπτογραφημένου

μηνύματος περισσότερες από μια φορές

Page 13: Ασφάλεια Δικτύων ( Computer Security )

Πρότυπο Κρυπτογράφησης Δεδομένων (Data Encryption Standard DES)

Page 14: Ασφάλεια Δικτύων ( Computer Security )

Τριπλό DES

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

Page 15: Ασφάλεια Δικτύων ( Computer Security )

Προχωρημένο Πρότυπο Κρυπτογράφησης (Advanced Encryption Standard).

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

είναι δημόσιος Το μήκος των κλειδιών πρέπει να υποστηρίζει 128,

192 και 258 bits. Θα πρέπει να μπορεί να εφαρμοστεί είτε σε υλικό

είτε σε λογισμικό. Θα πρέπει όποιος θέλει να μπορεί να τον

χρησιμοποιήσει χωρίς διακρίσεις. Rijndael (Joan Daemen και Vincent Rijmen).

Page 16: Ασφάλεια Δικτύων ( Computer Security )

Αλγόριθμοι Κρυπτογραφίας με Συμμετρικό Κλειδί

Πρόβλημα: Πώς ο αποστολέας και παραλήπτης ανταλλάσσουν το κοινό κλειδί;

Page 17: Ασφάλεια Δικτύων ( Computer Security )

Αλγόριθμοι με Φανερό (Δημόσιο) Κλειδί (Public Key Encryption)

Υπάρχουν δύο κλειδιά (ένα μυστικό και ένα φανερό) Ο αποστολέας χρησιμοποιεί το φανερό κλειδί για την

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

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

Page 18: Ασφάλεια Δικτύων ( Computer Security )

Αλγόριθμοι με Φανερό (Δημόσιο) Κλειδί

Το πρόβλημα έχει τις εξής δύο απαιτήσεις Χρειάζονται δύο συναρτήσεις eΚ1( ) και dΚ2( ) έτσι

ώστε

Χρειάζονται δυο κλειδιά Κ1 (φανερό) και Κ2 (μυστικό) για τις συναρτήσεις eΚ1( ) και dΚ2( )

RSA: Rivest, Shamir, Adelson algorithm

2 1K Kd e m m

Page 19: Ασφάλεια Δικτύων ( Computer Security )

Αλγόριθμος 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).

Page 20: Ασφάλεια Δικτύων ( Computer Security )

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

Δεδομένων των κλειδιών (n,e) και (n,d). Για την κρυπτογράφηση του μηνύματος m υπολογίζουμε

Για να αποκρυπτογραφήσουμε το κρυπτογραφημένο μήνυμα χρησιμοποιούμε

c = m mod n

e (δηλαδή το υπόλοιπο της διαίρεσης me δια n)

m = c mod n

d (δηλαδή το υπόλοιπο της διαίρεσης cd δια n)

m = (m mod n)

e mod n

dMagic!

Page 21: Ασφάλεια Δικτύων ( Computer Security )

Παράδειγμα

Ο 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 = μ

Page 22: Ασφάλεια Δικτύων ( Computer Security )

Επισκόπηση Μηνύματος (Message Digest)

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

έτσι ώστε ένα αλλάξει κάποιος το μήνυμα να μπορεί να ανιχνευτεί

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

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

ελέγχου

Συσχετισμός Δεδομένου του αθροίσματος ελέγχου για κάποιο μήνυμα, εάν

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

Page 23: Ασφάλεια Δικτύων ( Computer Security )

Secure Hash Algorithm (SHA-1)

Οι 16 λέξεις (words) αρχικοποιούν τις λέξεις Wo…W15

Οι υπόλοιπες 16 έως79, υπολογίζονται σαν συναρτήσεις των προηγούμενων

5 προσωρινές μεταβλητές παίρνουν τιμές οι οποίες είναι συναρτήσεις των δεδομένων

Το τελικό του αποτέλεσμα προστίθεται στα Η0…Η4

Το τελικό αποτέλεσμα Η0…Η4 για το Μi είναι το αρχικό του Μi+1

Page 24: Ασφάλεια Δικτύων ( Computer Security )

Πρωτόκολλα Πιστοποίηση Αυθεντικότητας

Μπορεί ο Bob να εμπιστευτεί ότι όντως μιλά με την Alice;

Page 25: Ασφάλεια Δικτύων ( Computer Security )

Πρωτόκολλα Πιστοποίηση Αυθεντικότητας

Μπορεί ο Bob να εμπιστευτεί ότι όντως μιλά με την Alice;

Page 26: Ασφάλεια Δικτύων ( Computer Security )

Πρωτόκολλα Πιστοποίηση Αυθεντικότητας

Μπορεί ο Bob να εμπιστευτεί ότι όντως μιλά με την Alice;

I am Aliceencrypt(password

)

Page 27: Ασφάλεια Δικτύων ( Computer Security )

Πρωτόκολλα Πιστοποίηση Αυθεντικότητας με Κοινό Κλειδί

R είναι ένας τυχαίος αριθμός ο οποίος θα χρησιμοποιηθεί μόνο μια φορά.

Page 28: Ασφάλεια Δικτύων ( Computer Security )

Πρωτόκολλα Πιστοποίηση Αυθεντικότητας με Κοινό Κλειδί

Hi, I am Alice

RB

KAB(RB), RA

RA

Hi, I am Alice, RA

RB KAB(RA),

KAB(RB)

Page 29: Ασφάλεια Δικτύων ( Computer Security )

Πρωτόκολλα Πιστοποίηση Αυθεντικότητας με Κοινό Κλειδί

Hi, I am Alice, RT

RB, KAB(RT),

Hi, I am Alice, RB

RB2, KAB(RB),

KAB(RB)

Second Session

Ο Bob νομίζει ότι μιλά με την Alice

Page 30: Ασφάλεια Δικτύων ( Computer Security )

Πρωτόκολλα Πιστοποίηση Αυθεντικότητας με Κοινό Κλειδί

Hi, I am Alice

RA

RA

Hi I am Bob

KAB(RA)

Second Session

H Alice νομίζει ότι μιλά με τoν Bob

KAB(RA)

RA2

RA2

KAB(RA2)

KAB(RA2)

Page 31: Ασφάλεια Δικτύων ( Computer Security )

Γενικοί Κανόνες Πιστοποίησης Ταυτότητας

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

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

Οι τυχαίοι αριθμοί (challenges) που χρησιμοποιούν τα δύο μέρη θα πρέπει να προέρχονται από διαφορετικά σύνολα.

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

Page 32: Ασφάλεια Δικτύων ( Computer Security )

Πρωτόκολλο Ανταλλαγής Κοινού Κλειδιού

Πως ο Bob και η Alice μπορούν να συμφωνήσουν σε ένα κοινό κλειδί; Μπορούν να συναντηθούν και αφού επιβεβαιώσουν τις ταυτότητες

τους να συμφωνήσουν σε ένα κοινό κλειδί. The Diffie-Hellman Key Exchange

n, g, gx mod n

gy mod n

Η Alice επιλέγει ένα μεγάλο (512-bit) αριθμό x

O Bob επιλέγει ένα μεγάλο (512-bit) αριθμό y

Επιλέγουν 2 μεγάλους αριθμούς g και n όπου n είναι πρώτος ως επίσης και ο (n-1)/2. Οι αριθμοί αυτοί είναι φανεροί

mod modxy xyg n g n mod mod

yx xyg n g n

H Trudy μπορεί να δει τους n, g, gx mod n, gy mod n, αλλά δεν μπορεί να υπολογίσει το gxy mod n.

Page 33: Ασφάλεια Δικτύων ( Computer Security )

Αδυναμία Πρωτοκόλλου Ανταλλαγής Κοινού Κλειδιού

Πως μπορεί η Trudy να σπάσει το πρωτόκολλο;

n, g, gx mod n

gz mod n

Η Alice επιλέγει x

O Bob επιλέγει y

mod modxz xzg n g n mod mod

zy yzg n g n

Η Trudy επιλέγει z

n, g, gz mod n

gy mod n

Page 34: Ασφάλεια Δικτύων ( Computer Security )

Κέντρα Διανομής Κλειδιών (Key Distribution Center KDC)

Η διαχείριση πολλών κλειδιών είναι δύσκολή για πολυσύχναστες υπηρεσίες

Η Alice και ο Bob στη συνέχεια χρησιμοποιούν το session key KS

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

(KS(.)) και μετά να το στέλνει συνέχεια (Replay Attack)

Session Key

Page 35: Ασφάλεια Δικτύων ( Computer Security )

Κέντρα Διανομής Κλειδιών (Key Distribution Center KDC)

Η διαχείριση πολλών κλειδιών είναι δύσκολή για πολυσύχναστες υπηρεσίες

Η Alice και ο Bob στη συνέχεια χρησιμοποιούν το session key KS

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

(KS(.)) και μετά να το στέλνει συνέχεια (Replay Attack)

Κακή Λύση: Χρήση χρονομέτρων και τυχαίων αριθμών…

Session Key

Page 36: Ασφάλεια Δικτύων ( Computer Security )

Needham-Schroeder Authentication

Page 37: Ασφάλεια Δικτύων ( Computer Security )

Otway-Rees Authentication

Page 38: Ασφάλεια Δικτύων ( Computer Security )

Kerberos Authentication

Page 39: Ασφάλεια Δικτύων ( Computer Security )

Πιστοποίηση Ταυτότητας με Φανερό Κλειδί

Page 40: Ασφάλεια Δικτύων ( Computer Security )

Πιστοποιητικά Ταυτότητας (Authenticity Certificates)

Πρόβλημα: Πως ξέρει η Alice ότι πήρε το σωστό κλειδί και όντως επικοινωνεί με τον Bob;

Alic

e Bo

bTru

dy

Hi, I am Alice, send me EB

Here is the key ET

ET( Message ) EB( Message )

Page 41: Ασφάλεια Δικτύων ( Computer Security )

Πιστοποιητικά Ταυτότητας (Αυθεντικότητας) (Authenticity Certificates)

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

Η Πιστοποιούσα Αρχή (Certification Authority CA) χρησιμοποιεί το μυστικό της κλειδί για να δημιουργήσει το SHA-1

Page 42: Ασφάλεια Δικτύων ( Computer Security )

Πιστοποιητικά Αυθεντικότητας (Authenticity Certificates)

Εάν η Trudy δοκιμάσει να αντικαταστήσει το κλειδί του Bob στο πιστοποιητικό, τότε η Alice μπορεί εύκολα να το ανιχνεύσει!

Παίρνοντας το φανερό κλειδί της πιστοποιούσας αρχής, ελέγχει το SHA-1, το οποίο δεν θα ταιριάζει με αυτό που θα άρμοζε στο δεδομένο πιστοποιητικό. Η Trudy δεν έχει το μυστικό κλειδί της πιστοποιούσας αρχής έτσι δεν μπορεί

να αλλάξει το SHA-1 να αντικατοπτρίζει το πιστοποιητικό του Bob με το δικό της κλειδί

Alic

e Bo

bTru

dy

Hi, I am Alice, send me your certificate with EB

Here is the key ET

ET( Message ) EB( Message )

Page 43: Ασφάλεια Δικτύων ( Computer Security )

Πιστοποιητικά Αυθεντικότητας (Authenticity Certificates)

Εάν κάποιος θέλει να πιστοποιήσει ότι έχει κάποια ιδιότητα (π.χ., είναι μεγαλύτερος από 18 ετών). Πάει σε μια αρχή η οποία του εκδίδει ένα πιστοποιητικό το οποίο λέει

πως το φανερό αυτό κλειδί ανήκει σε κάποιον ο οποίος είναι πέραν των 18 ετών.

Use

r A W

WW

Here is my certificate

EA(Random Number R)

R=DA(EA(R ))

Με αυτό τον τρόπο ο εξυπηρετητής ξέρει πως ο Α είναι κάτοχος του πιστοποιητικού

Page 44: Ασφάλεια Δικτύων ( Computer Security )

Υποδομή Πιστοποίησης Φανερών Κλειδιών

Ιεραρχική Υποδομή Κάθε πιστοποιούσα αρχή έχει πιστοποιητικό από την αμέσως

προηγούμενη αρχή. Ποιον εμπιστεύεστε για το Root;

Page 45: Ασφάλεια Δικτύων ( Computer Security )

Ψηφιακές Υπογραφές με Κοινό Κλειδί

Big Brother

Σε κάθε περίπτωση ο Bob αποθηκεύει το μήνυμα P καθώς και το κρυπτογράφημα KBB(A, t, P).

Ένα υπάρξει αμφισβήτηση ότι όντως το μήνυμα στάλθηκε από την Alice, τότε ο Bob Παρουσιάζει το κρυπτογραφημένο μήνυμα ΚBB(A, t, P) Καλεί τον BB (τον οποίο όλοι εμπιστεύονται) για να αποκρυπτογραφήσει το

μήνυμα Πως αποδεικνύεται πως το μήνυμα στάλθηκε από την Alice;

Page 46: Ασφάλεια Δικτύων ( Computer Security )

Ψηφιακές Υπογραφές με Φανερό Κλειδί

Σε κάθε περίπτωση ο Bob αποθηκεύει το μήνυμα P καθώς και το κρυπτογράφημα DΑ(P).

Ένα υπάρξει αμφισβήτηση ότι όντως το μήνυμα στάλθηκε από την Alice, τότε ο Bob Παρουσιάζει το κρυπτογραφημένο μήνυμα DA(P) Χρησιμοποιεί το φανερό κλειδί της Alice για να αποκρυπτογραφήσει το

μήνυμα και να δείξει ότι όντως το μήνυμα στάλθηκε από την Alice. Πως αποδεικνύεται πως το μήνυμα στάλθηκε από την Alice;

Page 47: Ασφάλεια Δικτύων ( Computer Security )

Firewalls

Τι συμβαίνει στην περίπτωση ασύρματων δικτύων;