Le protocole de signal utilisé par plus d’un milliard de personnes fait peau neuve

Aurich Lawson | Getty Images

La Signal Foundation, créateur du protocole Signal qui crypte les messages envoyés par plus d’un milliard de personnes, a déployé une mise à jour conçue pour se préparer à une perspective très réelle qui n’est jamais loin des pensées de presque tous les ingénieurs en sécurité de la planète : le chute catastrophique des protocoles cryptographiques qui sécurisent aujourd’hui certains des secrets les plus sensibles.

Le protocole Signal est un ingrédient clé des messageries Signal, Google RCS et WhatsApp, qui comptent collectivement plus d’un milliard d’utilisateurs. C’est le moteur qui assure le cryptage de bout en bout, ce qui signifie que les messages cryptés avec les applications ne peuvent être déchiffrés que par les destinataires et personne d’autre, y compris les plateformes activant le service. Jusqu’à présent, le protocole Signal chiffrait les messages et les appels vocaux avec X3DH, une spécification basée sur une forme de cryptographie connue sous le nom de Elliptic Curve Diffie-Hellman.

Un petit détour : WTF c’est ECDH ?

Souvent abrégé en ECDH, Elliptic Curve Diffie-Hellman est un protocole à part entière. Il combine deux éléments de base principaux. La première implique l’utilisation de courbes elliptiques pour former des paires de clés asymétriques, chacune étant unique à chaque utilisateur. Une clé de la paire est publique et accessible à tous pour chiffrer les messages envoyés à la personne qui la possède. La clé privée correspondante est étroitement gardée par l’utilisateur. Il permet à l’utilisateur de décrypter les messages. La cryptographie reposant sur une paire de clés publique-privée est souvent appelée chiffrement asymétrique.

La sécurité du chiffrement asymétrique repose sur des fonctions mathématiques unidirectionnelles. Également connus sous le nom de fonctions de trappe, ces problèmes sont faciles à calculer dans un sens et beaucoup plus difficiles à calculer dans l’autre sens. En cryptographie à courbe elliptique, cette fonction unidirectionnelle est basée sur le problème du logarithme discret en mathématiques. Les paramètres clés sont basés sur des points spécifiques d’une courbe elliptique sur le champ des entiers modulo un P premier.

Lorsque quelqu’un connaît le point de départ (A) dans l’image ci-dessus montrant une courbe elliptique et le nombre de sauts requis pour atteindre le point final (E), il est facile de savoir où se trouve (E). Mais quand tout ce que quelqu’un connaît, ce sont les points de départ et d’arrivée, il est presque impossible de déduire le nombre de sauts nécessaires.

Comme expliqué dans un article de l’Ars de 2013 :

Imaginons cette courbe comme le décor d’une bizarre partie de billard. Prenez deux points quelconques sur la courbe et tracez une ligne à travers eux ; la ligne coupera la courbe à exactement un autre endroit. Dans ce jeu de billard, vous prenez une balle au point A et la tirez vers le point B. Lorsqu’elle atteint la courbe, la balle rebondit soit vers le haut (si elle est en dessous de l’axe des x), soit vers le bas (si elle est au-dessus de l’axe des x). -axe) de l’autre côté de la courbe.

Nous pouvons appeler ce mouvement de billard sur deux points « point ». Deux points quelconques sur une courbe peuvent être pointés ensemble pour obtenir un nouveau point.

Un point B = C

Nous pouvons également enchaîner les mouvements pour « parsemer » un point avec lui-même encore et encore.

Un point A = B

Un point B = C

Un point C = D

Il s’avère que si vous avez deux points, un point initial « pointé » sur lui-même n fois pour arriver à un point final, découvrir n alors qu’on ne connaît que le point final et le premier point est difficile. Pour poursuivre notre métaphore bizarre du billard, imaginez qu’une personne joue seule à notre jeu dans une pièce pendant une période de temps aléatoire. Il lui est facile de frapper la balle encore et encore en suivant les règles décrites ci-dessus. Si quelqu’un entre plus tard dans la pièce et voit où le ballon a fini, même s’il connaît toutes les règles du jeu et où le ballon a commencé, il ne peut pas déterminer le nombre de fois où le ballon a été frappé pour y arriver sans traverser la pièce. recommencez tout le jeu jusqu’à ce que le ballon arrive au même point. Facile à faire, difficile à défaire. C’est la base d’un très bon fonctionnement de la trappe.

Source-147