Ασφάλεια Υπολογισικών Σσημάων · 2015. 11. 30. · Ασφάλεια...

Post on 31-Dec-2020

5 views 0 download

Transcript of Ασφάλεια Υπολογισικών Σσημάων · 2015. 11. 30. · Ασφάλεια...

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

Ενότητα 2: Συμμετρική κρυπτογραφία

Νικολάου Σπύρος

Τμήμα Μηχανικών Πληροφορικής ΤΕ

Άδειες Χρήσης

• Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

• Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς.

2

Χρηματοδότηση• Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια

του εκπαιδευτικού έργου του διδάσκοντα.

• Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο TEI Δυτικής Μακεδονίας και στην Ανώτατη Εκκλησιαστική Ακαδημία Θεσσαλονίκης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού.

• Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.

3

Σκοποί ενότητας

4

• Αυτή η ενότητα πραγματεύεται ζητήματα σχετικά με τη συμμετρική κρυπτογραφία.

Περιεχόμενα ενότητας (1/4)

• Αρχές συμμετρικής κρυπτογράφησης.

• Ταξινόμηση Κρυπτογραφικών Συστημάτων.

• Κρυπτανάλυση.

• Τύποι επιθέσεων κρυπτογραφημένων μηνυμάτων.

• Εξαντλητική Αναζήτηση Κλειδιού.

• Πότε ένα σύστημα θεωρείται ασφαλές;

• Δομή Κρυπτογραφίας Feistel.

5

Περιεχόμενα ενότητας (2/4)

• Παράμετροι Feistel.

• Συμμετρικοί αλγόριθμοι κρυπτογράφησης τμημάτων.

• Πρότυπο κρυπτογράφησης δεδομένων - DES.

• Κρυπτογράφηση Δεδομένων DES.

• Τριπλό DES.

• Εξελιγμένο Πρότυπο Κρυπτογράφησης - AES.

• Κωδικοποιητές ροής και RC4.

6

Περιεχόμενα ενότητας (3/4)

• Δομή Κωδικοποιητών Ροής.

• Σημαντικά Σχεδιαστικά Ζητήματα.

• Κωδικοποιητές Ροής και Κωδικοποιητές Τμημάτων.

• Σύγκριση Ταχύτητας Συμμετρικών Κωδικοποιητών.

• Αλγόριθμος RC4.

• Περιγραφή Αλγορίθμου RC4.

• Βήματα Αλγορίθμου RC4.

7

Περιεχόμενα ενότητας (4/4)

• Μέθοδος Αλυσιδωτής Κρυπτογράφησης Τμημάτων.

• Τοποθέτηση Συσκευών Κρυπτογράφησης.

• Κρυπτογράφηση Συνδέσμου.

• Κρυπτογράφηση από άκρο σε άκρο.

• Διανομή Κλειδιών.

• Βιβλιογραφία.

8

Συμμετρική κρυπτογραφία

Αρχές συμμετρικήςκρυπτογράφησης (1/3)

• Συμβατική κρυπτογράφηση.

• Κρυπτογράφηση μυστικού κλειδιού.

• Κρυπτογράφηση ενός κλειδιού.

• Ο μόνος τύπος κρυπτογραφίας στα τέλη του ’70.

• Σήμερα ο ευρύτερα χρησιμοποιούμενος τρόπος κρυπτογραφίας.

10

Αρχές συμμετρικήςκρυπτογράφησης (2/3)

• Ένα σύστημα κρυπτογράφησης έχει πέντε συστατικά:

1. Αρχικό απλό κείμενο (plain text).

2. Αλγόριθμος κρυπτογράφησης (encryption algorithm).

3. Μυστικό κλειδί (secret key).

4. Κρυπτογράφημα (ciphertext).

5. Αλγόριθμος αποκρυπτογράφησης (decryption algorithm).

11

Αρχές συμμετρικήςκρυπτογράφησης (3/3)

• Δυο απαιτήσεις.

– Ισχυρός αλγόριθμος κρυπτογράφησης.

• Να μην αποκρυπτογραφείται εύκολα το μήνυμα.

• Να μην βρίσκεται εύκολα το κλειδί.

– Ακόμα και αν κάποιος κατέχει πολλά κρυπτογραφημένα μηνύματα και το αρχικό.

– Ασφάλεια κλειδιού.

• Παράδοση κλειδιού με μυστικό τρόπο σε αποστολέα/παραλήπτη.

• Διατήρηση κλειδιού σε ασφαλές μέρος.

12

Ταξινόμηση Κρυπτογραφικών Συστημάτων (1/4)

• Τρεις ανεξάρτητες διαστάσεις με βάση:

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

– Τον αριθμό των κλειδιών που χρησιμοποιούνται.

– Τον τρόπο με τον οποίο γίνεται η επεξεργασία του αρχικού μηνύματος.

13

Ταξινόμηση Κρυπτογραφικών Συστημάτων (2/4)

• Με βάση τον τύπο των λειτουργιών που χρησιμοποιούνται για το μετασχηματισμό του αρχικού μηνύματος σε κρυπτογράφημα.

– Οι αλγόριθμοι βασίζονται σε 2 αρχές.

• Αντικατάσταση.

• Μετάθεση .

14

Ταξινόμηση Κρυπτογραφικών Συστημάτων (3/4)

• Με βάση τον αριθμό των κλειδιών που χρησιμοποιούνται.

– Αν χρησιμοποιείται το ίδιο κλειδί.

• Συμμετρικό σύστημα ή μοναδικού κλειδιού ή μυστικού κλειδιού ή συμβατικής κρυπτογραφίας.

– Αν χρησιμοποιείται διαφορετικό κλειδί.

• Ασύμμετρο σύστημα ή διπλού κλειδιού ή κρυπτογραφίας δημόσιου κλειδιού.

15

Ταξινόμηση Κρυπτογραφικών Συστημάτων (4/4)

• Τον τρόπο με τον οποίο γίνεται η επεξεργασία του αρχικού μηνύματος.

– Κωδικοποιητής τμημάτων (block cipher).

• Για κάθε τμήμα εισόδου ένα τμήμα εξόδου.

– Κωδικοποιητής ροής (stream cipher).

• Ένα στοιχείο εξόδου για μια ροή στοιχείων εισόδου.

16

Κρυπτανάλυση

• Προσπάθεια αποκάλυψης του αρχικού μηνύματος ή του κλειδιού κρυπτογράφησης.

• Εξαρτάται:

– Από την φύση του κρυπτογραφικού συστήματος.

– Από τις διαθέσιμες πληροφορίες.

17

Τύποι επιθέσεων κρυπτογραφημένων μηνυμάτων (1/2)

• Κρυπτογραφήματος.

– Αλγόριθμος κρυπτογράφησης.

– Κρυπτογράφημα.

• Γνωστού αρχικού κειμένου.

– Αλγόριθμος κρυπτογράφησης.

– Κρυπτογράφημα.

– Κομμάτια αρχικού κειμένου κρυπτογραφημένα με το ίδιο κλειδί.

18

Τύποι επιθέσεων κρυπτογραφημένων μηνυμάτων (2/2)

• Επιλεγμένου αρχικού κειμένου.

– Αλγόριθμος κρυπτογράφησης.

– Κρυπτογράφημα.

– Επιλεγμένο αρχικό κείμενο και κρυπτογράφημα που προκύπτει.

• Επιλεγμένου κρυπτογραφήματος και Επιλεγμένου κειμένου.

– Σπάνιες κρυπταναλυτικές τεχνικές.

19

Εξαντλητική Αναζήτηση Κλειδιού

Key Size (bits) Number of Alternative Keys

Time required at 106 Decryption/µs

32 232 = 4.3 x 109 2.15 milliseconds

56 256 = 7.2 x 1016 10 hours

128 2128 = 3.4 x 1038 5.4 x 1018 years

168 2168 = 3.7 x 1050 5.9 x 1030 years

20

Πίνακας 1. Εξαντλητική αναζήτηση κλειδιού. Πηγή: Διδάσκων (2015).

Πότε ένα σύστημα θεωρείται ασφαλές;

• Κόστος παραβίασης κρυπτογραφήματος >> αξία κρυπτογραφημένων πληροφοριών.

• Χρόνος «σπασίματος» >> διάρκειας ζωής πληροφοριών.

– Όπου >> μεταφράζεται ως «πολύ μεγαλύτερο»!

21

Δομή Κρυπτογραφίας Feistel

• Οι περισσότεροι αλγόριθμοι κρυπτογράφησης τμημάτων ακολουθούν την δομή που περίγραψε ο Γερμανός κρυπτογράφος της IBM Horst Feistelτο 1973.

• Η υλοποίηση του δικτύου Feistel εξαρτάται από την επιλογή των παραμέτρων και των χαρακτηριστικών (δείτε την επόμενη διαφάνεια).

22

Παράμετροι Feistel (1/2)

• Μέγεθος Τμημάτων.

– Όσο μεγαλύτερα τόσο μεγαλύτερη ασφάλεια.

• Μέγεθος κλειδιού.

– Μεγαλύτερο κλειδί = μεγαλύτερη ασφάλεια.

– Συνήθως 128 bit.

• Αριθμός γύρων.

– Όσο περισσότεροι τόσο μεγαλύτερη ασφάλεια.

– Συνήθως 16 γύροι.

23

Παράμετροι Feistel (2/2)

• Αλγόριθμος παραγωγής υποκλειδιών.

– Μεγαλύτερη πολυπλοκότητα = δυσκολότερη κρυπτανάλυση.

• Συνάρτηση γύρου.

– Μεγαλύτερη πολυπλοκότητα = μεγαλύτερη ανθεκτικότητα στην κρυπτανάλυση.

24

Συμμετρικοί αλγόριθμοι κρυπτογράφησης τμημάτων

• Data Encryption Standard (DES).

• 3 Data Encryption Standard (3DES).

• Advanced Encryption Standard (AES).

25

Πρότυπο κρυπτογράφησης δεδομένων - DES

• Το πιο διαδεδομένο (αρχικά) σύστημα κρυπτογράφησης.

• Βασίζεται στον αλγόριθμο Data Encryption Algorithm (DEA).

• Αρχικό κείμενο 64 bit.

– Κείμενα μεγαλύτερα των 64 bit υφίστανται επεξεργασία σε τμήματα των 64 bit.

• Κλειδί 56 bit.

– Σχετικά μικρό κλειδί και αυτό θεωρείται αδυναμία του.

• 16 γύροι επεξεργασίας.

• Το 1999 «έσπασαν» κλειδί του αλγορίθμου σε 22 ώρες και 15 λεπτά.

26

Κρυπτογράφηση Δεδομένων DES

• Επαναληπτικοί Κανόνες.

– Li = Ri-1.

– Ri = Li-1, F(Ri-1, Ki).

• Ανησυχίες για τον αλγόριθμο.

– Όσον αφορά την ισχύ του.

• Δεν έχει ανακαλυφθεί σημαντική αδυναμία.

– Όσον αφορά το μέγεθος κλειδιού.

• 256 (7,2x1016) πιθανά κλειδιά – χίλια χρόνια για να κρυπταναλυθεί.

27

Τριπλό DES (1/3)

• Χρησιμοποιεί τρία κλειδιά.

• Τρεις εκτελέσεις του αλγορίθμου DES.

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

– C = κρυπτογράφημα.

– Ρ = αρχικό κείμενο.

– Ek [Χ] = η κρυπτογράφηση του Χ με χρήση κλειδιού Κ.

– Dk [Y] = η αποκρυπτογράφηση του Υ με χρήση κλειδιού Κ.

C = E(K3, D(K2 , E (K1 , P)))

28

• Πραγματικό μέγεθος κλειδιού: 3 Χ 56 = 168.

Εικόνα 1. Τριπλό DES. Πηγή: Διδάσκων (2015).

Τριπλό DES (2/3)

29

Τριπλό DES (3/3)

• Πλεονεκτήματα:

– Μήκος Κλειδιού 168 bits.

– Έγινε εξονυχιστικός έλεγχος αλγορίθμου.

• Δεν υπάρχει αποδοτική μέθοδος κρυπτανάλυσης.

• Μειονεκτήματα:

– Αργός στις υλοποιήσεις λογισμικού.

– Μέγεθος τμήματος 64 bit.

• Θα θέλαμε μεγαλύτερο μέγεθος για λόγους ασφάλειας και απόδοσης.

30

Εξελιγμένο Πρότυπο Κρυπτογράφησης - AES

• Εξέλιξη του 3DES.

• Μήκος κλειδιού 128, 192 ή 256 bit.

• Μέγεθος τμήματος 128 bit.

31

Κωδικοποιητές ροής και RC4

• Κωδικοποιητές Ροής.

– Επεξεργάζονται στοιχεία εισόδου συνέχεια.

– Παράγουν στην έξοδο ένα στοιχείο την φορά.

– Αλγόριθμος RC4: Ο πιο διαδεδομένος συμμετρικός κωδικοποιητής ροής.

32

Δομή Κωδικοποιητών Ροής

• Παράδειγμα.

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

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

11001100 Αρχικό Κείμενο

⊗ 01101100 Ροή κλειδιών

10100000 Κρυπτογράφημα

33

10100000 Κρυπτογράφημα

⊗ 01101100 Ροή κλειδιών

11001100 Αρχικό Κείμενο

Σημαντικά Σχεδιαστικά Ζητήματα

• Η γεννήτρια παράγει ψευδοτυχαία byte.

– Κάποια στιγμή θα αρχίσουν να επαναλαμβάνονται.

– Όσο μεγαλύτερη ακολουθία τόσο δυσκολότερη κρυπτανάλυση.

• Απαιτείται ισοκατανομή μεταξύ των 256 συνδυασμών των 8 bit.

– Θα φαίνεται πιο τυχαίο το κρυπτογράφημα άρα θα είναι δυσκολότερη η κρυπτανάλυση.

• Όσο μεγαλύτερο είναι το κλειδί τόσο μεγαλύτερη η προστασία από επιθέσεις εξαντλητικής αναζήτησης κλειδιού.

34

Κωδικοποιητές Ροήςκαι Κωδικοποιητές Τμημάτων (1/2)

• Κωδικοποιητές Ροής:

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

– Πλεονεκτήματα.

• Ταχύτεροι.

• Χρησιμοποιούν πολύ μικρότερο κώδικα.

35

Κωδικοποιητές Ροήςκαι Κωδικοποιητές Τμημάτων (2/2)

• Κωδικοποιητές Τμημάτων:

– Επαναχρησιμοποίηση ίδιων κλειδιών.

– Μειονέκτημα.

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

– Ειδικά αν είναι πολύ απλά τα κείμενα π.χ. αριθμοί πιστωτικών καρτών.

36

Σύγκριση Ταχύτητας Συμμετρικών Κωδικοποιητών

Κώδικας Μήκος Κλειδιού Ταχύτητα* (Mbps)

DES 56 9

3DES 168 3

AES μεταβλητό 0,9

RC4 μεταβλητό 45

37

Πίνακας 2. Σύγκριση ταχύτητας συμμετρικών κωδικοποιητών(Μετρήσεις σε Pentium II). Πηγή: Διδάσκων (2015).

Αλγόριθμος RC4

• Μεταβλητό μήκος κλειδιού.

• Βασίζεται στην χρήση μιας τυχαίας μετάθεσης (permutation).

• Γρήγορος ως λογισμικό.

• Χρησιμοποιείται:

– Συστήματα SSL/TLS (Secure Sockets Layer/Transport Layer Security) στο Web.

– Πρωτόκολλο WEP (Wireless Equivalent Protocol).

– Πρωτόκολλο WPA (WiFi Protected Access).

38

Περιγραφή Αλγορίθμου RC4

• Κλειδί μήκους 1-256 byte δίνει τιμές σε διάνυσμα S (S[0], S[1],...,S[255]).

• Ανά πάσα στιγμή το S περιέχει μετάθεση όλων των 8μπιτων αριθμών.

• Παράγεται συστηματικά ένα byte k από τα στοιχεία του S.

• Μετά από κάθε παραγωγή ενός k, γίνεται νέα μετάθεση των στοιχείων του S.

39

Βήματα Αλγορίθμου RC4 (1/2)

/*Αρχικές Τιμές */

for i=0 to 255 do

S[i] = i;

T[i] = K [i mod keylen];

/* Αρχική Μετάθεση του S*/j=0;for i=0 to 255 doj= (j+S[i] + T[i]) mod 255;Swap(S[i], S[j]);

40

Βήματα Αλγορίθμου RC4 (2/2)

/*Δημιουργία Ροής*/

i,j = 0;

while (true)

i = (i+1) mod 256;

j = (j+S[i]) mod 256;

Swap(S[i], S[j]);

t=(S[i]+S[j])mod 256;

k=S[t];

41

• Είσοδος Αλγορίθμου:

– (Τρέχον τμήμα κειμένου) XOR (Προηγούμενο τμήμα κρυπτογραφήματος).

Μέθοδος Αλυσιδωτής Κρυπτογράφησης Τμημάτων

ιι1ι1ιιΚ1ι

ι1ιιΚ

ι1ιΚΚιΚ

ι1ικι

ΠΠΧΧ][ΧΔΧ

)Π(Χ][ΧΔ

)]Π(Χ[ΕΔ][ΧΔ

]Π[ΧΕΧ

42

Τοποθέτηση Συσκευών Κρυπτογράφησης

• Κρυπτογράφηση Συνδέσμου.

– Link encryption.

• Κρυπτογράφηση από άκρο σε άκρο.

– End-to-end encryption.

43

Κρυπτογράφηση Συνδέσμου

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

• Προσφέρει υψηλό επίπεδο ασφάλειας.

• Αποκρυπτογράφηση πακέτου κατά την είσοδό του σε μεταγωγέα.

– Για να διαβάσει την επικεφαλίδα.

– Ευπάθεια στους μεταγωγείς.

44

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

• Η πηγή κρυπτογραφεί.

• Ο παραλήπτης αποκρυπτογραφεί.

• Τα δεδομένα μεταδίδονται κρυπτογραφημένα.

• Αδυναμία σε περίπτωση εικονικού κυκλώματος:

– Κρυπτογραφούνται μόνο τα δεδομένα του χρήστη.

– Δεν κρυπτογραφείται η επικεφαλίδα.

– Το μοτίβο της κίνησης δεν είναι ασφαλές.

– Λύση: Ταυτόχρονη χρήση Κρυπτογράφησης Συνδέσμου και Κρυπτογράφησης από άκρο σε άκρο.

45

Διανομή Κλειδιών (1/3)

• Στη συμμετρική κρυπτογράφηση απαιτείται ανταλλαγή κλειδιών.

– Απαιτείται ασφάλεια.

• Διάφοροι τρόποι ανταλλαγής κλειδιού:

– Επιλέγεται από τον Α και παραδίδεται με φυσικό τρόπο στον Β.

– Κάποιος τρίτος το επιλέγει και το διανέμει με φυσικό τρόπο στους Α, Β.

– Αν Α, Β ήδη χρησιμοποίησαν κάποιο κλειδί, επιλέγει ο ένας από τους δυο νέο κλειδί και το στέλνει κρυπογραφημένο με το παλιό στον άλλο.

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

46

Διανομή Κλειδιών (2/3)

• Κλειδί περιόδου εργασίας (session key).

– Τα δεδομένα κρυπτογραφούνται με ένα μόνο κλειδί.

– Στο τέλος της εργασίας το κλειδί αυτοκαταστρέφεται.

• Μόνιμο Κλειδί (permanent key).

– Χρησιμοποιείται για την διανομή κλειδιών περιόδου εργασίας.

47

Διανομή Κλειδιών (3/3)

• Κέντρο διανομής κλειδιών (key distribution center - KBC).

– Καθορίζει ποια συστήματα επιτρέπεται να επικοινωνήσουν μεταξύ τους.

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

• Μονάδα υπηρεσιών ασφάλειας (secure service module -SSM).

– Εκτελεί την κρυπτογράφηση από άκρο σε άκρο.

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

48

Σημείωμα Αναφοράς

Copyright ΤΕΙ Δυτικής Μακεδονίας, Νικολάου Σπύρος. «Ασφάλεια Υπολογιστικών Συστημάτων». Έκδοση: 1.0. Κοζάνη 2015. Διαθέσιμο από τη δικτυακή διεύθυνση:

49

Σημείωμα Αδειοδότησης

Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative CommonsΑναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων».

[1] http://creativecommons.org/licenses/by-nc-sa/4.0/

Ως Μη Εμπορική ορίζεται η χρήση:

• που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο.

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

• που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο.

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

50

Διατήρηση Σημειωμάτων

Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει:

το Σημείωμα Αναφοράς.

το Σημείωμα Αδειοδότησης.

τη δήλωση Διατήρησης Σημειωμάτων.

το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει).

μαζί με τους συνοδευόμενους υπερσυνδέσμους.

51

Βιβλιογραφία

1. Κρυπτογραφία για Ασφάλεια Δικτύων Αρχές και Εφαρμογές, Stallings.

2. Βασικές Αρχές Ασφάλειας Δικτύων: Εφαρμογές και Πρότυπα, William Stallings.

3. Ασφάλεια δικτύων 6η Έκδοση, McClure Stuart, ScambrayJoel, Kurtz George.

4. Ασφάλεια Πληροφοριακών συστημάτων, Παγκαλος Γ., Μαυριδης Ι.

52

Τέλος Ενότητας