Les télécommandes à code tournant
Connaissez-vous les télécommandes à code tournant ou rolling code en anglais ?
Il s'agit d'un mécanisme de communication sécurisé utilisé par la plupart de nos télécommandes radio : garage, voiture, barrière ... Ce mécanisme permet à ce que la clef échangée entre la télécommande et le récepteur ne soit pas unique et change à chaque demande d'action. Sans connaissance des mécanismes utilisés pour générer cette clef échangée, un voleur n'a donc aucune possibilité d'entrer chez vous avec un code capturé avec un sniffeur radio.
Comment fonctionne ce mécanisme ?
Ce mécanisme de code tournant est très simple :
- L'émetteur et le transmetteur possèdent chacun un code identique de 40 bits, 64bits ou bien même 128bits stocké dans une zone mémoire. Cette zone mémoire est initialisée lors de leur fabrication.
- Lorsque vous appuyez sur un bouton de votre télécommande, celle-ci utilise un pseudogénérateur de nombres employant le code interne de la télécommande pour générer un code séquentiel aléatoire.
- Ce code généré est ensuite transmis par onde radio aux objets environnants. Lorsque le garage qui se trouvant à proximité reçoit un code, il utilise le même pseudogénérateur de nombres pour valider que le code reçu est identique au code que lui-même a réussi à générer.
Vous allez me dire, mais que se passe-t-il dès lors que mon enfant appuie 10 fois sur la télécommande alors que nous sommes loin du garage ?
C'est une très bonne question, le garage génère des codes jusqu'à obtenir le bon code dans une limite des 256 tentatives. Ce qui signifie que si votre enfant s'amuse à appuyer 257 fois sur votre télécommande alors que le garage ne se trouve pas à proximité, il est probable qu'une resynchronisation de votre télécommande soit nécessaire pour pouvoir la réutiliser.
Comment sont gérer les secrets ?
Les secrets de ces télécommandes sont donc :
- Le code secret stocké dans une zone mémoire de la télécommande et du matériel.
- L'algorithme de génération de code propre au matériel.
Cependant, même si l'on connaît le code secret et l'algorithme de génération de code, ce n'est pas suffisant. Il est aussi nécessaire de connaître l'état du récepteur afin qu'il puisse accepter les codes générés.
A titre d'information, l'implémentation de code tournant généralement utilisé dans les télécommandes est le KeeLoq. Cette implémentation est notamment utilisée par Chrysler, Daewoo, Fiat, GM, Honda, Toyota, Volvo, Volkswagen Group.
Chez certains fabricants de garage, des protocoles bidirectionnels ont été mis en place pour permettre à la télécommande d'émettre des ordres et au garage de transmettre son état à la télécommande. C'est par exemple le cas de Hormann, qui dispose d'une solution nommée BiSecur basée sur une communication bidirectionnelle et un cryptage de 128 bits. Pour en savoir plus, cliquez ici.
Cette technologie offre deux avantages en plus de la remontée d'informations :
- L'authentification se fait à deux niveaux au lieu d'un.
- Les copieurs de code sont plus difficilement réalisables, car le protocole d'échange est breveté.