• Aucun résultat trouvé

Apport de la cryptographie à la sécurité des WSN

Dans le document Réseaux de capteurs et vie privée (Page 32-35)

La cryptographie permet d’apporter les propriétés suivantes dans les communications des WSN :

• la confidentialité. Une information ne doit être révélée qu’aux personnes légitimes et concernées par les communications.

• l’authentification. Il est possible de vérifier l’identité des personnes qui émettent des messages.

• le contrôle d’accès. Propriété proche de l’authentification, le contrôle d’accès permet de ne donner l’accès aux ressources qu’aux utilisateurs légitimes.

• l’intégrité. Il est possible de détecter les modifications, délibérées ou non, des communications. • la non répudiation. Un nœud ne peut a posteriori nier l’envoi d’un message.

Dans l’article [17], Wallgren, Raza et al. analysent les technologies de l’IoT et les problèmes de sécurité notamment en terme d’attaques sur le protocole de routage. Ils démontrent via le déploiement de réseaux simulés l’importance de la sécurité dans les WSN. Ils expliquent que le mécanisme assurant la confidentialité est le premier outil à mettre en place.

2.3.1 La confidentialité

La confidentialité est l’un des premiers objectifs de la cryptographie. Le problème est le suivant : deux utilisateurs Alice et Bob souhaitent communiquer sans qu’un troisième individu nommé Eve, qui écoute

la conversation, puisse en connaitre le contenu. Pour cela, Alice va utiliser un algorithme de chiffrement afin de modifier le message à envoyer à Bob et le rendre inintelligible pour Eve. Bob doit être capable de retrouver le message initial. Les deux transformations de chiffrement et déchiffrement dépendent de clés inconnues d’Eve. Deux types de chiffrement sont alors possibles.

Dans un premier schéma, la clé est commune à Alice et Bob et a été préalablement échangée. On parle alors de chiffrement symétrique. Cette clé n’est pas connue d’Eve et permet à Bob de déchiffrer le message chiffré par Alice. Ces algorithmes sont rapides. Deux familles de chiffrements symétriques existent.

Les algorithmes à flot fonctionnent bit à bit. Ils génèrent à partir de la clé k une suite de symboles. Cette suite chiffrante possède une taille identique à celle du message à chiffrer. Le message en clair est alors combiné bit à bit à la suite chiffrante pour obtenir le message chiffré.

La deuxième catégorie est le chiffrement par bloc. Comme son nom l’indique, elle divise les données à chiffrer en blocs de taille identique. Le chiffrement des différents blocs s’effectue selon des modes opératoires. L’Advanced Encryption Standard (AES) est l’algorithme de chiffrement standardisé par le NIST et qui est le plus utilisé dans le monde industriel.

Dans le deuxième schéma, la cryptographie repose sur une paire de clé publique/privée liées mathémati-quement. La clé publique sert à chiffrer le message. Elle se calcule à partir de la clé privée de Bob. Dans ce schéma, Alice va chiffrer avec la clé publique de Bob qui déchiffrera avec sa clé privée, ce qui assure à Bob d’être le seul à pouvoir accéder au contenu. Cette solution a pour avantage de ne pas avoir à pré échanger une clé comme pour le chiffrement symétrique. Il faut néanmoins s’assurer qu’Alice a bien récupérée la clé publique de Bob. Des algorithmes de distributions de clés sont alors nécessaires. Dans le cas des clés asymé-triques, l’infrastructure Public Key Infrastructure (PKI) est utilisée. Elle définie un ensemble de procédures et de rôles permettant de créer, gérer et distribuer des certificats numériques. Ces certificats sont ensuite utilisés pour générer des clés publiques mais également permettre à une autorité de lier identité et clés publiques. Un nœud souhaitant obtenir la clé publique d’un voisin va interroger cette autorité de confiance.

L’algorithme Rivest Shamir Adleman (RSA) fait partie de cette catégorie de cryptographie asymétrique. Des solutions à base d’Elliptic Curve Cryptography (ECC) commencent également à être déployées. Elles permettent d’obtenir un niveau de sécurité équivalent au RSA avec des clés de tailles bien inférieures. Ainsi, pour assurer un niveau de sécurité équivalent, les clés utilisées par ECC font 163 bits contre 1024 bits requis avec l’algorithme RSA ce qui est un avantage dans un environnement contraint.

Dans les WSN, les nœuds sont contraints en énergie et en mémoire. La cryptographie symétrique étant plus rapide la consommation d’énergie est donc plus faible. De plus, pour un même niveau de sécurité, la taille des clés pour un chiffrement symétrique est inférieure à celle d’un chiffrement asymétrique. La solution de cryptographie symétrique est donc privilégiée dans les WSN.

Néanmoins, l’une des difficultés du déploiement de la sécurité dans les WSN concerne le choix des algo-rithmes utilisés pour le chiffrement. Les outils classiques de cryptographie ne sont pas forcément adaptés aux besoins et contraintes de ces nouveaux réseaux de capteurs. La cryptographie légère a donc été développée afin de permettre la conception et l’analyse d’outils de sécurité dédiés. Son but est de fournir des méca-nismes de sécurité fonctionnant à des coûts très faibles de manière à être embarqués dans des environnements contraints. Les algorithmes utilisés doivent être étudiés vis-à-vis de la taille de leur code et des données, le temps de calcul et la consommation d’énergie nécessaire.

L’une des contraintes concerne notamment la taille des clés utilisées. En effet, la quantité de mémoire RAM stockant le bloc à chiffrer et la clé limite la taille maximale de ces éléments. Afin d’assurer un niveau de sécurité convenable et une empreinte mémoire limitée, des clés de 128 bits seront préférées pour le chiffrement ou l’authentification. L’implémentation logicielle de ces nouveaux algorithmes doit également faire appel à des opérations logiques ou arithmétiques élémentaires comme la fonction XOR ou les fonctions de décalage. Des AES légers ont été publiés pour être embarqués dans des plateformes contraintes comme Nettle AES [18] ou encore Tiny-AES [19].

2.3.2 L’authentification du message et l’intégrité des données

Afin d’assurer l’authentification de la source du message ainsi que l’intégrité des données, un code d’au-thentification de message ou Message Authentication Code (MAC) est utilisé.

Le MAC est généré grâce à des fonctions de hachage et d’une clé secrète.

Les fonctions de hachage sont des fonctions de compression h dont l’entrée est une suite binaire de taille arbitraire et qui génèrent une sortie appelée haché de taille fixe n. La fonction h est à sens unique ce qui implique que pour un message m, le haché h(m) obtenu est rapide à calculer mais difficile à inverser. Ainsi, un attaquant connaissant la fonction h utilisée et la sortie obtenue h(m) ne pourra remonter au message m. Le haché permet de vérifier que le message n’a pas subi de modification.

Le calcul du MAC prend en entrée le message e et la clé symétrique privée k et produit un tag = mace=

hk,e. L’émetteur de la trame envoie alors e||mace, où || représente la concaténation. Le récepteur possédant la même clé pourra calculer le haché du message r reçu lié à la clé (macr= hk,r) et le comparer avec le MAC reçu (mace). L’égalité macr= maceprouve l’intégrité du message et l’authentification de l’émetteur.

Néanmoins, l’utilisation du MAC ne permet pas de distinction entre des nœuds partageant la même clé. De nombreux algorithmes existent comme HMAC-SHA-1 ou HMAC-MD5.

2.3.3 La distribution des clés

Les clés utilisées dans un WSN peuvent être partagées de trois façons :

• commune à tout le réseau. C’est une clé globale connue de tous les nœuds. Cette solution est la plus simple et la plus économique en terme de mémoire. Néanmoins, le niveau d’authentification est faible et un nœud compromis rend toutes les communications accessibles à un attaquant.

• clé de groupe. Un nombre limité de nœud du réseau partage la même clé. Ces nœuds sont choisis suivant des caractéristiques communes (localisation, rôle...). Plusieurs groupes sont définis. On utilise alors une clé différente pour communiquer entre chaque groupe. Cette technique réduit l’impact d’une compromission à un groupe de nœuds.

• partagée par paire de nœud. Chaque nœud possède une clé différente pour communiquer avec son voisin. Cette solution est coûteuse en mémoire mais permet de limiter l’impact de la compromission d’un nœud.

Indépendamment du type de clé, la distribution des clés symétriques partagées posent problème pour des réseaux dont le déploiement peut être aléatoire, vaste et varier rapidement.

Dans une méthode centralisée, une unique partie de confiance crée et distribue les clés utilisées dans le réseau. Assurer ces services tout en gardant de bonnes performances réseaux est alors compliqué. Un nœud doit pouvoir communiquer avec cette entité rapidement afin d’obtenir la clé. Or, la demande peut se perdre et le protocole ne pas aboutir. De plus, le nœud doit être légitimé auprès de l’entité afin d’obtenir la clé.

Dans une méthode décentralisée ou distribuée, il n’existe pas d’entité pour la gestion des clés. Ce sont les nœuds qui organisent le partage et la création. Une solution consiste à stocker dans la mémoire, lors de la fabrication des nœuds, la ou les clés nécessaires aux communications. Les clés symétriques peuvent être dérivées d’une clé maitre stockée. Eschenauer et al. dans [20] proposent un mécanisme probabiliste où chaque nœud possède un sous ensemble des clés déployées dans le réseau. Ces sous ensembles sont créés de manière à ce que la probabilité que deux nœuds possèdent au moins une clé commune soit élevée. Cette solution nécessite que le constructeur déploie les clés. Ces clés par défaut seront alors communes à tous les nœuds d’un même fabriquant. Or, deux acheteurs auront donc la même clé par défaut, ce qui représente une faille de sécurité.

Une autre solution consiste à définir les clés lors du déploiement. Le propriétaire du réseau devra alors définir la ou les clés pour chaque nœud. Ce travail peut être fastidieux pour des réseaux vastes et compliqués à réaliser pour des utilisateurs lambda.

Elles peuvent également être obtenue grâce à des métriques communes aux nœuds. L’utilisateur va alors déployer son réseau sans se soucier des clés. Celles-ci sont obtenues par la suite. Delaveau, Mueller et al.

dans [21] proposent de générer les clés à partir des aléas du lien radio et grâce à la réciprocité du canal entre deux nœuds. Dans ce schéma, chaque paire de nœuds possède une clé différente pour communiquer. Or, dans des réseaux vastes, il est compliqué de stocker une clé par lien et le choix se porte sur une clé de groupe.

La distribution des clés est un mécanisme non trivial et représente aujourd’hui un challenge dans les WSN.

Dans le document Réseaux de capteurs et vie privée (Page 32-35)