Ασφάλεια Ασύρματων & Κινητών Επικοινωνιών Ασύρματες Επικοινωνίες Μέρος V Χρήστος Ξενάκης Τμήμα Ψηφιακών Συστημάτων Πανεπιστήμιο Πειραιώς Slide: 1/30
Περιεχόμενα IEEE 802.11i ΤΟ ΠΡΩΤΟΚΟΛΛΟ CCMP Γενικά Λίγα λόγια για τον AES Ενθυλάκωση CCMP Απενθυλάκωση CCMP Σύνοψη Slide: 2/30
Εισαγωγή /1 Το 802.11i χρησιμοποιεί τα πρωτόκολλα WEP, TKIP και CCMP για προστασία των δεδομένων οι συσκευές RSN υλοποιούν το CCMP (default mode). Το πρωτόκολλο CCMP περιλαμβάνει τη χρήση AES Counter Mode (AES-CTR) για κρυπτογράφηση Cipher Block Chaining (CBC-MAC) βασισμένο σε MIC για εξασφάλιση της αυθεντικότητας και ακεραιότητας των MPDUs 1. Αρχικά υπολογίζει το MIC (Message Integrity Code), κάνοντας χρήση του CBC-MAC 2. Στη συνέχεια κρυπτογραφεί το μήνυμα και το MIC, με τον αλγόριθμο AES-CTR. Slide: 3/30
Εισαγωγή /2 Οι δύο παραπάνω μηχανισμοί είναι γνωστοί με τη συντόμευση CCM (Counter mode with CBC-MAC). Εκτός από τα δεδομένα το CCM προστατεύει την ακεραιότητα επιλεγμένων τμημάτων της κεφαλίδας 802.11 MPDU. Το CCMP είναι ισχυρότερο από πλευράς ασφαλείας από το TKIP Το ΤΚΙΡ αποτελεί προσπάθεια επιδιόρθωσης και συμπλήρωσης για συσκευές που το υλικό τους είναι σχεδιασμένο για τον RC4 (WEP). Slide: 4/30
Γενικά για τον AES /1 Ο αλγόριθμος AES είναι ένας κωδικοποιητής τμημάτων (block cipher). Βασίζεται στον αλγόριθμο Rijndael (Joan Daeman και Vincent Rijmen) έχεται ως είσοδο ένα κλειδί και ένα αρχικό κείμενο κρυπτογράφημα. Χρησιμοποιεί διαφορετικά μήκη τμημάτων και κλειδιών (128, 192, 256 bits) Για το 802.11i χρησιμοποιεί τμήματα και κλειδιά μήκους 128 bits. Slide: 5/30
Γενικά για τον AES /2 Ο AES λειτουργεί σε τμήματα σταθερού μήκους Τα πλαίσια των ασύρματων δικτύων έχουν μεταβλητό μήκος μεταξύ 512 και 12.000 bits Αναγκαία η μετατροπή κάθε μηνύματος σε μια ισοδύναμη ακολουθία τμημάτων σταθερού μήκους πριν από την κρυπτογράφηση Η αντίστροφη διαδικασία κατά την αποκρυπτογράφηση Τέτοιες μέθοδοι καλούνται με τον όρο modes of operation. Για το 802.11i είναι το counter mode περιγράφεται ργρ αφαιρετικά στο επόμενο σχήμα Slide: 6/30
Γενικά για τον AES: Counter Mode /3 Το αρχικό μήνυμα τεμαχίζεται σε 9 τμήματα ίσου μήκους Για κάθε τμήμα αρχικού κειμένου παράγεται ένας μετρητής (Counter) κρυπτογραφείται από τον AES με το κλειδί Κ. Το κρυπτογράφημα γίνεται XOR με καθένα από τα τμήματα αρχικού κειμένου Στο παράδειγμα ο μετρητής παίρνει την τιμή 1 έως 9 Στην πραγματικότητα ο μετρητής ξεκινάει από μια τυχαία τιμή (nonce) Ακολούθως αυξάνεται σύμφωνα με κάποιο κανόνα. Slide: 7/30
Γενικά για τον AES: Counter Mode /4 Plaintext 1 2 3 4 5 6 7 8 9 Counter 1 2 3 4 5 6 7 8 9 AES (K) AES (K) AES (K) AES (K) AES (K) AES (K) AES (K) AES (K) AES (K) XOR XOR XOR XOR XOR XOR XOR XOR XOR Ciphertext 1 2 3 4 5 6 7 8 9 Slide: 8/30
Γενικά για τον AES: Counter Mode /5 Ο δέκτης θα πρέπει να γνωρίζει την αρχική τιμή του μετρητή και τον κανόνα σύμφωνα με τον οποίο ο μετρητής αυξάνεται. Η αποκρυπτογράφησης είναι ακριβώς ίδια με τη κρυπτογράφηση Εφαρμόζεται δύο φορές η συνάρτηση XOR P R = C C R = P, όπου P το μήνυμα αρχικού κειμένου, C το κρυπτογράφημα και R ή τυχαία μάσκα οι συσκευές υλοποιούν μόνο την κρυπτογράφηση AES Η κρυπτογράφησης μπορεί να εκτελεστεί παράλληλα Είναι γνωστές οι τιμές τουμετρητή εκ των προτέρων. Slide: 9/30
Γενικά για τον AES: Counter Mode + CBC MAC = CCM /6 Το CCM χρησιμοποιεί το Counter Mode σε συνδυασμό με μια μέθοδο αυθεντικοποίησης μηνυμάτων CBC-MAC. Το πρώτο τμήμα του αρχικού κειμένου κρυπτογραφείται (AES) Εφαρμόζεται η συνάρτηση ρηηxor στο αποτέλεσμα της κρυπτογράφησης και στο δεύτερο τμήμα του κειμένου το νέο αποτέλεσμα κρυπτογραφείται, κοκ Η ίδια διαδικασία επαναλαμβάνεται για όλα τα τμήματα του αρχικού κειμένου (επόμενο σχήμα) Slide: 10/30
Γενικά για τον AES: Counter Mode + CBC MAC = CCM /7 Slide: 11/30
Γενικά για τον AES: Counter Mode + CBC MAC = CCM /8 Το αποτέλεσμα είναι ένα τμήμα μήκους 128 bits συνδυάζει μοναδικά όλα τα δεδομένα του αρχικού μηνύματος. Αν αλλάξουμε ένα ή περισσότερα bits του αρχικού μηνύματος το αποτέλεσμα είναι τελείως διαφορετικό. Το CCM Mode συνδυάζει το Counter Mode και το CBC- MAC. Χαρακτηριστικά του: Σύνδεση κρυπτογράφησης με αυθεντικοποίηση & διασφάλιση της ακεραιότητας με το ίδιο κλειδί. Επέκταση της διασφάλιση της ακεραιότητας ώστε να καλύπτει δεδομένα που δεν κρυπτογραφούνται Slide: 12/30
Ενθυλάκωση CCMP /1 Slide: 13/30
Ενθυλάκωση CCMP: ημιουργία του κλειδιού ΤΚ /2 Το CCM χρησιμοποιεί το ίδιο κλειδί μήκους 128 bits για κρυπτογράφηση και αυθεντικοποίηση των δεδομένων. Κατά τη διαδικασία 4-way exchange, ο σταθμός και το AP δημιουργούν ένα κλειδί (PTK) μήκους 384 bits τα πρώτα 256 bits κλειδιού PTK χρησιμοποιούνται για την προστασία της ίδιας της διαδικασίας 4-way exchange, τα υπόλοιπα 128 bits απαρτίζουν το κλειδί TK για το CCMP Το ίδιο μήκος κλειδιού απαιτείται για την προστασία πολυδιανομής, εκπομπής ή επικοινωνίας STA-to-STA. Slide: 14/30
Ενθυλάκωση CCMP: Κεφαλίδα CCMP /3 Η κεφαλίδα CCMP εξυπηρετεί: προστασία από επανεκπομπή (replay protection) χρησιμοποιώντας έναν αύξων αριθμό πακέτου (Packet Number) σε περίπτωση πολυδιανομής, γνωστοποιεί στον παραλήπτη ποιο ακριβώς κλειδί ομάδας χρησιμοποιήθηκε Slide: 15/30
Ενθυλάκωση CCMP: Προστασία κεφαλίδας MAC /4 Είναι επιθυμητή η προστασία της ακεραιότητας της κεφαλίδας MAC του κάθε MPDU προκειμένου να αντιμετωπιστούν επιθέσεις modification. εν είναι δυνατή η προστασία όλων των πεδίων της κεφαλίδας MAC Ορισμένα από αυτά αλλάζουν λίγο πριν από τη μετάδοση Τα πεδία αυτά χαρακτηρίζονται με τον όρο mutable fields. Έτσι ορίζονται πρόσθετα δεδομένα αυθεντικοποίησης (Additional Authentication ti ti Data, AAD) Το συνολικό μήκος του AAD είναι 22 bytes έως 30 bytes. Slide: 16/30
Ενθυλάκωση CCMP: ημιουργία της τιμής Nonce /5 Το CCM (AES-CTR mode) απαιτεί μια μοναδική τιμή nonce για κάθε MPDU που προστατεύει Γιατί το κλειδί TK παραμένει το ίδιο. κρυπτογραφεί την τιμή nonce και κατόπιν εφαρμόζει XOR στο κρυπτογραφημένο αποτέλεσμα της nonce με το αρχικό κείμενο του μηνύματος (MPDU). η τιμή nonce εγγυάται επικαιρότητα (freshness) Εξασφαλίζει ότι για κάθε πλαίσιο η κρυπτογράφηση εκτελείται λί με διαφορετικό nonce. Άλλως, θα ήταν ευπαθής π.χ. σε επιθέσεις επιλεγμένου αρχικού κειμένου. Slide: 17/30
Ενθυλάκωση CCMP: ημιουργία της τιμής Nonce /6 Το CTR mode αποτελεί στόχο επιθέσεων του τύπου precomputation (pre-computation attacks). Ένας επιτιθέμενος μπορεί να δημιουργήσει έναν πίνακα όλων των τμημάτων (key stream blocks): Si E(ΤK, Ai ) με i = 0, 1, 2,... για μια δεδομένη δ τιμή nonce και ένα μεγάλο αριθμό κλειδιών TK. αναμένει τη μετάδοση κρυπτογραφημένων πλαισίων που φέρουν την ίδια τιμή nonce με τη δική του. Η nonce μεταδίδεται σε μορφή αρχικού κειμένου. εφαρμόζει τη συνάρτηση XOR στις προϋπολογισθείσες τιμές του και στο κρυπτογράφημα που έλαβε Παράγει το αρχικό κείμενο. Slide: 18/30
Ενθυλάκωση CCMP: ημιουργία της τιμής Nonce /7 Το πρόβλημα λύνεται, συνδυάζοντας την τιμή του PN με τη διεύθυνση MAC της πηγής (SA), ημιουργείται μια μοναδική τιμή nonce κάθε φορά. Ελαχιστοποιεί την πιθανότητα επιτυχίας επιθέσεων του τύπου pre-computation Ο επιτιθέμενος είναι υποχρεωμένος να προϋπολογίσει όλες τις ενδιάμεσες τιμές για το CTR mode για όλα τα πιθανά κλειδιά, ξεχωριστά για καθεμία διεπαφή STA ή AP. Slide: 19/30
Ενθυλάκωση CCMP: ημιουργία της τιμής Nonce /8 Η δομή της τιμής nonce, περιγράφεται στο επόμενο σχήμα. Με την προσθήκη δύο επιπλέον πεδίων αποτελεί το πρώτο τμήμα (block Β0) για τη διαδικασία CBC-MAC του CCMP Τα δύο πεδία, τα οποία πλαισιώνουν την τιμή nonce είναι: (α) το πεδίο Flag που λαμβάνει τη σταθερή τιμή 01011001 για εφαρμογές RSN και (β) το πεδίο DLen, το οποίο ο υποδηλώνει το μήκος των δεδομένων αρχικού κειμένου (plaintext data) σε bytes. Slide: 20/30
Ενθυλάκωση CCMP: ημιουργία της τιμής Nonce /9 Η τιμή nonce αποτελείται από 3 υποπεδία. 1 ον το υποπεδίο προτεραιότητα (priority) μήκους 8 bits έχει δεσμευτεί για μελλοντική χρήση (802.11e) και προσδιορίζει προτεραιότητα (frame prioritization) για ροές δεδομένων με διαφορετικά χαρακτηριστικά (ήχος, εικόνα, κλπ). 2 ον τη διεύθυνση ΜΑC της πηγής (SA), το πεδίο «διεύθυνση 2» της κεφαλίδας MAC, 3 ον τα 6 συνολικά bytes του μετρητή PN με τιμές στο διάστημα [0.. 2 48-1] 1]. Slide: 21/30
Ενθυλάκωση CCMP: Υπολογισμός του MIC /10 Η διαδικασία CBC-MAC ξεκινά μόλις δημιουργηθεί η τιμή nonce Υπολογισμός του MIC Η διαδικασία εφαρμόζεται με τη σειρά, ξεκινώντας από το πρώτο τμήμα Το πρώτο τμήμα κρυπτογραφείται, γίνεται XOR με το επόμενο, το αποτέλεσμα κρυπτογραφείται εκ νέου, κ.ο.κ. Το CBC-MAC λειτουργεί μόνο για διακριτό αριθμό τμημάτων Σε περίπτωση που τα δεδομένα δεν διαιρούνται ακριβώς σε ακέραιο αριθμό τμημάτων padding Το τελικό αποτέλεσμα (MIC) είναι ένα τμήμα μήκους 128 bits από το οποίο διατηρούνται μόνο τα πρώτα 64 bits. Slide: 22/30
Ενθυλάκωση CCMP: Υπολογισμός του MIC /11 Slide: 23/30
Ενθυλάκωση CCMP: Τοποθετώντας τα όλα μαζί /12 Μόλις υπολογιστεί το MIC και προσαρτηθεί στα δεδομένα του μηνύματος μπορεί να ξεκινήσει η διαδικασία κρυπτογράφησης: Για κάθε νέο MPDU αύξησε την τιμή του μετρητή PN έτσι ώστε να μην επαναλαμβάνεται ποτέ για το ίδιο κλειδί TK. ημιούργησε το AAD από τα σχετικά πεδία της MAC κεφαλίδας. ημιούργησε το τμήμα της nonce από τα πεδία PN, SA και Priority. Τοποθέτησε τη νέα τιμή του μετρητή PN και το Key ID στην κεφαλίδα CCMP. Χρησιμοποίησε το κλειδί ΤΚ, το AAD, τη nonce και τα δεδομένα του MPDU για την παραγωγή γή του κρυπτογραφήματος και το MIC. Σχημάτισε το κρυπτογραφημένο MPDU, συνδυάζοντας την αρχική κεφαλίδα MAC, την κεφαλίδα CCMP, το κρυπτογράφημα και τέλος το MIC. Slide: 24/30
Ενθυλάκωση CCMP: Τοποθετώντας τα όλα μαζί /13 Slide: 25/30
Απενθυλάκωση CCMP /1 Για κάθε MPDU που λαμβάνει ο παραλήπτης: Βρίσκει το κατάλληλο κλειδί TK με βάση τη διεύθυνση πηγής (SA) που περιέχεται στην κεφαλίδα MAC. ιαβάζει την τιμή του μετρητή PN, περιλαμβάνεται στην κεφαλίδα CCMP (clear text) H τιμή τμή του PN συγκρίνεται με την τιμή του αμέσως προηγουμένου MPDU Αν η τιμή του PN < του ΡΝ (του προηγούμενου MPDU) Το MPDU θεωρείται επανάληψη παλαιότερου και απορρίπτεται. Slide: 26/30
Απενθυλάκωση CCMP /2 Το δεύτερο βήμα είναι η προετοιμασία για αποκρυπτογράφηση με το AES Counter Mode. Απαιτείται ο υπολογισμός της αρχικής τιμής του μετρητή counter (χρησιμοποιήθηκε κατά την κρυπτογράφηση) Γι αυτό συνδυάζονται οι τιμές: του μετρητή PN, της διεύθυνσης πηγής (SA), και του πεδίου priority Έτσι ο παραλήπτης είναι σε θέση να δημιουργήσει τη nonce. Η nonce πλαισιώνεται με το πεδίο Flag 01011001 και το πεδίο Ctr (Counter) μήκους 16 bits που έχει την τιμή 1 Slide: 27/30
Απενθυλάκωση CCMP /3 Κανένα πεδίο από τα προηγούμενα πεδία δεν είναι μυστικό. Ωστόσο για την αποκρυπτογράφηση απαιτείται το κλειδί TK εν το γνωρίζει ένας επιτιθέμενος Κατά την αποκρυπτογράφηση : οι διαδοχικές τιμές του μετρητή (counter) κρυπτογραφούνται Στη συνέχεια γίνονται XOR με τα αντίστοιχα τμήματα του κρυπτογραφήματος Καταλήγουμε στην παραγωγή των τμημάτων αρχικού κειμένου. Slide: 28/30
Απενθυλάκωση CCMP /4 Επόμενο βήμα είναι η επαλήθευση της τιμής του MIC: ημιουργείται το πρώτο τμήμα της διαδικασίας CBC-MAC το MIC υπολογίζεται στα ίδια δεδομένα AAD, κεφαλίδα CCMP, τμήματα αρχικού κειμένου, τα ψηφία padding Η τιμή MIC συγκρίνεται με αυτή που περιέχει το MPDU. Αν ταυτίζονται, τότε το πλαίσιο θεωρείται έγκυρο, αλλιώς απορρίπτεται. Το MPDU αποκωδικοποιείται και αφαιρούνται οι επικεφαλίδες MIC και CCMP Τα δεδομένα τοποθετούνται μαζί με αυτά άλλων ληφθέντων MPDUs Σχηματίζεται το αρχικό MSDU. Slide: 29/30
Σύνοψη Εξετάσαμε τα βασικά χαρακτηριστικά του πρωτοκόλλου CCMP το οποίο αποτελεί αναπόσπαστο στοιχείο των δικτύων RSN. Το CCMP ολοκληρώνει δύο αλγορίθμους: τον AES Counter Mode (AES-CTR) για υπηρεσίες εμπιστευτικότητας και τον AES Cipher Block Chaining (CBC-MAC) για την εξασφάλιση της αυθεντικότητας και ακεραιότητας των MPDUs που διακινούνται. Το CCMP επίσης προσφέρει προστασία από επανεκπομπή μέσω του μετρητή PN Slide: 30/30