Προχωρημένα Θέματα Δικτύων Πρόγραμμα Μεταπτυχιακών Σπουδών Τμήμα Πληροφορικής ΑΠΘ Μάθημα: 4 – Κρυπτογραφία για δίκτυα
Ενότητα: Ασφάλεια Δικτύων Kρυπτογραφία Τα βασικά προβλήματα Πως θα επικοινωνήσουν με ασφάλεια απομακρυσμένα μέρη που δεν έχουν επικοινωνήσει ποτέ στο παρελθόν; Πως σιγουρεύομαι για την ταυτότητα του απομακρυσμένου συνομιλητή μου; Πως σιγουρεύομαι ότι τα μηνύματά μου δεν τροποποιούνται καθ' οδόν; Πως σιγουρεύομαι ότι ο συνομιλητής μου δεν θα μπορεί να αρνηθεί στο μέλλον το μήνυμα που μου έστειλε; Alice Bob Eve
Ενότητα: Ασφάλεια Δικτύων Kρυπτογραφία Α. Συμμετρική Κρυπτογράφηση Κλειδί Κρυπτογραφημένο μήνυμα Απόρρητο μήνυμα Απόρρητο μήνυμα Απόρρητο μήνυμα Απόρρητο μήνυμα Συμμετρικός Αλγόριθμος Κρυπτογράφησης 010101010110100110101010101010101010000101110101010110101010 Twofish/Serpent/AES (Rijndael)/Blowfish CAST5/RC4/TDES/IDEA Αποκρυπτογράφηση Κλειδί Κρυπτογραφημένο μήνυμα 010101010110100110101010101010101010000101110101010110101010 Απόρρητο μήνυμα Απόρρητο μήνυμα Απόρρητο μήνυμα Απόρρητο μήνυμα Συμμετρικός Αλγόριθμος Απο- Κρυπτογράφησης
Ενότητα: Ασφάλεια Δικτύων Kρυπτογραφία Β. Ασύμμετρη Κρυπτογράφηση Δημιουργία ζεύγους κλειδιών (Δημόσιο - Ιδιωτικό) Αποστολή σε όλους
Ενότητα: Ασφάλεια Δικτύων Kρυπτογραφία Εάν ο Bob θέλει να το στείλει σε περισσότερους του ενός παραλήπτες, προσθέτει τα δημόσια κλειδιά τους, μαζί με αυτό της Alice Β. Ασύμμετρη Κρυπτογράφηση Κρυπτογράφηση Αποκρυπτογράφηση
Ενότητα: Ασφάλεια Δικτύων Kρυπτογραφία Β. Ασύμμετρη Κρυπτογράφηση Ψηφιακή Υπογραφή
Αρχές ασύμμετρης κρυπτογράφησης Ενότητα: Ασφάλεια Δικτύων Kρυπτογραφία Αρχές ασύμμετρης κρυπτογράφησης Πρώτος αριθμός λέγεται ένας αριθμός που έχει μόνο για διαιρέτες το 1 και τον εαυτό του Υπάρχει χρονική ασυμμετρία ανάμεσα σε ορισμένες αντίθετες μαθηματικές πράξεις Η μια κατεύθυνση υπολογίζεται εύκολα, ενώ η άλλη δύσκολα Παράδειγμα: Πολλαπλασιασμός και παραγοντοποίηση Π.χ. P1: 613651349 P2: 961748927 Χρόνος υπολογισμού γινομένου: 613651349 x 961748927 = 590178526452852523 (0.008 sec) Χρόνος παραγοντοποίησης: 590178526452852523 = 613651349 x 961748927 (4 sec) Έχοντας τα e, Ν, Me mod N, δεν υπάρχει τρόπος να βρεθεί το M αν δεν ξέρεις τους πρώτους παράγοντες του Ν
Αρχές ασύμμετρης κρυπτογράφησης Ενότητα: Ασφάλεια Δικτύων Kρυπτογραφία Αρχές ασύμμετρης κρυπτογράφησης Κρυπτογράφηση Επειδή τα κλειδιά παράγονται έτσι ώστε να εκμεταλλεύονται την ασυμμετρία των μαθηματικών πράξεων, πρέπει να έχουν μεγάλο μήκος (π.χ. 4096 bits) Αν θα θέλαμε να κρυπτογραφήσουμε ένα αρχείο 10 GiBs με ένα τέτοιο κλειδί θα χρειαζόμασταν υπερβολικά πολύ χρόνο Λύση: Παράγουμε ένα πολύ μικρότερο κλειδί για χρήση σε αλγόριθμο συμμετρικής κρυπτογράφησης και με αυτό κρυπτογραφούμε συμμετρικά το αρχείο Το μικρό κλειδί του συμμετρικού αλγορίθμου το κρυπτογραφούμε με ασύμμετρη κρυπτογράφηση
Ενότητα: Ασφάλεια Δικτύων Kρυπτογραφία Ασύμμετρη Κρυπτογράφηση
Ενότητα: Ασφάλεια Δικτύων Kρυπτογραφία Ασύμμετρη Αποκρυπτογράφηση
Ενότητα: Ασφάλεια Δικτύων Kρυπτογραφία Hash Functions – Δημιουργία ψηφιακών αποτυπωμάτων – (χρήση στις ψηφιακές υπογραφές) Κάθε είσοδος μετασχηματίζεται σε έναν κώδικα σταθερού μήκους
Αρχές ασύμμετρης κρυπτογράφησης Ενότητα: Ασφάλεια Δικτύων Kρυπτογραφία Αρχές ασύμμετρης κρυπτογράφησης Ψηφιακή Υπογραφή Κατά την ψηφιακή υπογραφή πρέπει να “κρυπτογραφηθούν” τα δεδομένα με το ιδιωτικό κλειδί που επίσης έχει πολύ μεγάλο μήκος άρα έχουμε τα ίδια προβλήματα Λύση: Περνάμε τα δεδομένα μας μέσα από μια hash function, δημιουργώντας ένα “μοναδικό” αποτύπωμά τους το οποίο συνήθως έχει μικρό μήκος (π.χ. 256 bytes) Στη συνέχεια το αποτύπωμα (aka 'hash') κρυπτογραφείται με το ιδιωτικό κλειδί Τέλος, στέλνουμε τα δεδομένα μας μαζί με το κρυπτογραφημένο hash
Ενότητα: Ασφάλεια Δικτύων Kρυπτογραφία Κρυπτογράφηση → Προστασία από υποκλοπή Ψηφιακή Υπογραφή → Προστασία από τροποποίηση Αν γίνει με διαφορετική σειρά η υπογραφή και κρυπτογράφηση, ποια θα είναι η διαφορά;
Ενότητα: Ασφάλεια Δικτύων Kρυπτογραφία Ασύμμετρη Κρυπτογράφηση: Σύνοψη Ό,τι κρυπτογραφείται με το private key αποκρυπτογραφείται με το public key (ψηφιακή υπογραφή) Ό,τι κρυπτογραφείται με το public key, αποκρυπτογραφείται με το private key (κρυπτογράφηση) Οι χρήστες ανταλλάσουν τα public κλειδιά τους Οι χρήστες που έχουν τα public κλειδιά άλλων χρηστών, τα εμπιστεύονται και τα χρησιμοποιούν, απαρτίζουν το Web of Trust Η ορθή λειτουργία του Web of Trust, επαφίεται στην προσπάθεια των χρηστών να επιβεβαιώνουν την ορθότητα κάθε ενός public κλειδιού πριν αποφασίσουν ότι το εμπιστεύονται
Public Key Infrastructure (PKI) Στο PKI κάθε χρήστης εμπιστεύεται μια αρχή πιστοποίησης (Certification Authority (CA)) η οποία υπογράφει τα public κλειδιά όλων των χρηστών Η CA έχει το ρόλο να επιβεβαιώνει την ορθή αντιστοιχία χρήστη – δημόσιου κλειδιού και όχι ο κάθε χρήστης!
Ενότητα: Ασφάλεια Δικτύων Kρυπτογραφία Public Key Infrastructure (PKI) – Προσωπικό Πιστοποιητικό Αρχές Πιστοποίησης Παράδειγμα χρήσης PKI ασύμμετρης κρυπτογραφίας: Αποστολή ψηφιακά υπογεγραμμένου email
Ενότητα: Ασφάλεια Δικτύων Kρυπτογραφία Παράδειγμα χρήσης PKI ασύμμετρης κρυπτογραφίας: Aσφαλής σύνδεση σε server πάνω από HTTPS
Ενότητα: Ασφάλεια Δικτύων Kρυπτογραφία Εργασία A. Δημιουργήστε προσωπικό ψηφιακό πιστοποιητικό (οδηγίες: https://pki.auth.gr ) Στείλτε μου (gpall@it.auth.gr) ένα ψηφιακά υπογεγραμμένο και κρυπτογραφημένο email Σιγουρευτείτε για την εγκυρότητα της ψηφιακής υπογραφής, ελέγχοντας το email σας στον φάκελο των απεσταλμένων email. B. Ένας server φιλοξενεί πολλά ασφαλή sites κάτω από την ίδια IP. Πως λέγεται και πως λειτουργεί η μέθοδος που λύνει τεχνικά το πρόβλημα του ότι μόλις ξεκινάει το TCP connection του browser στον server πρέπει να ξεκινήσει και το SSL αλλά δεν είναι ακόμα γνωστό στον web server ποιο από όλα τα site θα ζητηθεί, ώστε να στείλει το σωστό πιστοποιητικό; Γράψτε και εξηγήστε τα βήματα. Δείξτε στο Wireshark το σχετικό πεδίο που υλοποιεί την παραπάνω μέθοδο. Παράδειγμα sites στον ίδιο server: https://www.anthiafashion.gr , https://www.hapos.gr