Affectation 5: Voitures et porte-clés

Aperçu

Presque toutes les voitures sont actuellement équipées d’un porte-clés, qui vous permet d’ouvrir les portes et de démarrer la voiture. Lorsque vous achetez une voiture, la commodité est la caractéristique convaincante. Vous pouvez laisser le porte-clés dans votre poche et ne plus jamais vous soucier d’avoir une clé physique. Ça sonne bien.

L’hypothèse implicite que vous faites est que le système de porte-clés est sécurisé et qu’une personne au hasard avec 50 hardware de matériel ne peut pas partir avec votre voiture. Vous n’avez aucun moyen réel de savoir si l’entreprise automobile a fait un travail raisonnable avec son système, vous devez donc leur faire confiance. Malheureusement, cette confiance n’est pas toujours justifiée. Et ce n’est que lorsque les gens essaient de pirater ces systèmes que les problèmes apparaissent. Des problèmes que des personnes moins scrupuleuses ont peut-être déjà exploités.

Porte-clés de votre voiture

Il existe de nombreux systèmes de porte-clés différents. Nous commencerons par regarder le porte-clés de ma Prius 2006. Les porte-clés utilisent ce qu’on appelle un système sans clé à distance (RKS). Aux États-Unis, ceux-ci fonctionnent à 315 MHz, +/- 2,5 MHz. Ma clé Prius s’est avérée être à 312,590 MHz.Les porte-clés sont tous répertoriés dans la base de données FCC. Regarder les nouvelles entrées est l’une des façons dont les gens peuvent savoir quand de nouveaux modèles de voitures sortent. Ceux-ci apparaîtront bien avant l’annonce officielle.

Vous pouvez déterminer la fréquence que votre porte-clés transmet à l’aide de votre SDR et utiliser GQRX ou SDR # pour surveiller le spectre. Lorsque vous appuyez sur un bouton du fob, vous devriez voir un bref saut dans le spectre. Vous devrez peut-être déplacer la bande de fréquences vers le haut ou vers le bas de quelques MHz pour trouver le signal, le mien était presque 2,5 MHz bas.

Un mot d’avertissement. Ne vous laissez pas trop emporter en appuyant sur le bouton! Le système RKS utilise un code généré pseudo-aléatoirement. Le porte-clés et la voiture restent synchronisés, de sorte que la voiture reconnaisse le code suivant. Cependant, si le porte-clés prend trop d’avance dans la séquence (100 secondes de poussées de bouton), la voiture ne le reconnaîtra pas. Cela rend la clé (et la voiture) considérablement moins utile!

Si nous capturons le signal, le résultat est affiché ci-dessous

La largeur totale du tracé est de 10 secondes, vous pouvez donc voir qu’il y a une pression sur une touche peu après 2 secondes et une autre peu après 5 secondes.

Si nous traçons 100 ms à partir de 2 secondes, nous pouvons voir le signal numérique que nous recherchons:

En zoomant sur les deux premiers bits, nous obtenons

Les bits sont faciles à identifier. Un seuil de décision de 15 donnera une détection presque parfaite. Si nous faisons cela, puis tracons la première partie des données numériques pour les deux pressions sur les touches, nous obtenons ceci

Bien que les deux commencent de la même manière, ils divergent rapidement. C’est une chance, car si le signal était le même à chaque fois, vous auriez assez d’informations pour voler ma voiture maintenant!

Les données sont à nouveau activées-désactivées (OOK). Il s’agit également presque certainement d’un codage en phase divisée (ou Manchester). Au lieu d’un « 1 » étant élevé, et d’un « 0 » étant faible, l’information est codée dans la transition de haut en bas ou de bas en haut. Cela signifie qu’un bit « 0 » est une transition montante et un bit « 1 » est une transition descendante. Un bon moyen de reconnaître l’encodage en phase divisée est que vous ne pouvez avoir qu’un ou deux segments bas ou hauts d’affilée. La bonne chose à propos de l’encodage Manchester est que chaque symbole a une transition, et ceux-ci sont plus faciles à trouver lorsque le signal a été élevé ou faible pendant plusieurs intervalles.

Cet exemple est OOK, qui est le plus courant pour les télécommandes de voiture. Certains utilisent la clé à décalage de fréquence (FSK), où chaque bit est transmis comme une fréquence différente, et l’enveloppe est constante.

Attaques sur les télécommandes de voiture

Il existe de nombreuses attaques différentes qui peuvent être utilisées contre les télécommandes de voiture, selon leur fonctionnement et le type d’accès que vous recherchez. Le plus simple vous permet d’ouvrir la voiture. Des attaques plus approfondies vous donnent un contrôle complet en clonant essentiellement la télécommande.

La plupart des porte-clés utilisent une clé roulante. Cela produit une nouvelle forme d’onde qui dépend de l’ID du porte-clés, d’une graine aléatoire et du nombre de fois où la touche a été enfoncée. La voiture garde une trace du dernier code qu’elle a reçu et sait quels pourraient être les prochaines centaines de codes. S’il détecte l’un des futurs codes attendus, il ouvre la voiture. S’il reçoit un code précédemment utilisé, il cesse de répondre au porte-clés. Pour la Prius, vous devez faire la « Danse du poulet » pour la faire fonctionner à nouveau, à condition d’avoir un autre porte-clés fonctionnel. Sinon, vous devez demander au concessionnaire de reconfigurer la voiture, pour plusieurs centaines de dollars. J’ai dû le faire plusieurs fois, maintenant (pour d’autres raisons).

Il y a plusieurs lignes d’attaque. L’un consiste simplement à enregistrer la sortie du porte-clés pour quelques pressions sur les boutons lorsqu’il est loin de la voiture ou que la voiture est bloquée. Avec les codes inutilisés enregistrés, vous pouvez ouvrir la voiture.

Une autre consiste à inverser la séquence RKS. En général, cela devrait être extrêmement difficile. Cependant, il y a eu plusieurs situations où c’est très facile.

Enfin, il y a des voitures qui s’ouvrent lorsque le propriétaire s’approche de la voiture. Ceci est basé sur un signal de faible puissance qui ne peut être reçu que lorsque le porte-clés est très proche. Ceci peut être vaincu en amplifiant ces petits signaux.

Il y a beaucoup plus d’attaques, et celles-ci continueront de se multiplier à mesure que les voitures deviendront plus complexes et auront plus de systèmes informatiques embarqués. Vous pouvez en regarder quelques-uns pour la semaine prochaine.

Attaques de relecture

L’approche la plus ancienne et la plus simple consistait à enregistrer la forme d’onde émise par un porte-clés (à l’aide de votre rtl-sdr), puis à la rejouer. Cela fonctionne bien pour les ouvre-portes de garage plus anciens, qui utilisaient une seule clé fixe. Il y a encore des voitures qui ont des porte-clés qui fonctionnent de cette façon (certaines Mercedes d’avant 2000 par exemple).

Pour les porte-clés qui utilisent une touche roulante, vous pouvez toujours utiliser une attaque de replay. Si vous pouvez accéder au porte-clés lorsqu’il est éloigné de la voiture et enregistrer plusieurs pressions sur les touches, vous pouvez les rejouer pour ouvrir la voiture.

Si vous ne pouvez pas accéder au porte-clés, une deuxième approche consiste à créer un appareil qui enregistre la sortie du porte-clés lorsqu’il est utilisé et bloque simultanément la voiture. Une façon standard de le faire est d’écouter la transmission du porte-clés, puis de commencer à bloquer lorsque les bits de correction d’erreur sont transmis à la fin. De cette façon, vous ne vous bloquez pas. La voiture ne reconnaîtra pas le paquet, mais vous pouvez recréer les bits de correction d’erreur et retransmettre la forme d’onde plus tard.

Enfin, un brouilleur à lui seul empêchera la télécommande de commencer à verrouiller la voiture. Si le conducteur n’est pas attentif, il peut s’éloigner de la voiture en la laissant ouverte.

Dispositifs de retransmission

Tout cela dépend de votre capacité à transmettre et à recevoir des RF. Vos rtl-DTS ne sont que des récepteurs et font un excellent travail d’acquisition de signaux. Il y a beaucoup d’options pour transmettre. Il existe un certain nombre de dongles USB basés sur les puces TI CC111X utilisées dans les porte-clés, comme celui-ci

Une approche intéressante et plus flexible utilise votre Raspberry PI pour générer des RF en envoyant une séquence de données soigneusement conçue au port GPIO. Ceci est décrit en détail, avec des vidéos et des liens vers le code ici:

Transmetteur Raspberry PI

Avec cela, vous pouvez générer à peu près n’importe quelle forme d’onde de paquet numérique que vous souhaitez. Les niveaux de puissance sont plus que suffisants pour émuler un porte-clés. Les rtl-sdr sont également bien pris en charge sur le Raspberry PI, donc les deux ensemble vous donnent un système de piratage de porte-clés total pour environ 50 $, comme nous le verrons bientôt.

Attaquer les systèmes d’entrée et de démarrage sans clé passifs

De nombreuses voitures haut de gamme utilisent un système passif pour ouvrir la voiture lorsque le conducteur s’approche. Un signal de faible puissance est transmis de la voiture comme un défi. Le porte-clés répond alors par une authentification. Parce que la puissance est si faible, la voiture suppose que le conducteur doit être à proximité si elle reçoit une réponse.

Ces systèmes peuvent être piratés en construisant un répéteur placé près de la voiture. Il capte le signal de la voiture et le retransmet à une puissance plus élevée. La télécommande peut être n’importe où avec quelques centaines de mètres, et elle entendra toujours le signal. La télécommande répond, et cela est à nouveau capturé par le répéteur et retransmis. La voiture pense que le porte-clés est à proximité et ouvre la voiture.

La bonne chose à propos de cette approche est que vous n’avez rien à savoir sur le porte-clés, sauf sa fréquence. Vous n’avez pas besoin de désosser le protocole qu’il utilise, vous utilisez simplement la vraie clé!

Voici une vidéo de quelques voleurs de soins volant une Tesla avec cette approche

Attaque à distance passive, Tesla Model 3

Comment pouvez-vous réduire ce risque?

Attaque du système de clés roulantes

Les attaques suivantes vont après le système de clés roulantes lui-même. La façon dont cela fonctionne généralement est que le porte-clés envoie un identifiant, ainsi qu’un compteur du nombre de fois où une touche a été enfoncée. Ceci est crypté et transmis à la voiture lorsque vous appuyez sur le bouton.

Si le cryptage est fort, il est extrêmement difficile de déterminer ce qu’est l’ID utilisateur et le compteur. Il y a plusieurs cas intéressants. L’un concerne les 20 ans de VW (et Audi, Porsche, etc.), que nous examinerons ici. Un autre est pour Subarus, que vous pouvez regarder pour votre mission cette semaine.

Une description du système VW RKS est donnée ici

VW Hack

Cela pointe vers un article Câblé (qui malheureusement se trouve actuellement derrière un paywall), et comprend un document technique qui détaille en détail son fonctionnement. Les auteurs du document technique ont examiné les systèmes VW RKS au cours des 20 dernières années.

Pour les systèmes les plus récents, le cryptage était relativement fort, équivalent à une clé de 90 bits. Cependant, il s’avère qu’ils ont utilisé la même clé dans chaque voiture! 100 millions d’entre eux!

Le défi consiste alors à déterminer quelle est la clé et quel est l’algorithme de chiffrement. La voiture elle-même vous aide à résoudre celle-là. Lorsque le bouton est enfoncé, la voiture reçoit le signal, puis le décode dans l’ordinateur de bord (ECU). La clé et l’algorithme sont stockés dans le micrologiciel de l’ECU. Les auteurs ont acheté des calculateurs sur eBay, téléchargé le firmware et procédé à l’ingénierie inverse du cryptage (ce sont généralement des opérations bit à bit assez simples et faciles à identifier). Grâce à cette connaissance, après avoir acquis le signal d’une seule pression sur la touche, l’ID utilisateur et le compteur peuvent être décodés, et le porte-clés cloné, donnant un contrôle complet de la voiture.

Il y a quelques choses intéressantes ici. La première est que chaque voiture VW décode chaque porte-clés, donc en surveillant l’exécution de votre ECU, vous pouvez trouver l’ID utilisateur et le compteur de toutes les voitures autour de vous. Il y a des rapports de personnes utilisant des systèmes comme celui-ci pour voler d’autres marques de voitures, aussi.

La raison pour laquelle seule votre voiture répond à votre télécommande est que votre voiture a une « liste d’autorisation » des identifiants de porte-clés auxquels elle répond. C’est ce qui est réglé lorsque vous réactivez la voiture.

Tout cela semble assez alarmant. Mais ça empire, comme nous le verrons la semaine prochaine.

Affectation

Vous avez plusieurs options pour votre affectation cette semaine. Pour chaque sujet, générez environ 5 diapositives pour décrire vos pensées ou vos résultats. Inscrivez-vous ici

Feuille d’inscription

et téléchargez vos diapositives ici:

Diapositives de la semaine 5

1. Cet article concerne le système Subaru RKS. Lisez-le, regardez les vidéos et décrivez ce que vous trouvez.

Subaru RKS

2. Vous êtes-vous déjà demandé comment fonctionnent ces cartes clés d’hôtel? Cet article décrit un hack non RF qui exploite les mêmes idées que les attaques de porte-clés.

Cartes clés d’hôtel

3. Pourquoi voler une voiture quand vous pouvez avoir un bulldozer! Lisez cet article et regardez la vidéo pour voir comment cela fonctionne.

Machines industrielles de piratage

4. Il y a beaucoup d’autres piratages de voitures là-bas. Voyez si vous pouvez trouver quelque chose d’intéressant et décrivez-le. Recherchez des histoires où vous pouvez comprendre comment cela fonctionne. Les systèmes de divertissement sont un mode d’accès courant (vérifiez le hack Uconnect pour les Jeeps). Tesla et les pirates informatiques ont un jeu du chat et de la souris de longue date. Il y a beaucoup d’exemples intéressants ici

5. Si vous avez un Raspberry Pi, voyez si vous pouvez l’amener à transmettre un signal. Cela devrait être assez simple. Utilisez le lien ci-dessus. Je vous enverrai un Raspberry Pi si vous souhaitez essayer ceci.

Enfin, si vous ne l’avez pas déjà fait, veuillez m’envoyer un e-mail pour savoir comment se déroule le cours pour vous. J’apprécie d’entendre vos pensées. Merci!

Page générée le 2021-02-10 22:57:00 PST, par jemdoc.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.