Discussion : sécurisation

Info général sur l'ensemble du projet et ce qui l'entoure
Avatar de l’utilisateur
Yaug
Administrateur
Messages : 1466
Inscription : 19 Juillet 2013, 17:09
Localisation : Moselle
Contact :

Discussion : sécurisation

Messagepar Yaug » 02 Août 2013, 10:05

Bonjour à tous,

La présentation de Ydle hier soir lors de l'aPIro m'a permis d'avoir une conversation intéressante sur un sujet auquel je n'avais pas encore pensé mais qui s'avérera plus tard vital : la sécurisation des échanges entre master et node.

Dans un premier temps, nous n'avons pas trop à nous en soucier, mais il faut garder ce problème en tête.
Quand on aura un réseau viable et stable, comment sécuriser les communications entre un master et un node pour qu'un voisin ou une personne tierce ne puisse agir sur notre système domotique ?

J'avoue que je ne suis pas un expert en sécurité, et que pour le coup, vu la facilité avec laquelle on peut écouter les ondes radios, je ne vois pas de solution après mes premières réflexions sur le sujet.
Peut être avez vous des pistes ?

blueicefield
Messages : 6
Inscription : 01 Août 2013, 14:16

Re: Discussion : sécurisation

Messagepar blueicefield » 02 Août 2013, 10:17

Tout dépend du protocole utilisé pour la communication entre le master et le node. Si par exemple, vous exploitez le protocole HTTP (ou encore websocket), on peut imaginer utiliser une authentification SSL bidirectionnelle.

Avatar de l’utilisateur
Yaug
Administrateur
Messages : 1466
Inscription : 19 Juillet 2013, 17:09
Localisation : Moselle
Contact :

Re: Discussion : sécurisation

Messagepar Yaug » 02 Août 2013, 10:56

Heu...
Je parle de sécurisation des échanges radios. :?

Zescientist
Messages : 360
Inscription : 23 Juillet 2013, 16:38
Localisation : Arques

Re: Discussion : sécurisation

Messagepar Zescientist » 02 Août 2013, 13:20

Cela complexifie encore le protocole radio, mais on peut faire une sécurisation "assez basique" qui protégera du voisin lambda. Il suffit au moment de la synchronisation du master et de la node de fournir à la node une clé (nombre de bits à définir). Ensuite, on encrypte la partie data avec cette clé (pas besoin d'encrypter le reste je pense... à voir).

C'est assez sommaire mais simple à mettre en place. Le "plus difficile" sera de rajouter le partage de la clé lors de la synchro, et encore, ça sera facile avec la suite des améliorations prévues pour les prochaines versions (ACK, CRC...).
El'Radioman

brinbois
Messages : 15
Inscription : 05 Août 2013, 07:12

Re: Discussion : sécurisation

Messagepar brinbois » 13 Août 2013, 11:38

Bonjour,

Je me pose actuellement la question de sécurité dans le protocole radio. On parle de domotique, pour le momant de sonde de temperature / humiditer /pression / presence, mais j'espere plus tard de commande de volet, commande portail, ........ d'ou un besoin important en sécurité.

La premiere idée, est de crypter les donnée elle même (via un systeme de pair de clef par exemple) pour éviter que les donnée soit directement lisible, mais je ne suis pas sur du grand interet de la chose, il n'y a en principe aucune donnée ultra vital ? temperature, commande d'ouverture volet / portail , enfin je ne voit rien qui demande une non lisibilitée des donnée.
Sachant que ce systeme ne nous permet pas de nous proteger du cas le plus simple, la copie de signal. (via une telecommande universelle a 2 sous sur ebay, mon voisin, pourait copier le signal, meme crypter, qui ouvre mon portail (ou mes volets))

Il faut donc identifier l'emmeteur du signal, pour cela, j'ai penssée dans un premier temp a la puissance du signal, mais trop aleatoire, et ne marche pas en cas de telecommande justement.

j'ai donc plusieurs pistes de reflexion.

la premiere, faire un message en plusieurs partie avec une "carte clef" (c'est moi, ouvre moi le portail. => merci de fournir la clefs 4F => c'est toujours moi, la clef est K2V9)
La deuxiemme , serait de ce baser sur une horloge de chaque coter(serveur / client), pour crypter le message sur base de l'horloge (a voir si le temps de transmission peut etre negliger......)
La troisiemme , serait d'envoyer un increment a chaque message (c'est moi, je t'envoi le message 15, ouvre moi le portail)

On pourrait biensur faire un mix de ces debut de solutions.


@Zescientist : ta solution me semble trop basique dans le sens ou le voisin lambda peut encore copier facilemet ton signal, une fois la syncronisation faite, comment identifie tu un signal original d'un signal copier ?

Zescientist
Messages : 360
Inscription : 23 Juillet 2013, 16:38
Localisation : Arques

Re: Discussion : sécurisation

Messagepar Zescientist » 13 Août 2013, 19:10

J'étais plus dans une optique de protéger les données en lecture, ce qui gênera le voisin qui ne pourra pas interpréter les données. Ils ne sera donc pas forcément aisé pour lui de déterminer le node qui commande le volet au milieu des trames de demande de température par exemple...

Sinon je sais qu'il existe le principe de rolling pour le code, même si je ne sais pas trop comment cela fonctionne.

On peut partir sur un système à 4 trames avec l'ack :
-> Message initial
<- ACK "j'ai bien reçu" (jusque là ce qui est prévu pour une version ultérieure)
-> OK "tu peux prendre en compte"
<- ACK2 "je le fais"

Il faut donc 2 trames de l'émetteur pour réaliser une tâche (actionner un relais ou se préparer à émettre la valeur d'une sonde), plus difficile à gérer en recopie.
Et on peut imaginer qu'en cas de copie, le node/master dont on recopie le signal, réagisse au premier ACK (étape 2)qui lui est destiné par un message du genre "non je n'ai rien demandé" (en étape 3).
El'Radioman

Avatar de l’utilisateur
sguernion
Messages : 100
Inscription : 23 Juillet 2013, 13:24
Localisation : Rennes
Contact :

Re: Discussion : sécurisation

Messagepar sguernion » 19 Août 2013, 18:08

J'ai essayé de regarder ce qu'il ce fait sur d'autre protocole, j'ai quasiment rien trouvé sur le net.

juste quelques info sur un projet open source http://www.panstamp.com/home qui utilise un protocole SWAP https://code.google.com/p/panstamp/wiki/SWAP

ils ont 2 mode de sécurités,
- 1/ il y a juste les données qui sont cryptées.
- 2/ les données sont cryptées et chaque "node" a un compteur, incrémenté a chaque envoie de sont état , seule les commande avec la valeur de compteur seront traité.

Avatar de l’utilisateur
Uggy
Messages : 8
Inscription : 18 Août 2013, 23:33

Re: Discussion : sécurisation

Messagepar Uggy » 22 Août 2013, 22:13

Les 2 types de sécurité sont:
- Chiffrer les données
Permet de masquer ce qui transite
- Authentifier les données
Permet d'etre sur que c'est bien un de nos node qui nous parle. (et pas un petit malin qui dit d'allumer le radiateur)


Si on garde l'optique actuelle (a laquelle j'adhère) de faire étape par étape, je pense que le plus important est d'authentifier les données.

Pour ce faire il y aurait la possibilité d'utiliser un "secret partagé" entre les nodes et le master.
Ce "pre-shared" secret serait a paramètrer sur chaque composant (nodes et master).

La méthode serait ensuite la suivante lors d'une envoi d'un message:

on concatene le "secret partagé" + le "message" et on genere un hash (par exempel MD5)

Puis on envoi "message a envoyer" + "hash"



Coté recepteur, on concatene le "secret partagé" (vu qu'on le connait deja) + le "message" et on genere un hash.
Puis ensuite on compare avec le "hash" recu.
Si ils sont identiques c'est que le message a bien été envoyé par quelqu'un connaissant le "secret".. (et que le "message" n'a pas été altéré...)

Si on veut se protéger du rejeu, il faut ajouter la date avant de faire le checksum. Et implanter une vérification de cette date a la réception du message.



C'est pas le top de la sécu, c'est pas le top de générer des MD5 (ou autre) pour chaque message sur l'arduino, et c'est pas le top de la bande passante (d'envoyer des hashs en + des données..) c'est pas forcément hyper simple a mettre en place, mais c'est je pense ce qui est le + simple a faire quand meme si on veut faire un peu de "secu". (J'espere que vous aurez des meilleures idées..)


Les pistes évoquées au dessus avec
- Echanges dans les 2 sens (donne moi ci, je te donne ca, t'es qui, prouve le ..etc..)
- Horloges synchronisées
- Incréments

ne me semble pas forcement l'ideal. (desynchro possible, et perte de trames fera incrémenter trop vite)

Enfin voila .. c'est juste une piste supplémentaire de reflexion.
A+

liberty
Messages : 64
Inscription : 01 Décembre 2013, 00:30

Re: Discussion : sécurisation

Messagepar liberty » 01 Décembre 2013, 02:20

une question qui a aussi a voir avec la sécurité et plus au coté alarme de la domotique: Est-ce que vous avez envisagé le problème du brouillage du signal ? Je n'ai pas enormement de connaissance en éléctronique mais faudrais-il prévoir un détecteur de brouillage sur chaque node ou sur le serveur principal ?

Avatar de l’utilisateur
Yaug
Administrateur
Messages : 1466
Inscription : 19 Juillet 2013, 17:09
Localisation : Moselle
Contact :

Re: Discussion : sécurisation

Messagepar Yaug » 01 Décembre 2013, 09:51

Tellement évidemment que nous n'y avons pas encore pensé en fait. :D

pour le moment on se concentre sur la création du signal et sa réception, et ensuite on ajoute au fur et à mesure des couches de sécurité


Revenir vers « Général »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 3 invités

cron