Sub-GHz RF
Last updated
Last updated
Les ouvre-portes de garage fonctionnent généralement dans la plage de fréquences de 300 à 190 MHz, avec les fréquences les plus courantes étant 300 MHz, 310 MHz, 315 MHz et 390 MHz. Cette plage de fréquences est couramment utilisée pour les ouvre-portes de garage car elle est moins encombrée que d'autres bandes de fréquences et est moins susceptible de subir des interférences d'autres appareils.
La plupart des télécommandes de clés de voiture fonctionnent sur 315 MHz ou 433 MHz. Ce sont toutes deux des fréquences radio, et elles sont utilisées dans diverses applications. La principale différence entre les deux fréquences est que 433 MHz a une portée plus longue que 315 MHz. Cela signifie que 433 MHz est mieux adapté aux applications nécessitant une portée plus longue, comme l'entrée sans clé à distance. En Europe, le 433,92 MHz est couramment utilisé et aux États-Unis et au Japon, c'est le 315 MHz.
Si au lieu d'envoyer chaque code 5 fois (envoyé de cette manière pour s'assurer que le récepteur le reçoit), vous l'envoyez une seule fois, le temps est réduit à 6 minutes :
et si vous supprimez la période d'attente de 2 ms entre les signaux, vous pouvez réduire le temps à 3 minutes.
De plus, en utilisant la séquence de De Bruijn (une manière de réduire le nombre de bits nécessaires pour envoyer tous les nombres binaires potentiels à forcer), ce temps est réduit à seulement 8 secondes :
Un exemple de cette attaque a été implémenté dans https://github.com/samyk/opensesame
Exiger un préambule évitera l'optimisation de la séquence de De Bruijn et les codes tournants empêcheront cette attaque (en supposant que le code soit suffisamment long pour ne pas être forcé).
Pour attaquer ces signaux avec Flipper Zero, vérifiez :
Les ouvre-portes de garage automatiques utilisent généralement une télécommande sans fil pour ouvrir et fermer la porte de garage. La télécommande envoie un signal radiofréquence (RF) à l'ouvre-porte de garage, qui active le moteur pour ouvrir ou fermer la porte.
Il est possible pour quelqu'un d'utiliser un dispositif appelé un intercepteur de code pour intercepter le signal RF et l'enregistrer pour une utilisation ultérieure. C'est ce qu'on appelle une attaque de rejeu. Pour prévenir ce type d'attaque, de nombreux ouvre-portes de garage modernes utilisent une méthode de cryptage plus sécurisée appelée système de code tournant.
Le signal RF est généralement transmis en utilisant un code tournant, ce qui signifie que le code change à chaque utilisation. Cela rend difficile pour quelqu'un d'intercepter le signal et de l'utiliser pour accéder de manière non autorisée au garage.
Dans un système de code tournant, la télécommande et l'ouvre-porte de garage ont un algorithme partagé qui génère un nouveau code à chaque utilisation de la télécommande. L'ouvre-porte de garage ne répondra qu'au code correct, ce qui rend beaucoup plus difficile pour quelqu'un d'accéder de manière non autorisée au garage simplement en capturant un code.
Essentiellement, vous écoutez le bouton et capturez le signal pendant que la télécommande est hors de portée du dispositif (comme la voiture ou le garage). Ensuite, vous vous déplacez vers le dispositif et utilisez le code capturé pour l'ouvrir.
Un attaquant pourrait brouiller le signal près du véhicule ou du récepteur afin que le récepteur ne puisse pas réellement ‘entendre’ le code, et une fois que cela se produit, vous pouvez simplement capturer et rejouer le code lorsque vous avez arrêté de brouiller.
La victime finira par utiliser les clés pour verrouiller la voiture, mais ensuite l'attaque aura enregistré suffisamment de codes de "fermeture" qui, espérons-le, pourraient être renvoyés pour ouvrir la porte (un changement de fréquence pourrait être nécessaire car il y a des voitures qui utilisent les mêmes codes pour ouvrir et fermer mais écoutent les deux commandes sur des fréquences différentes).
Le brouillage fonctionne, mais il est perceptible car si la personne verrouillant la voiture teste simplement les portes pour s'assurer qu'elles sont verrouillées, elle remarquerait que la voiture est déverrouillée. De plus, s'ils étaient conscients de telles attaques, ils pourraient même écouter le fait que les portes n'ont jamais fait le bruit de verrouillage ou que les feux de la voiture n'ont jamais clignoté lorsqu'ils ont appuyé sur le bouton de ‘verrouillage’.
Il s'agit d'une technique de brouillage plus furtive. L'attaquant brouillera le signal, donc lorsque la victime essaiera de verrouiller la porte, cela ne fonctionnera pas, mais l'attaquant enregistrera ce code. Ensuite, la victime essaiera de verrouiller la voiture à nouveau en appuyant sur le bouton et la voiture enregistrera ce deuxième code. Immédiatement après cela, l'attaquant peut envoyer le premier code et la voiture se verrouillera (la victime pensera que la deuxième pression l'a fermée). Ensuite, l'attaquant pourra envoyer le deuxième code volé pour ouvrir la voiture (en supposant qu'un code de "fermeture de la voiture" peut également être utilisé pour l'ouvrir). Un changement de fréquence pourrait être nécessaire (car il y a des voitures qui utilisent les mêmes codes pour ouvrir et fermer mais écoutent les deux commandes sur des fréquences différentes).
L'attaquant peut brouiller le récepteur de la voiture et non son récepteur car si le récepteur de la voiture écoute par exemple sur une large bande de 1 MHz, l'attaquant ne brouillera pas la fréquence exacte utilisée par la télécommande mais une proche dans ce spectre tandis que le récepteur de l'attaquant écoutera dans une plage plus petite où il peut écouter le signal de la télécommande sans le signal de brouillage.
D'autres implémentations vues dans les spécifications montrent que le code tournant est une partie du code total envoyé. Par exemple, le code envoyé est une clé de 24 bits où les 12 premiers sont le code tournant, les 8 suivants sont la commande (comme verrouiller ou déverrouiller) et les 4 derniers sont le checksum. Les véhicules mettant en œuvre ce type sont également naturellement vulnérables car l'attaquant n'a qu'à remplacer le segment de code tournant pour pouvoir utiliser n'importe quel code tournant sur les deux fréquences.
Notez que si la victime envoie un troisième code pendant que l'attaquant envoie le premier, le premier et le deuxième code seront invalidés.
En testant contre un système de code tournant après-vente installé sur une voiture, envoyer le même code deux fois a immédiatement activé l'alarme et l'immobilisateur, offrant une opportunité unique de déni de service. Ironiquement, le moyen de désactiver l'alarme et l'immobilisateur était de presser la télécommande, offrant à un attaquant la possibilité de réaliser continuellement une attaque par déni de service. Ou mélanger cette attaque avec la précédente pour obtenir plus de codes car la victime voudrait arrêter l'attaque le plus rapidement possible.