Μαζί με τη ραγδαία ανάπτυξη των ασύρματων δικτύων Η/Υ τα τελευταία χρόνια εμφανίστηκε και η συνεπακόλουθη ανάγκη απόκρυψης και διασφάλισης της ακεραιότητας της ανταλλασσόμενης πληροφορίας.Την ανάγκη αυτή ήρθαν να καλύψουν οι τεχνικές κρυπτογράφησης που αναπτύχθηκαν ειδικά για αυτόν το σκοπό, αφού οι υπάρχουσες ήταν ελλιπείς ή δεν μπορούσαν καν να εφαρμοστούν για πολλούς και διάφορους λόγους.
Οι τεχνικές κρυπτογράφησης που αναπτύχθηκαν, βασίζονται πάνω σε ήδη γνωστές κρυπτογραφικές μεθόδους, κληρονομώντας έτσι τα όποια υπάρχοντα μειονεκτήματα και πλεονεκτήματα από άλλες υλοποιήσεις της σύγχρονης επιστήμης της κρυπτογραφίας.
Λόγω του ιδιαίτερου ενδιαφέροντος αλλά και της πρό(σ)κλησης λόγω της καθολικής διαθεσιμότητας ενός ασύρματου δικτύου στην ευρύτερη περιοχή του χωρίς περιορισμούς, κάποια από τα υπάρχοντα πρωτόκολλα εμφανίζονται πλέον ως αποτυχημένα, αφού έχει αποδειχθεί η αδυναμία τους σε «επιθέσεις».
Στο άρθρο αυτό θα περιγραφούν οι υλοποιήσεις κρυπτογραφικών μεθόδων στα ασύρματα δίκτυα και θα αναλυθούν μέθοδοι επίθεσης σε αυτά. Επίσης προτείνονται βασικές αρχές χρήσης και βασικοί κανόνες ισχυροποίησης των πρωτοκόλλων αυτών.
Στο δεύτερο μέρος αυτού του άρθρου που θα δημοσιευθεί σε επόμενο τεύχος, θα γίνει παρουσίαση μίας λεπτομερούς έρευνας που έγινε στην πόλη της Θεσσαλονίκης το 2008, σχετικά με τη γεωγραφική κατανομή ασύρματων δικτύων και τα ποσοστά υλοποίησης πρωτοκόλλων κρυπτογράφησης. Η έρευνα αυτή θα συγκριθεί με έρευνα που θα λάβει χώρα το Σεπτέμβριο-Οκτώβριο του 2010 στο ίδιο μέρος (κέντρο της Θεσσαλονίκης) ώστε να εξαχθούν χρήσιμα στατιστικά συμπεράσματα για την κατάσταση αυτήν τη στιγμή.
Πρωτόκολλα κρυπτογράφησης ασύρματων δικτύων
Όπως δείχνουν αντίστοιχες έρευνες, ακόμη και σήμερα είναι αρκετά τα ενεργά ασύρματα δίκτυα που δεν χρησιμοποιούν κανενός είδους κρυπτογράφηση. Σε αυτήν την περίπτωση είναι προφανές ότι δεν μπορεί να υπάρξει κανενός είδους προστασία των χρηστών και της ανταλλασσόμενης πληροφορίας, καθώς και των αποθηκευμένων στο εσωτερικό δίκτυο δεδομένων. Η κρυπτογράφηση των ασύρματων δικτύων μπορεί να χωριστεί σε δύο βασικές κατηγορίες:
- Στην τελείως ανασφαλή πλέον σήμερα κρυπτογράφηση WEP (εικόνα 1): Η κρυπτογράφηση WEP (Wired Equivalent Privacy) χρησιμοποιεί έναν εύκολα προσβαλλόμενο αλγόριθμο (RC4 ) και υπάρχουν πλέον ευρέως διαδεδομένες (και εύκολες) τεχνικές εύρεσης του μυστικού κλειδιού δικτύου. Φυσικά η εύρεση του κλειδιού συνδέει τον επιτιθέμενο στο δίκτυο αυτό. Σύμφωνα και με τη Microsoft, η χρήση του πρωτοκόλλου θα πρέπει να αποφεύγεται (1).
- Στην οικογένεια WPA/WPA2: Η WPA (WiFi Protected Access), η οποία θεωρείται πιο ασφαλής από τον πρόγονό της (WEP). Υποδιαιρείται σε δύο βασικές κατηγορίες/τρόπους λειτουργίας:
- Στην WPA-Personal ή WPA-PSK η οποία στηρίζεται πάνω στην ασφάλεια προ-μοιρασμένων κλειδιών (Pre-Shared Keys). Ως εκ τούτου βασικό ρόλο στην ασφάλεια των συνδέσεων παίζει το μήκος και η πολυπλοκότητα του κλειδιού αυτού.
- Στην ασφαλέστερη WPA-Enterprise, η οποία προϋποθέτει την ύπαρξη ενός 802.1x Server, ο οποίος αναλαμβάνει το διαμοιρασμό διαφορετικών κλειδιών για κάθε «πελάτη» υπολογιστή, ανεβάζοντας έτσι κατά πολύ την ασφάλεια του συστήματος αλλά και την πολυπλοκότητα και το κόστος αυτού.
Το WPA (εικόνα 2) χρησιμοποιεί τον αλγόριθμο RC4 με κλειδί μήκους 128-bit και χρησιμοποιεί την τεχνική Temporal Key Integrity Protocol (TKIP) με την οποία τα κλειδιά του συστήματος αλλάζουν δυναμικά, ενώ αυτό χρησιμοποιείται. Αν αυτό συνδυαστεί και με το μεγαλύτερο σε μέγεθος αρχικοποίησης Πίνακα Αρχικοποίησης (Initialization Vector-IV) μήκους 48-bit (σε σχέση με αυτόν του WEΡ που είναι μεγέθους μόνο 24-bit ), απαντά επιτυχώς στη γνωστότερη ίσως τεχνική επίθεσης στο WEP, την ονομαζόμενη key recovery attack . Επιπρόσθετα, το WPA απαντάει και στο γνωστό πρόβλημα ασφαλείας που είχε το WEP και επέτρεπε στον επιτιθέμενο να αλλάξει το περιεχόμενο του μηνύματος και παράλληλα να αλλάξει το CRC του μηνύματος, ακόμη και χωρίς να γνωρίζει το μυστικό κλειδί. Το WPA χρησιμοποιεί τον ασφαλέστερο MΙC ο οποίος μετράει τα εκπεμπόμενα frames, αποτρέποντας έτσι την επίθεση Replay Attack κατά την οποία το μυστικό κλειδί που εξέπεμψε στην αρχή το ένα από τα συναλλασσόμενα μέρη, επανεκπέμπεται αυτούσιο από τον επιτιθέμενο αργότερα, ώστε να γίνει αποδεκτός ως γνήσιος συνομιλητής. Επιπροσθέτως, αν το ΤΚΙP αντιληφθεί ότι δύο συνεχόμενα frames αποτυγχάνουν στην επαλήθευση του αλγόριθμου MIC (επονομαζόμενου και Michael), τότε σταματά κάθε δραστηριότητα στο δίκτυο για ένα έως δύο λεπτά, απαιτώντας τη δημιουργία καινούριων κλειδιών, αναγκάζοντας έτσι τον επιτιθέμενο να ξαναρχίσει από το σημείο 0 (3).
Το WPA2 χρησιμοποιεί πλέον έναν αλγόριθμο βασισμένο στον AES , τον CCMP (και όχι τον παρωχημένο και ανασφαλή RC4 που χρησιμοποιούν τα δύο προηγούμενα πρωτόκολλα). Από το 2006 η πιστοποίηση WPA2 είναι απαραίτητη για όλες τις συσκευές που θέλουν να λάβουν την πιστοποίηση Wi-Fi ( (4).
Στην υλοποίηση Pre-Shared key (PSK) το κλειδί μπορεί να είναι μήκους 8 έως 63 χαρακτήρων ASCII (εκτυπώσιμων μόνο) ή αντίστοιχα 64 δεκαεξαδικών ψηφίων (256-bit). Εάν γίνει χρήση των χαρακτήρων ASCII, τότε μία συνάρτηση κατακερματισμού (hash function) αναλαμβάνει να μειώσει το μήκος σε 256 bit. Η ασφάλεια του συστήματος εξασφαλίζεται με τη χρήση μίας συνάρτησης κατακερματισμού (PBKDF2).
Περιγραφή του WEP
Στην υλοποίηση WEP (Εικόνα 1) χρησιμοποιείται κρυπτογράφηση είτε 64 είτε 128 bit. Στην περίπτωση των 64 bit το κρυπτοκείμενο (cipher text) παράγεται μέσω του αλγόριθμου RC4, ο οποίος κρυπτογραφεί τα δεδομένα χρησιμοποιώντας το κλειδί κρυπτογράφησης που εισήγαγε ο χρήστης μήκους 40 bit και έναν πίνακα αρχικοποίησης (Initialization Vector -IV) μήκους 24 bit. Το αποτέλεσμα εισάγεται σε μία πύλη XOR μαζί με το αρχικό κείμενο (plain text) ώστε να δημιουργήσει το τελικό κρυπτογραφημένο πακέτο.
Λόγοι αποτυχίας του WEP
Ο πίνακας αρχικοποίησης (Initialization Vector, IV) χρησιμοποιείται σε κάθε κρυπτογραφημένο πακέτο που αποστέλλεται. Το μήκος του είναι μόλις 24 bit και έτσι είναι απλώς θέμα χρόνου πότε θα επαναχρησιμοποιηθεί . Δυστυχώς αυτός ο πίνακας εκπέμπεται ως απλό μη κρυπτογραφημένο κείμενο, επισυναπτόμενο στο υπόλοιπο κρυπτογραφημένο πακέτο (Σφάλμα! Το αρχείο προέλευσης της αναφοράς δεν βρέθηκε.).
Ο αλγόριθμος CRC-32 που χρησιμοποιεί το WEP για να δημιουργήσει τη σύνοψη (hash) δημιουργήθηκε για να εντοπίζει και να διορθώνει λάθη κατά τη μετάδοση ψηφιακών δεδομένων και όχι για να κρυπτογραφεί τέτοια δεδομένα.
Η συνεχής χρήση του ίδιου αρχικού κλειδιού WEP. Όλες οι ανταλλαγές δεδομένων (αποστολή πακέτων) χρησιμοποιούν το ένα και μοναδικό κλειδί για να κρυπτογραφήσουν τα δεδομένα. Η επιβεβλημένη περιοδική αλλαγή του είναι δύσκολη, γιατί αυτό συνεπάγεται και ενημέρωση για αυτήν την αλλαγή όλων των χρηστών του δικτύου. Έτσι, συνήθως το κλειδί αυτό παραμένει το ίδιο για πολύ μεγάλο χρονικό διάστημα.
Τρόποι επίθεσης στο WEP
Ο πίνακας αρχικοποίησης (IV) είναι το κομμάτι στο οποίο στοχεύει η επίθεση. Μπορεί να αναλυθεί στατιστικά κατά την προσπάθεια αποκωδικοποίησης. Η αποκρυπτογράφηση μπορεί να γίνει τμηματικά, αφού κάθε φορά που αποκρυπτογραφείται μέρος του αρχικού αλγόριθμου κρυπτογράφησης, αυτό επιβεβαιώνεται από την ορθότητα (μέσω σύγκρισης) του πίνακα αρχικοποίησης που αποκαλύπτεται.
Τη στιγμή που θα επανεκπεμφθεί ο ίδιος πίνακας σε δύο διαφορετικά πακέτα, μπορούμε λόγω της XOR να βρούμε κομμάτια του αρχικού κειμένου που εκπέμπονται με το μήνυμα, τα οποία χρησιμοποιούνται για στατιστική ανάλυση του υπόλοιπου δείγματος. Τμηματικά θα αποκαλυφθεί όλο το μη-κωδικοποιημένο κομμάτι του μηνύματος. Αυτό το κομμάτι είναι ίδιο (και πλέον γνωστό) για όλα τα μηνύματα που χρησιμοποιούν τον ίδιο πίνακα αρχικοποίησης.
Ο χρόνος της λήψης δύο ίδιων πινάκων αρχικοποίησης, προφανώς δεν είναι προκαθορισμένος και για αυτό υπάρχουν διάφορες τεχνικές που προσπαθούν να επιταχύνουν αυτήν τη διαδικασία. Συνήθως γίνεται προσπάθεια να εξαναγκαστεί ο σταθμός-στόχος να επανεκπέμψει το υποτιθέμενο απορριφθέν ή μη ληφθέν πακέτο ή πακέτα NACK . Κάθε φορά εκπέμπεται και ένας (διαφορετικός) πίνακας αρχικοποίησης, μειώνοντας ταχύτατα το διαθέσιμο εύρος τιμών του. Έτσι, πολύ σύντομα θα επανεκπεμφθεί ο ίδιος πίνακας.
Περιγραφή του WPA
Όπως προαναφέρθηκε, το WPA είναι απαλλαγμένο από τα «αμαρτήματα» του προκατόχου του (WEP).
Επειδή το κλειδί κάθε πακέτου είναι διαφορετικό, δεν μπορεί να υπάρξει επίθεση brute force, μία επίθεση δηλαδή που να συγκρίνει στατιστικά τα διάφορα πακέτα προσπαθώντας να βρει ομοιότητες στο pattern.
Δυστυχώς όμως και το WPA έχει το αδύνατο σημείο του. Αυτό το σημείο είναι τα πακέτα που εκπέμπονται όταν ένας σταθμός ζητάει να συνδεθεί με το σταθμό βάσης (handshake packets). Είναι προφανές ότι τα αρχικά πακέτα με τα οποία ένας σταθμός ζητάει να συνδεθεί, θα περιέχουν οπωσδήποτε και τη λέξη-κλειδί που έχει οριστεί ως συνθηματικό ταυτοποίησης και εισόδου στο δίκτυο.
Περιγραφή της μεθόδου επίθεσης στο WPA
To WPA χρησιμοποιεί έναν αρκετά πιο πολύπλοκο τρόπο διαχείρισης των πακέτων . Το αρχικό κλειδί που έχει επιλέξει ο χρήστης, σε συνδυασμό με άλλα δεδομένα παράγουν το τελικό κλειδί που χρησιμοποιεί το δίκτυο, το ονομαζόμενο Pairwise Transient Key (PTK). Επειδή το PTK χρησιμοποιείται στην αρχική χειραψία των δύο μερών (4-way handshake), τα πακέτα αυτά μπορούν να χρησιμοποιηθούν για να ελεγχθούν διεξοδικά από υπάρχουσες εφαρμογές που εκτελούν επιθέσεις λεξικού (dictionary attacks), σύγκρισης δηλαδή με υπάρχουσες λέξεις σε ένα λεξικό .
Υποδεικνύεται ότι λέξεις μήκους μικρότερου από 20 χαρακτήρων είναι στατιστικά αδύνατο να αντέξουν σε τέτοιου είδους επίθεση (5).
Αυτού του είδους οι επιθέσεις μάλιστα, θεωρείται πολύ ευκολότερο να υλοποιηθούν από τις επιθέσεις στο WEP.
Επίσης πρέπει να αποφεύγεται η χρήση των προεπιλεγμένων ονοματολογίων δικτύου (SSID ) που φέρει η κάθε συσκευή από το εργοστάσιο (π.χ. Netgear, Cisco, ConnX κτλ). Ερευνητικές Ομάδες Ασφάλειας (6) αναφέρουν ότι έχουν δημιουργήσει πίνακες (Rainbow Tables) με τιμές κατακερματισμού (Hash values) κοινών SSID με πάνω από 190 δις καταχωρήσεις. Αυτές μπορούν να χρησιμοποιηθούν για να επιταχύνουν κατά πολύ τη διαδικασία επίθεσης λεξικού.
Επειδή όπως αναφέρθηκε, το WPA έχει υλοποιημένο μηχανισμό ανίχνευσης διαδοχικών λανθασμένων προσπαθειών εισόδου στο δίκτυο, σε συνδυασμό με την ταχύτητα ελέγχου της κάθε λέξης-κωδικού εισόδου που θέλει να δοκιμάσει ο επίδοξος εισβολέας, η διαδικασία δοκιμής λέξεων-κλειδιών ελέγχου δεν μπορεί να γίνει με συμμετοχή του πραγματικού σταθμού εκπομπής, αλλά πρέπει να γίνει off-line, δηλαδή δοκιμή πιθανών κλειδιών αν αποκρυπτογραφεί σωστά το «συλληφθέν» πακέτο «χειραψίας».
Ο χρόνος ανεύρεσης μίας τέτοιας λέξης μέσω εξαντλητικής αναζήτησης για ένα μέσο σημερινό υπολογιστή, με την προϋπόθεση ότι αυτός μπορεί να ελέγξει περίπου 300 κλειδιά το δευτερόλεπτο, ανέρχεται σε 3.600 χρόνια! Αν ο υπολογιστής αυτός γίνει δέκα φορές ταχύτερος (3.000 κλειδιά/δευτερόλεπτο, ταχύτητα ασύλληπτη σήμερα) θα χρειαστεί 360 χρόνια για την εύρεση του κλειδιού. Ακόμη και αν επιταχυνθεί κατά 1.000 φορές η αναζήτηση, όπως γίνεται στην περίπτωση χρήσης ενός συγκεκριμένου ολοκληρωμένου κυκλώματος που υπάρχει σε κάποιες κατηγορίες καρτών γραφικών (NVIDIA) (7), ο χρόνος μειώνεται σε 3,6 χρόνια. Άρα, αρκεί ο διαχειριστής του δικτύου να αλλάζει αυτόν τον κωδικό μία φορά κάθε μήνα για να καταστήσει το δίκτυό του πρακτικά απαραβίαστο.
Νέες έρευνες & τεχνικές
Πρόσφατα εμφανίστηκαν στη βιβλιογραφία κάποιες επιθέσεις ενάντια στο WPA, στοχεύοντας τα πακέτα δεδομένων και όχι τα αρχικά πακέτα «χειραψίας».
Πρέπει να τονιστεί ότι αυτού του είδους οι επιθέσεις δεν αποκαλύπτουν σε καμία περίπτωση το αρχικό κλειδί-κωδικό εισόδου του δικτύου, αλλά βάσει κάποιων προϋποθέσεων μπορούν να επιτεθούν παράπλευρα στους συνδεδεμένους χρήστες.
Προϋποθέσεις για την επίθεση είναι να χρησιμοποιείται μεγάλος χρόνος για την ανανέωση των κλειδιών (re-keying interval=3.600 seconds) και να είναι ενεργοποιημένη η υπηρεσία Quality of Service στο σταθμό εκπομπής (Access Point -AP) η οποία υλοποιεί έως 15 διαφορετικά κανάλια προτεραιότητας δεδομένων (8).
Με αυτές τις προϋποθέσεις, ο επιτιθέμενος περιμένει να συλλέξει ένα πακέτο ARP και επειδή το περισσότερο μέρος του περιεχομένου αυτών των πακέτων είναι συγκεκριμένο, άρα γνωστό, μπορεί να εξαντλήσει τους πιθανούς συνδυασμούς για το λιγοστό άγνωστο μέρος. Τα πακέτα με τους πιθανούς συνδυασμούς εκπέμπονται σε άλλο κανάλι προτεραιότητας, οπότε δεν χρειάζεται να αλλαχθεί ο αριθμός του πακέτου που ελέγχει ο MIC, ενώ το προσωρινό κλειδί του δικτύου παραμένει το ίδιο λόγω του μεγάλου χρόνου αναδιανομής κλειδιών (re-keying interval). Με αυτή την τεχνική ο επιτιθέμενος μπορεί να εξαπολύσει επίθεση ARP Poison, να στείλει δηλαδή τα δεδομένα του χρήστη σε έναν άλλον Η/Υ από αυτόν για τον οποίο προορίζονται. Μπορεί επίσης να εξαπολύσει επίθεση DNS Poison, να καταφέρει δηλαδή να ανακατευθύνει τους συνδεδεμένους Η/Υ σε ιστοσελίδες της επιλογής του (π.χ. ο χρήστης πληκτρολογεί www.microsoft.com και οδηγείται σε μία άλλη ιστοσελίδα, που φυσικά είναι πανομοιότυπη με την πρωτότυπη αλλά περιέχει ιούς, malware κτλ).
Οι τρόποι άμυνας που προτείνονται για την αποτροπή αυτού του είδους των επιθέσεων είναι εύκολοι και άμεσα υλοποιήσιμοι:
- Ο κάθε σταθμός εκπομπής πρέπει να έχει μικρό re-keying interval time. Στη δημοσίευση του εφευρέτη (8) της μεθόδου, προτείνεται χρόνος 120 seconds ή μικρότερος.
- Η απενεργοποίηση της υπηρεσίας QoS για τους ασύρματους σταθμούς εκπομπής. Η υπηρεσία αυτή ούτως ή άλλως χρησιμοποιείται σπάνια και δεν παίζει βασικό ρόλο στα ασύρματα δίκτυα.
Να σημειωθεί εδώ ότι σύμφωνα και με επανειλημμένες δηλώσεις του συγγραφέα των σχετικών άρθρων, δεν έχει βρεθεί τρόπος ανάκτησης του μυστικού κλειδιού (password) του δικτύου.
Επίσης οι επιθέσεις αυτές δεν μπορούν να υλοποιηθούν εναντίον της ισχυρότερης έκδοσης του WPA, της εταιρικής WPA-Enterprise ή αλλιώς WPA2/CCCMP, η οποία δείχνει εξαιρετικά απίθανο να παραβιαστεί τα επόμενα χρόνια και η οποία προτείνεται ανεπιφύλακτα για χρήση από μεγάλες εταιρείες, Οργανισμούς κτλ.
Συμπεράσματα
Η κρυπτογράφηση των ασύρματων δικτύων έχει φτάσει πλέον σε ικανοποιητικά επίπεδα. Αν χρησιμοποιηθούν οι νέες τεχνικές και τεχνολογίες, τότε ένα τέτοιο δίκτυο είναι πρακτικά απαραβίαστο. Για να συμβεί αυτό θα πρέπει να συντρέχει μία σειρά από προϋποθέσεις:
- Πρέπει οπωσδήποτε να χρησιμοποιείται ως πρωτόκολλο κρυπτογράφησης του δικτύου τουλάχιστον το WPA, με προτιμητέο το WPA2.
- Πρέπει να επιλέγεται ως μυστική λέξη-κλειδί του δικτύου μία λέξη που να μην υπάρχει σε λεξικό και να είναι ικανοποιητικού μεγέθους (μπορεί να είναι μήκους 20 χαρακτήρων). Πρέπει επίσης να περιέχονται στη λέξη οπωσδήποτε κάποια κεφαλαία γράμματα και σύμβολα (8,&,^,% $ κτλ).
- Η μυστική λέξη-κλειδί θα πρέπει να αλλάζει κατά τακτά χρονικά διαστήματα. Έτσι αποφεύγονται και οι επιθέσεις λεξικού αλλά και οι πολύ πιθανές διαρροές λόγω του ανθρώπινου παράγοντα.
- Στην περίπτωση εταιρειών και Οργανισμών θα πρέπει να χρησιμοποιείται η έκδοση WPA2.
Σε καμία περίπτωση δεν πρέπει να χρησιμοποιείται πλέον το πρωτόκολλο WEP. Είναι τελείως ανασφαλές και η χρήση του ισοδυναμεί με τη μη χρήση κρυπτογραφικής μεθόδου.
Βιολέττας Ε. Γεώργιος M.Sc, georgevio@gmail.com
Θεοδώρου Τρύφων Μ.Sc. tryfonthe@gmail.com