← Tous les articles

Le chiffrement de bout en bout, sans le jargon

Dans le premier article, nous avons écrit que vos coordonnées sont chiffrées de bout en bout avec le protocole Signal. Cette phrase cache beaucoup de choses, alors prenons le temps de la déplier, sans diplôme de maths.

La carte postale et la lettre scellée

La plupart des applications chiffrent bien votre position pendant le trajet : sur la route, personne ne lit rien. Le problème n’est pas là. Il est à l’arrivée. Votre position atterrit sur leur serveur, où elle est déchiffrée, lue en clair, stockée, analysée… et parfois revendue. Le chiffrement s’arrête à leur porte. C’est comme expédier une lettre dans un fourgon blindé qui s’ouvre en grand une fois arrivé à destination et la destination, c’est eux.

Le chiffrement de bout en bout va plus loin : la lettre reste scellée même en traversant le serveur. Verrouillée sur votre téléphone, elle ne se déverrouille que sur celui de votre destinataire. Ni le coursier, ni l’entreprise au milieu ne peuvent l’ouvrir.

Les « bouts », ce sont les deux téléphones. Le serveur n’est qu’un coursier qui transporte une enveloppe qu’il ne peut pas ouvrir.

Un cadenas que tout le monde peut fermer, qu’une seule personne peut ouvrir

Voici l’astuce qui fait tout fonctionner sans jamais échanger de mot de passe secret.

Chaque personne possède une paire de clés : une publique et une privée. La clé publique est comme un cadenas ouvert que vous distribuez à qui veut, n’importe qui peut le refermer autour d’un message, mais une fois fermé, il ne peut plus le rouvrir. Seule la clé privée correspondante, qui ne quitte jamais votre téléphone, peut l’ouvrir.

Ainsi, quand votre ami veut vous envoyer un message, il le verrouille avec votre cadenas public. Dès cet instant, la seule clé au monde capable de l’ouvrir est la clé privée posée sur votre appareil. Le coursier qui transporte l’enveloppe est impuissant : il a le cadenas, mais pas la clé.

Pourquoi nous utilisons le protocole Signal

Verrouiller chaque message une fois, c’est bien. Le protocole Signal fait mieux : il utilise un cadenas neuf pour chaque message.

Cette propriété porte un nom, la confidentialité persistante (forward secrecy), et sa conséquence vaut la peine d’être comprise. Même si quelqu’un parvenait à voler la clé du message d’aujourd’hui, cela ne l’aiderait pas à ouvrir celui d’hier ou de demain. Chaque message a son propre cadenas jetable, détruit après usage.

Le protocole Signal appartient à la même famille de cryptographie que celle derrière Signal Messenger et les messages privés de WhatsApp. Il est étudié par des cryptographes depuis des années et largement considéré comme l’état de l’art de la communication privée. Nous n’avons pas inventé notre propre système, bricoler sa propre cryptographie, c’est la recette des catastrophes de sécurité, nous nous appuyons sur celui auquel les experts font déjà confiance.

Ce que cela change pour votre position dans Fenzly

Quand vous partagez votre position, Fenzly n’envoie pas « Steve est à 46.20, 6.14 » dans une base de données. Votre téléphone prend les coordonnées, les scelle individuellement pour chaque personne avec qui vous partagez, et n’envoie qu’ensuite les enveloppes scellées à travers notre serveur.

Le rôle du serveur est de faire passer les enveloppes. Il peut voir *qu’*un bloc chiffré voyage d’un compte à un autre, mais pas ce qu’il contient. Il en va de même pour vos lieux enregistrés et vos cercles : ils sont scellés sur votre appareil avant même de toucher le réseau. C’est ce que nous appelons le serveur aveugle, et il aura droit à son propre article la prochaine fois.

Ce que le chiffrement ne fait pas

L’honnêteté compte plus que le marketing, alors voici les limites :

Le chiffrement protège un message en transit et au repos sur le serveur, il ne fait rien pour un téléphone déjà déverrouillé entre de mauvaises mains. Si quelqu’un a votre appareil déverrouillé, il voit vos messages comme vous les voyez. La lettre scellée est ouverte une fois arrivée à destination ; c’est précisément le but.

Il ne peut pas non plus cacher *qu’*une communication a eu lieu. Le coursier sait que deux comptes ont échangé quelque chose, même si le contenu est opaque. Fenzly est conçu pour réduire au maximum ces métadonnées, nous y reviendrons dans l’article sur le serveur aveugle.

Enfin, le chiffrement ne vaut que par l’endroit où vivent les clés. Dans Fenzly, ces clés privées ne quittent jamais votre téléphone, et c’est exactement pour ça que faire une sauvegarde est si important : perdez le téléphone sans sauvegarde et même nous ne pourrons pas récupérer votre compte. Ce compromis mérite lui aussi son propre article.


Voilà pour les fondations. La prochaine fois, nous ouvrirons le capot du serveur aveugle : comment une application de localisation peut fonctionner alors que l’entreprise derrière ne peut vraiment pas voir où vous êtes.