Communication sécurisée avec un Arduino récepteur

French support forum, post can be done in French, answers will either be in French or in English.

Moderators: rtenklooster, Voyager, BertB, Stuntteam, Deennoo

Post Reply
Message
Author
Waryard
Normal user
Posts: 17
Joined: 16 Nov 2018, 13:48

Communication sécurisée avec un Arduino récepteur

#1 Post by Waryard » 25 Sep 2019, 19:02

Bonjour à tous,

J'ai un Arduino avec un RXB6 chargé de déclencher un relais pendant 1sec (trigger) lorsque mon RF-link (sur un Raspi avec Jeedom) le lui ordonne. Le relais va désarmer la gâche de ma porte d'entrée donc je ne prend pas ça à la légère.

Le fait est que certains voisins semblent manier les protocoles que j'utilise (J'utilisais une prise connectée lambda (une Flamingo SF-501PFR de chez Action pour ne pas la citer), je l'ai déclenchée une seule et unique fois pour l'inclure dans Jeedom à travers le RF-Link, quelques jours plus tard la prise s'est activée et j'ai la certitude que ce n'est pas un défaut de la prise car Jeedom a intercepté la commande d'allumage).

Je suis donc à la recherche d'une façon d'envoyer des infos de façon sécurisée vers mon Arduino (j'ai une idée en tête qui fonctionne mais qui a ses limites)

Merci par avance!

Couin
Normal user
Posts: 1
Joined: 08 Sep 2019, 21:32

Re: Communication sécurisée avec un Arduino récepteur

#2 Post by Couin » 26 Sep 2019, 00:25

Bonjour,

Sauf erreur, RF-Link ne gère pas de codes tournants. Si c'est bien le cas, ta commande radio envoyée dans les airs sera toujours la même.
Il suffira de rejouer ce signal (même sans comprendre le protocole) pour ouvrir ta porte, comme pour les PLIP auto des années 90...

Je regarderais ailleurs dans ce forum, une commande ad hoc passée à un interrupteur ESP Easy, ça doit se trouver.
Et en cas de parano, on peut tirer un câble réseau (en PoE a y être), ou même tirer un fil de commande depuis le Raspberry Pi ;)

Waryard
Normal user
Posts: 17
Joined: 16 Nov 2018, 13:48

Re: Communication sécurisée avec un Arduino récepteur

#3 Post by Waryard » 26 Sep 2019, 01:44

Couin wrote: 26 Sep 2019, 00:25 Bonjour,

Sauf erreur, RF-Link ne gère pas de codes tournants. Si c'est bien le cas, ta commande radio envoyée dans les airs sera toujours la même.
Il suffira de rejouer ce signal (même sans comprendre le protocole) pour ouvrir ta porte, comme pour les PLIP auto des années 90...

Je regarderais ailleurs dans ce forum, une commande ad hoc passée à un interrupteur ESP Easy, ça doit se trouver.
Et en cas de parano, on peut tirer un câble réseau (en PoE a y être), ou même tirer un fil de commande depuis le Raspberry Pi ;)
Merci pour votre réponse.

Mon idée était de mettre disons 10 codes fixes dans l'arduino, les mêmes dans le RF-Link (enfin, dans Jeedom).
On initialise une variable n à 1
Lors de l'utilisation du code n (1 pour commencer), cette variable est incrémentée des deux côtés et l'Arduino ne s'exécutera que s'il reçoit le nouveau code n etc jusqu'à 10, puis retour à zéro.
Donc si mon voisin intercepte et stock les 10 codes (comme il l'a fait auparavant), il n'a qu'une chance sur 10 de déclencher quelque chose.

Cela peut être couplé avec un délai entre les codes reçus pour éviter de déclencher s'il essaie tous les codes à la suite, le raspberry ne se trompant (en théorie) jamais.
J'ai pris 10 codes comme exemple mais cela peut très bien être 100 voire 1000, dans l'arduino aucun problème pour les stocker mais faire 100 ou 1000 conditions dans Jeedom est particulièrement aliénant.

Ceci étant, lors d'une coupure de courant le raspberry continuera de fonctionner (onduleur) donc gardera la variable en l'état, tandis que l'Arduino reprendra au code 1. A moins de gérer l'EEPROM.
Mais si l'un des deux appareils vient à perdre la synchronisation (trame émise mais non reçue par exemple), dans Jeedom la modification manuelle de la variable est possible mais longue, tandis que pour l'Arduino il est impossible de connaitre la valeur de la variable et donc la seule manière de les resynchroniser est le classique Reset.

Sinon si l'Arduino possède un module RTC on peut autoriser un seul code par heure en fonction de l'heure et un seul code par minute en fonction des minutes. Ce qui fait 60+24=84 codes à gérer. Soit 84 conditions à faire à la main dans Jeedom. Ainsi si la trame récupérée malintentionnellement n'est pas réémise dans la même minute de la même heure, elle est caduque. Pour accentuer la parano on peut aussi attaquer les jours, mois et années mais à ce niveau de parano il vaut mieux privilégier la paire de fils, en effet.

Je ne veux pas mettre de module RTC. Dans un soucis de simplicité, j'ai donc retiré l'Arduino. J'avais justement un NodeMCU sous ESPEasy pas loin, j'ai donc tiré un câble jusqu'à ce dernier. Le problème est que le NodeMCU ne parvient pas à commuter le relais (à cause du 3.3v qui n'est pas suffisant pour que le relais bascule, attendant du 5v). J'ai donc prévu un transistor, je câblerai le tout bientôt.

Post Reply

Who is online

Users browsing this forum: No registered users and 3 guests