Dans le chapitre précédent, nous nous sommes intéressés à la sécurité des données lorsqu’elles sont déjà dans l’application. Toutefois, lorsqu’on considère une application utilisant un objet connecté qui émet des données, il faut bien sûr que ces données transitent, via le réseau, vers les serveurs gérant l’application cible.
La protection du transfert de données
De nombreux logiciels existent, permettant d’observer les données qui transitent sur les réseaux ; l’un des plus connus étant Wireshark. En utilisant un tel logiciel, il est assez facile d’observer puis d'analyser les données échangées entre un appareil du réseau et un serveur. En effet, il est plus rapide d’échanger des données en clair, plutôt que de prendre le temps de les chiffrer.
La technique utilisée est basée sur de la cryptographie à clé publique (ou asymétrique) et de cryptographie à clé secrète (ou symétrique). La partie asymétrique permet d’échanger une clé symétrique, qui est utilisée pour chiffrer les communications, mais le protocole est également utilisé pour garantir, via une signature, l’authenticité du serveur web.
La cryptographie symétrique est une des techniques de base de la cryptographie. Elle permet à deux entités qui possèdent toutes les deux une unique clé partagée de s’échanger des messages qu’elles sont les seules à pouvoir déchiffrer ; mais il faut bien sûr avoir réussi à se mettre d'accord sur cette clé au préalable !
La cryptographie à clé publique (asymétrique) permet, elle, à un individu de chiffrer un message en utilisant une clé publique (et mise à disposition publiquement). Cette clé publique, qui peut être diffusée sans aucun risque, est associée à une clé privée connue uniquement par l’entité. C'est cette dernière qui servira à déchiffrer les messages chiffrés en utilisant la clé publique en question.
La cryptographie à clé publique est bien plus lente que la cryptographie symétrique. Aussi, la plupart des protocoles mettant en jeu des clés publiques ne cherchent en fait qu’à échanger une clé secrète, qui sera ensuite utilisée pour transférer de gros volumes de données.
Avec ces techniques de chiffrement, on voit qu’on est capable de protéger le contenu d’un message échangé entre un objet connecté A et une application web B. Par contre, un observateur serait tout de même capable de savoir que A et B sont en train de communiquer entre eux !
Sécurisez les interactions : cachez qui parle avec qui
Afin de sécuriser également cette information, il faut utiliser un autre protocole, s’exécutant sur une infrastructure complexe, appelée TOR pour The Onion Router (torproject.org).
Sécurisez les communications : une approche à plusieurs niveaux
On voit donc qu’il y a plusieurs niveaux de sécurisation des communications informatiques : d’une part il est possible de sécuriser le contenu du message, ce qui peut se faire avec des techniques de cryptographie à clé publique et de cryptographie symétrique, et d’autre part il est même possible de masquer le destinataire du message, en utilisant le réseau TOR.
En résumé de la partie 1
Dans cette partie, nous avons vu que des données personnelles sont présentes dans la plupart des applications informatiques de notre époque, en particulier dès qu'on commence à utiliser des objets connectés. D'un point de vue légal (cf. Règlement général sur la protection des données, ou RGPD) et d'un point de vue éthique, il est important de traiter ces données de manière respectueuse. Nous avons vu dans cette partie quels étaient les risques liés à une gestion qui ne serait pas respectueuse des utilisateurs, et pointé certaines pratiques courantes qui peuvent poser question. Nous avons également donné quelques pistes de réponse concernant les questions de contrôle d'accès et de transfert des données.
Dans la prochaine partie, nous allons nous focaliser sur le RGPD, et sur les contraintes de traitement qu'il impose. Nous verrons également comment conduire une analyse d'impact de vie privée (AIVP), qui est un processus d'étude de risque permettant de concevoir de manière plus sûre une application informatique.