Επίθεση σε κυλιόμενους κωδικούς με τη χρήση SDR εργαλείων
Attacking rolling codes using SDR tools
View/ Open
Keywords
Rolling codesAbstract
Στην παρούσα εργασία περιγράφεται και αναλύεται ο τρόπος κατά τον οποίο μπορούμε να παραβιάσουμε την ασφάλεια ενός οχήματος, εκμεταλλευόμενοι την απουσία του αμοιβαίου ελέγχου αυθεντικοποίησης μεταξύ του κλειδιού και του δέκτη (εντός του οχήματος), απλά με την χρήση ενός ηλεκτρονικού υπολογιστή (laptop), σε συνδυασμό με το HackRF One - ενός ειδικά σχεδιασμένου εργαλείου τόσο σε επίπεδο hardware όσο και σε επίπεδο software με τέτοιο τρόπο ώστε να μπορεί να καταγράφει αλλά και να εκπέμπει σήματα σε συχνότητα UHF (Ultra-High Frequency).
Έχουν γίνει αρκετές αναφορές, στο παρελθόν, σε Replay attacks (επανεκπομπή σήματος). Στη περίπτωση αυτή όμως, προσπαθήσαμε να μαντέψουμε και να εξαντλήσουμε την ακολουθία των bits που στέλνεται ως πληροφορία στον δέκτη με την χρήση της γλώσσας προγραμματισμού Python σε συνδυασμό με ένα Out of Tree module που κατασκευάσαμε μέσω των δυνατοτήτων που μας παρέχοντας μέσω του GNU Radio – software που χρησιμοποιείται για την επεξεργασία, λήψη και αποστολή ενός σήματος από ψηφιακό σε αναλογικό.
Καθώς μας είναι γνωστό ότι τα κλειδιά των αυτοκινήτων σε Ευρωπαϊκά εδάφη εκπέμπουν στη συχνότητα των ~433 MHz, και μη έχοντας φυσική πρόσβαση στο τηλεχειριστήριο του οχήματος, το μόνο που χρειάζεται να γνωρίζουμε είναι η μάρκα του οχήματος που αντιστοιχεί στο εκάστοτε σήμα που έχουμε ως στόχο. Στην προκειμένη περίπτωση το σενάριο μας εφαρμόζεται σε ένα Audi A3 του 2011. Γνωρίζοντας λοιπόν την μάρκα του αυτοκινήτου και κατά προσέγγιση την χρονολογία κατασκευής του μπορούμε να συλλέξουμε βασικές πληροφορίες για την κατασκευή του τηλεχειριστηρίου αλλά και του αλγόριθμου κρυπτογράφησης.
Συλλέξαμε λοιπόν όλα τα απαραίτητα δεδομένα για το όχημά μας, και έπειτα από την ανάλυση του σήματος, χρησιμοποιήσαμε όλες αυτές τις πληροφορίες για την επανακατασκευή από την αρχή. Ολοκληρώνοντας και την τελευταία διαδικασία απλά βρεθήκαμε σε απόσταση ~10 μέτρων από το όχημά μας και με μία απλή εκτέλεση του κώδικα από το GNU Radio ήταν αρκετή για να το παραβιάσουμε.