Skip to main content
Surveillance
Self-Defense

Une présentation approfondie du chiffrement de bout en bout : comment les systèmes de chiffrement à clé publique fonctionnent-ils ?

Dernière révision : January 01, 2025

This page was translated from English. The English version may be more up-to-date.

Si vous ne l'avez pas encore fait, nous vous recommandons de lire quelques guides avant celui-ci, pour vous aider à consolider certains des concepts abordés ici : Que dois-je savoir sur le chiffrement ? et Concepts clés du cryptage et Authentification des clés.

S'il est utilisé correctement, le cryptage de bout en bout peut aider à protéger le contenu de vos messages, textes et fichiers contre toute lecture par quiconque, à l'exception de leurs destinataires prévus. Les outils de chiffrement de bout en bout rendent les messages illisibles pour les oreilles indiscrètes sur le réseau, ainsi que pour les fournisseurs de services eux-mêmes. Ils peuvent également prouver qu’un message provient d’une personne spécifique et n’a pas été modifié.

Autrefois compliqués à mettre en place, les outils de chiffrement de bout en bout sont bien plus utilisables qu’avant. Un outil de messagerie sécurisé comme Signal est un bon exemple d'application qui utilise le chiffrement de bout en bout pour crypter les messages entre l'expéditeur et le destinataire prévu tout en restant facile à utiliser. Même les plus grandes plates-formes, comme WhatsApp et Facebook Messenger, prennent en charge le cryptage de bout en bout sans que vous ayez besoin de procéder à une configuration préalable.

Le type de cryptage dont nous parlons dans ce guide, sur lequel s'appuient les outils de chiffrement de bout en bout, est appelé cryptographie à clé publique (parfois appelée chiffrement à clé publique).

Comprendre les principes sous-jacents de la cryptographie à clé publique vous aidera à utiliser ces outils en toute sécurité. Il y a des limites à ce que la cryptographie à clé publique peut et ne peut pas faire, et il est utile de comprendre ces limites.

À quoi sert le cryptage ? anchor link

Voici comment fonctionne le cryptage lors de l’envoi d’un message secret :

  1. Un message clairement lisible est d'abord crypté en un message brouillé incompréhensible pour quiconque le regarde (« hello mom » (bonjour maman) se transforme en « OhsieW5ge+osh1aehah6 »).
  2. Le message crypté est envoyé sur Internet, où, s’ils regardent, les oreilles indiscrètes ne verront que le message brouillé (« OhsieW5ge+osh1aehah6 »).
  3. Lorsqu'il arrive à destination, le destinataire prévu, et seul le destinataire prévu, a un moyen de le déchiffrer dans le message d'origine (« OhsieW5ge+osh1aehah6 » est redevenu « hello mom » (bonjour maman).

Cryptage symétrique : une histoire de transmission de notes secrètes avec une seule clé anchor link

Commençons par un exemple historique : le chiffre de César.

Julia souhaite envoyer à son ami César un mot disant : « Retrouve-moi dans le jardin ». Mais elle ne veut pas que ses camarades de classe le voient.

Si Julia transmet le message tel quel, il passe par une bande de camarades intermédiaires avant d'arriver à César. Bien que neutres, les intermédiaires restent curieux et peuvent jeter un œil au message avant de le transmettre. Ils peuvent également faire des copies du message avant de le transmettre et enregistrer l'heure à laquelle Julia envoie son message à César.

Ainsi, pour protéger la confidentialité de la conversation, Julia pourrait décider de crypter son message avec une « clé de trois », décalant les lettres de trois dans l'alphabet. Par exemple, A serait D, B serait E, et ainsi de suite.

Si Julia et César utilisent une simple clé de trois pour chiffrer et une clé de trois pour déchiffrer, alors leur charabia crypté pourrait suffire à tromper leurs camarades de classe, mais il reste facile à déchiffrer. N’importe lequel de leurs camarades de classe pouvait « forcer brutalement » la clé en essayant toutes les combinaisons possibles jusqu’à ce qu’il trouve un mot ou deux. En d’autres termes, ils peuvent deviner de manière persistante jusqu’à ce qu’ils obtiennent la réponse pour décrypter le message.

La méthode consistant à décaler l'alphabet de trois caractères est un exemple historique de cryptage utilisé par Jules César, d'où le chiffre de César. Lorsqu’il existe une clé à la fois pour chiffrer et déchiffrer, comme dans cet exemple, on parle de cryptographie symétrique.

Le chiffre César est une forme faible de cryptographie symétrique. Heureusement, le cryptage a parcouru un long chemin depuis. Au lieu de simplement décaler les lettres d’un message de quelques caractères, les touches peuvent désormais utiliser les mathématiques et l’aide des ordinateurs pour créer une longue chaîne de chiffres beaucoup plus difficile à décoder.

La cryptographie symétrique a de nombreux objectifs pratiques, mais ne résout pas les problèmes suivants : que se passerait-il si quelqu’un pouvait écouter et attendre que Julia et César partagent la clé, puis voler la clé pour déchiffrer leurs messages ? Et s'ils attendaient que Julia et César révèlent tant bien que mal que le secret pour décrypter leurs messages était la clé de trois ?

Comment César et Julia peuvent-ils contourner ce problème ?

La meilleure réponse aujourd’hui est la cryptographie à clé publique. Dans la cryptographie à clé publique, les clés de chiffrement et de déchiffrement sont différentes, et il est parfaitement sûr de partager la clé publique tant que la clé privée reste privée.

Cryptographie à clé publique : une histoire de deux clés anchor link

Examinons le problème de plus près : comment l'expéditeur envoie-t-il la clé symétrique au destinataire sans que quelqu'un n'espionne également cette conversation ?

La cryptographie à clé publique (également connue sous le nom de cryptographie asymétrique) offre une solution intéressante à ce problème. Il permet à chaque personne participant à une conversation de créer deux clés : une clé publique et une clé privée. Les deux clés sont connectées et, malgré leur nom, ne sont pas tant des « clés » que de très grands nombres dotés de certaines propriétés mathématiques. Si vous encodez un message à l’aide de la clé publique d’une personne, celle-ci peut le décoder à l’aide de sa clé privée correspondante.

Désormais, Julia et César n'envoient plus de notes papier en classe et utilisent leurs ordinateurs pour envoyer des messages cryptés à l'aide de la cryptographie à clé publique. Tous les camarades de classe qui passaient les notes dans l’exemple précédent sont remplacés par les ordinateurs qui servent d’intermédiaires entre Julia et César : les points Wi-Fi respectifs de Julia et César, leurs fournisseurs d’accès Internet et leurs serveurs de messagerie. En réalité, ce sont peut-être des centaines d’ordinateurs entre Julia et César qui facilitent cette conversation, et tout comme les camarades curieux, ces intermédiaires font et stockent des copies des messages de Julia et César à chaque passage.

Cela ne les dérange pas que les intermédiaires puissent les voir communiquer, mais ils souhaitent que le contenu de leurs messages reste privé.

Premièrement, Julia a besoin de la clé publique de César. César envoie sa clé publique via un canal non sécurisé, comme un courrier électronique non crypté. (Bonne nouvelle : les applications de communication modernes le feront au nom de César, en supprimant l'étape manuelle, mais les étapes manuelles restent un bon exemple de la façon dont cela fonctionne.)

Cela ne dérange pas César que les intermédiaires y aient accès parce que la clé publique est quelque chose qu'il peut partager librement (la métaphore de la clé s'effondre ici ; il n'est pas tout à fait juste de considérer la clé publique comme une clé littérale ; encore une fois : c'est un très grand nombre avec certaines propriétés mathématiques, souvent codé sous forme d'une chaîne de caractères). Pour être sûr, César envoie sa clé publique sur plusieurs canaux, un e-mail et un SMS, il est donc plus difficile pour les intermédiaires d'envoyer une de leurs propres clés publiques à Julia.

Julia reçoit le dossier de clé publique de César. Désormais, Julia peut crypter un message qui lui est adressé. Elle écrit : « Meet me in the garden (Retrouve-moi dans le jardin) ».

Elle envoie le message crypté. Il est crypté uniquement à César.

 

Julia et César peuvent comprendre le message, mais cela ressemble à du charabia pour quiconque essaie de le lire. Mais les intermédiaires peuvent toujours voir les métadonnées , comme la ligne d'objet, les dates, l'expéditeur et le destinataire.

Le message étant crypté avec la clé publique de César, il est uniquement destiné à César et à l'expéditeur (Julia) pour déverrouiller et lire le contenu du message.

César peut lire le message grâce à sa clé privée.

 

Pour récapituler :

  • La cryptographie à clé publique permet à quelqu'un d'envoyer sa clé publique via un canal ouvert et non sécurisé. De nos jours, les applications de communication gèrent cette étape à votre place.
  • Avoir la clé publique d'un ami vous permet de crypter les messages qui lui sont adressés.
  • Votre clé privée est utilisée pour décrypter les messages cryptés qui vous sont destinés.
  • Les intermédiaires tels que les fournisseurs de services de messagerie, les fournisseurs de services Internet et ceux de leurs réseaux peuvent voir les métadonnées tout le temps. Cela inclut des détails tels que qui envoie quoi à qui, à quelle heure il est reçu, quelle est la ligne d'objet, si le message est crypté, etc.

Un autre problème : qu’en est-il de l’usurpation d’identité ? anchor link

Dans l’exemple de Julia et César, les intermédiaires peuvent voir les métadonnées tout le temps.

Mais disons que l’un des intermédiaires est un mauvais acteur. Par mauvais acteur, nous entendons quelqu'un qui a l'intention de vous nuire en essayant de voler ou d'interférer avec vos informations. Ce mauvais acteur veut espionner le message de Julia à César.

Disons que ce mauvais acteur est capable de tromper Julia pour qu'elle récupère le mauvais fichier de clé publique pour César. Julia ne remarque pas qu’il ne s’agit pas réellement de la clé publique de César. Ainsi, à la place de César, c’est le mauvais acteur qui reçoit le message de Julia, le regarde puis le transmet à César.

 

Le mauvais acteur pourrait décider de modifier le contenu du dossier avant de le transmettre à César. Par exemple, ils pourraient remplacer « Meet me in the garden (Rencontre-moi dans le jardin) » par « Meet me in the cafeteria (Rencontre-moi à la cafétéria) ».

Mais la plupart du temps, le mauvais acteur décide de laisser le contenu tel quel. Alors, le mauvais acteur transmet le message de Julia à César comme si de rien n'était, César sait qu'il doit rencontrer Julia dans le jardin, et au souffle coupé, à leur grande surprise, le mauvais acteur est là aussi !

C'est ce qu'on appelle une « attaque de l'homme du milieu » ou une « attaque de la machine au milieu ».

Heureusement, la cryptographie à clé publique dispose d'une méthode pour empêcher les attaques de l'homme du milieu grâce à ce qu'on appelle la « vérification des empreintes digitales ». Il est préférable de le faire dans la vraie vie lorsque cela est possible. Vous auriez votre empreinte digitale de clé publique disponible, et votre ami vérifie que chaque caractère de votre empreinte de clé publique correspond à ce qu'il a pour votre empreinte de clé publique. C'est un peu fastidieux, mais ça vaut la peine.

Différentes applications chiffrées de bout en bout disposent également d’un moyen de vérifier les empreintes digitales, bien qu’il existe des variations quant au nom de cette pratique et à la manière dont elle est mise en œuvre. Dans certains cas, vous lirez attentivement chaque caractère de l’empreinte digitale et vous assurerez qu’il correspond à ce que vous voyez sur votre écran par rapport à ce que votre ami voit sur son écran. Dans d’autres, vous pouvez scanner un code QR sur le téléphone d’une autre personne pour « vérifier » son appareil. Dans l’exemple ci-dessous, Julia et César peuvent se rencontrer en personne pour vérifier les empreintes digitales de leur téléphone en scannant les codes QR de chacun à l’aide de l’appareil photo de leur téléphone.

Pour un exemple de ce à quoi ressemble cette méthode dans la pratique, consultez l'option « Vérifier le numéro de sécurité » de Signal ou la fonctionnalité « Vérifier le code de sécurité » de WhatsApp.

Si vous n’avez pas le luxe de vous rencontrer en personne, vous pouvez partager votre empreinte digitale via un autre canal sécurisé, comme une autre application de messagerie cryptée de bout en bout ou lors d’un appel vidéo.

Dans l'exemple ci-dessous, César envoie l'empreinte de sa clé publique à Julia à l'aide d'une autre application cryptée de bout en bout sur son smartphone.

À revoir :

  • Une attaque de l'homme du milieu se produit lorsque quelqu'un intercepte votre message destiné à quelqu'un d'autre. L’attaquant peut modifier le message et le transmettre ou choisir simplement de l’écouter.
  • La cryptographie à clé publique vous permet de répondre aux attaques de l'homme du milieu en fournissant des moyens de vérifier l'identité du destinataire et de l'expéditeur. Cela se fait grâce à la « vérification des empreintes digitales ».
  • En plus d'être utilisée pour chiffrer un message adressé à votre ami, la clé publique de votre ami est également accompagnée d'une « empreinte digitale de clé publique ». Vous pouvez utiliser l’empreinte digitale pour vérifier l’identité de votre ami.
  • La clé privée est utilisée pour crypter les messages, ainsi que pour signer numériquement les messages comme provenant de vous (plus d'informations ci-dessous).

Signatures anchor link

Nous savons que si vous chiffrez un message avec une certaine clé publique, il ne peut être déchiffré que par la clé privée correspondante. L’inverse est également vrai : si vous chiffrez un message avec une certaine clé privée, il ne peut être déchiffré que par la clé publique correspondante.

Pourquoi cela serait-il utile ? Supposons que vous ayez écrit un message disant : « Je promets de payer 100 $ à Aazul », puis que vous l'ayez transformé en message secret à l'aide de votre clé privée. N’importe qui pourrait décrypter ce message. Mais une seule personne aurait pu l’écrire : celle qui possède votre clé privée. Et si vous avez fait du bon travail en gardant votre clé privée en sécurité, cela signifie que vous, et vous seul, auriez pu l’écrire. En chiffrant le message avec votre clé privée, vous êtes assuré qu’il ne peut provenir que de vous.

En d’autres termes, vous avez fait la même chose avec ce message numérique que nous le faisons lorsque nous signons un message dans le monde réel, c’est pour cela que ce processus est connu sous le nom de « signature » d’un message.

La signature est également l’une des nombreuses méthodes permettant de rendre les messages infalsifiables. Si quelqu'un essayait de changer votre message de « Je promets de payer 100 $ à Aazul » en « Je promets de payer 100 $ à Ming », il ne pourrait pas le signer à nouveau en utilisant votre clé privée. Un message signé garantit qu'il provient de la bonne source et qu'il n'a pas été modifié pendant le transport.

En revue : Utilisation de la cryptographie à clé publique anchor link

Passons en revue. La cryptographie à clé publique vous permet de chiffrer et d'envoyer des messages en toute sécurité à toute personne dont vous connaissez la clé publique.

Si d'autres personnes connaissent votre clé publique :

  • Ils peuvent vous envoyer des messages secrets que vous seul pouvez décoder à l'aide de votre clé privée correspondante.
  • Vous pouvez signer vos messages avec votre clé privée afin que les destinataires sachent que les messages ne peuvent provenir que de vous.
  • De nos jours, les applications de messagerie gèrent vos clés publiques et privées et disposent d'un mécanisme plus convivial pour vérifier ces clés, permettant à quiconque d'utiliser facilement la cryptographie à clé publique sans même s'en rendre compte.

Et si vous connaissez la clé publique de quelqu’un d’autre :

  • Vous pouvez décoder un message qu'ils ont signé et savoir qu'il vient réellement d'eux.

La cryptographie à clé publique devient plus utile lorsque davantage de personnes connaissent votre clé publique. Vous pouvez partager votre clé publique avec toute personne souhaitant communiquer avec vous, peu importe qui la voit.

La clé publique est associée à un fichier appelé clé privée. Vous pouvez considérer la clé privée comme une véritable clé que vous devez protéger et conserver en sécurité. Votre clé privée est utilisée à la fois pour crypter et déchiffrer les messages.

Si votre clé privée est accidentellement supprimée de votre appareil, vous ne pourrez pas déchiffrer vos messages cryptés. Si quelqu'un copie votre clé privée (que ce soit par un accès physique à votre ordinateur, un logiciel malveillant sur votre appareil ou si vous partagez accidentellement votre clé privée), d'autres personnes peuvent lire vos messages cryptés. Ils peuvent se faire passer pour vous et signer des messages affirmant que c'est vous qui les avez écrits.

Il n’est pas rare que les gouvernements volent les clés privées des ordinateurs de personnes importantes (en leur confisquant les ordinateurs ou en y installant des logiciels malveillants en utilisant un accès physique ou des attaques de phishing). Cela annule la protection offerte par la cryptographie à clé privée.

C'est comme dire que vous avez une serrure incassable sur votre porte, mais que quelqu'un peut voler votre clé, la copier, puis la remettre dans votre poche. Ils pourront alors entrer dans votre maison sans crocheter la serrure.

Cela revient à votre plan de sécurité : déterminez quels sont vos risques et traitez-les de manière appropriée. Si vous pensez que quelqu'un aurait beaucoup de mal à essayer d'obtenir votre clé privée, vous ne souhaiterez peut-être pas utiliser une solution intégrée au navigateur pour le cryptage de bout en bout. Au lieu de cela, vous pouvez choisir de stocker votre clé privée sur votre propre ordinateur ou téléphone, plutôt que sur l’ordinateur de quelqu’un d’autre (comme dans le cloud ou sur un serveur).

Cryptographie à clé publique en pratique anchor link

Nous avons abordé le chiffrement symétrique et le chiffrement à clé publique dans des explications distinctes, mais le chiffrement à clé publique utilise également le chiffrement symétrique. Le chiffrement à clé publique chiffre une clé symétrique, qui est ensuite utilisée pour déchiffrer le message réel.

Pretty Good Privacy (PGP ) est désormais rarement utilisé, mais reste un exemple de protocole utilisant à la fois la cryptographie symétrique et la cryptographie à clé publique (asymétrique). L’utilisation d’outils de chiffrement de bout en bout comme PGP vous rendra très conscient des pratiques de cryptographie à clé publique, car vous devez effectuer plusieurs étapes manuellement. La plupart des fonctions de PGP sont cachées à l'utilisateur dans les outils de communication modernes, mais comme PGP nécessite de nombreuses étapes manuelles, il est toujours utile d'expliquer comment fonctionne le chiffrement de bout en bout.

Que sont exactement les clés et comment les clés sont-elles liées entre elles ? anchor link

La cryptographie à clé publique repose sur le principe qu’il existe deux clés : une clé pour le cryptage et une clé pour le déchiffrement. Vous pouvez envoyer une clé publique via un canal non sécurisé, comme Internet. Vous pouvez publier cette clé publique partout, dans des lieux très publics, et ne pas compromettre la sécurité de vos messages cryptés.

La clé publique est associée à un fichier appelé clé privée. Vous pouvez considérer la clé privée comme une véritable clé que vous devez protéger et garder en sécurité. Votre clé privée est utilisée à la fois pour crypter et déchiffrer les messages.

Voyons comment cela fonctionne dans un algorithme de cryptographie à clé publique couramment utilisé, appelé RSA (Rivest-Shamir-Adleman). RSA est souvent utilisé pour générer des paires de clés pour les courriels cryptés avec PGP.

La clé publique et la clé privée sont générées et liées ensemble. Les deux s’appuient sur les mêmes nombres premiers secrets. La clé privée représente deux nombres premiers secrets.

Métaphoriquement, la clé publique est le numéro de produit : elle est composée des deux mêmes très grands nombres premiers utilisés pour fabriquer la clé privée. Il est très difficile de déterminer quels sont les deux grands nombres premiers qui ont créé la clé publique.

Ce problème est connu sous le nom de « factorisation première », et certaines implémentations de cryptographie à clé publique profitent de cette difficulté pour les ordinateurs de déterminer quels sont les nombres premiers composants. La cryptographie moderne nous permet d’utiliser des nombres premiers choisis au hasard, ridiculement gigantesques et difficiles à deviner tant pour les humains que pour les ordinateurs.

La force ici est que les gens peuvent partager leurs clés publiques sur des canaux non sécurisés pour leur permettre de se chiffrer les uns les autres. Ce faisant, ils ne révèlent jamais quelle est leur clé privée (nombres premiers secrets), car ils n’ont jamais besoin d’envoyer leur clé privée pour déchiffrer les messages.

Pour que la cryptographie à clé publique fonctionne, l’expéditeur et le destinataire ont besoin des clés publiques de chacun.

Une autre façon de voir les choses est que la clé publique et la clé privée sont générées ensemble, comme un symbole yin-yang. Ils sont entrelacés.

 

La clé publique est consultable et partageable. Vous pouvez le distribuer à n’importe qui. Vous pouvez le publier sur vos réseaux sociaux (si cela ne vous dérange pas qu’il révèle l’existence de votre adresse électronique). Vous pouvez le mettre sur votre site Web personnel.

La clé privée doit être conservée en sécurité et à proximité. Vous n'en avez qu'un. Vous ne voulez pas le perdre, le partager ou en faire des copies qui pourraient circuler, car cela rend plus difficile la confidentialité de vos messages privés.

Le chiffrement à clé publique moderne en pratique : le double cliquet de Signal anchor link

Au fil du temps, les protocoles de messagerie ont évolué pour offrir des propriétés supplémentaires permettant d'améliorer la sécurité et la convivialité. Cela a changé notre façon de traiter le chiffrement au fil des années, passant d’une expérience transparente mais maladroite à quelque chose qui se produit en arrière-plan sans que nous nous en rendions compte. Un exemple de ceci est « l’algorithme à double cliquet » de Signal. Pour mieux comprendre comment cela fonctionne, nous devrions commencer par examiner certains détails clés des protocoles précédents.

Pretty Good Privacy (PGP) anchor link

Comme expliqué ci-dessus, PGP est une application unique de chiffrement asymétrique et de chiffrement symétrique, et est généralement utilisé pour chiffrer le courrier électronique dans un contexte de messagerie. Avec PGP, le chiffrement asymétrique est utilisé pour chiffrer une clé symétrique, qui est ensuite utilisée pour chiffrer un message. PGP permet une communication asynchrone, mais une compromission de clé unique révélerait le contenu de tous les messages, passés et futurs. Ainsi, si quelqu’un accédait à votre clé, il aurait accès à tous les messages que vous avez envoyés (ou enverrez).

PGP n’est plus aussi populaire qu’avant, mais certaines applications de messagerie utilisent un type de cryptage similaire. Ces applications présentent généralement toujours les problèmes de récupération par effraction et de secret d’archivage par effraction que présente la version de courrier électronique.

Off the Record (OTR) anchor link

OTR était autrefois un module complémentaire populaire pour les premiers clients de chat de messagerie, comme Pidgin, et était utilisé pour communiquer sur des services comme Google Hangouts. Pour que l'OTR fonctionne, les deux parties doivent être en ligne pour établir une session, ce qui limite son utilisation.

Avec OTR, chaque message échangé est une « session ». Cela signifie que si une seule clé est divulguée, seuls les messages de cette session sont compromis, pas rien avant ou après. Si plusieurs messages étaient envoyés consécutivement par un utilisateur, une fuite clé les révélerait tous, mais rien avant ou après. L'échange de clés est ajouté aux messages, de sorte que de nouvelles clés sont constamment dérivées.

Du point de vue de la sécurité, c’est formidable, car si un attaquant accédait d’une manière ou d’une autre à cette clé, il n’aurait accès qu’à un seul message. Mais la convivialité d’OTR n’est pas géniale. Étant donné que les deux parties doivent être en ligne, la messagerie asynchrone n’est pas adaptée, même après la configuration, car la nouvelle clé n’est commutée qu’une fois que les deux parties ont envoyé un message. Cela signifie que les éléments clés doivent être conservés jusqu'à ce que l'autre partie réponde. De plus, le suivi des messages dans le désordre (la fonctionnalité des clients de messagerie qui maintient les messages dans un ordre linéaire en fonction de l'heure à laquelle ils sont envoyés et reçus) devient compliqué. L’ordre des messages n’est pas seulement important pour la lisibilité de la conversation, il est également crucial pour que le cryptage fonctionne réellement. Si un message est envoyé dans le désordre, l’application du destinataire peut ne pas savoir quelle clé utiliser pour déchiffrer le message.

Silent Circle Instant Messaging Protocol (SCIMP) anchor link

SCIMP était un protocole provisoire qui a été le pionnier de l'utilisation d'un « double cliquet ». Un double cliquet, c'est lorsque chaque expéditeur dispose de sa propre chaîne de clés personnelle, chacune étant dérivée de la précédente. Cela signifie que les éléments clés peuvent être supprimés en toute sécurité une fois le message envoyé.

Imaginez un cliquet. Chaque fois que vous tournez le cliquet, une nouvelle clé est créée pour chaque message. Si un attaquant parvient à accéder à cette clé d'une manière ou d'une autre, il ne peut plus lire aucun message précédent car une fois le message envoyé, le cliquet tourne à nouveau pour créer une nouvelle clé. Mais ils pourraient utiliser cette clé pour faire une copie du cliquet, leur permettant ainsi de lire tous les futurs messages. Les deux personnes participant à une conversation ont un cliquet personnel qui tourne à chaque message. Ceci est conçu pour empêcher un attaquant de remonter dans une conversation pour lire les messages précédents, même si une personne a envoyé plusieurs messages d'affilée.

SCIMP fournit un « secret direct », ce qui signifie qu'une clé compromise ne révélerait pas les messages passés (ce nom prête à confusion, mais cela empêche la lecture des messages plus anciens même si une clé est compromise à l'avenir). Mais SCIMP ne fournit aucun « secret futur » ou « récupération par effraction » (utilisé pour empêcher la lecture des messages envoyés après la compromission d’une clé). De plus, s’attendre à des messages dans le désordre signifie conserver ce matériel clé pendant un certain temps.

Double Ratchet Algorithm de Signal anchor link

Signal utilise une combinaison d'OTR et de SCIMP pour prendre en charge la messagerie asynchrone. Sur son blog, Signal explique la philosophie de conception ainsi : « Nous voulions un cliquet qui combine le meilleur des deux mondes : le secret optimal qu'offre un cliquet d'itération de hachage comme SCIMP, ainsi que les belles propriétés de secret futur qu'un cliquet DH comme le propose OTR, avec le moins possible d’inconvénients des deux.

Dans Signal, chaque personne dispose d’un cliquet personnel de style SCIMP qu’elle tourne lorsqu’elle envoie un nouveau message (mais l’autre personne n’a pas répondu). Mais chaque fois que des messages sont échangés, une nouvelle session est créée, comme nous l'avons vu dans OTR.

En intégrant les deux technologies, un attaquant devrait décrypter presque chaque message individuellement. Techniquement, si l'utilisateur A reçoit un long flux de messages sans que l'autre personne B ne réponde et que la clé est divulguée, l'attaquant pourra voir chaque nouveau message envoyé par A jusqu'à ce que B réponde et que la session soit avancée.

L'algorithme à double cliquet de Signal reprend l'idée des porte-clés SCIMP, qui protègent chaque message individuel même si un utilisateur envoie des « doubles SMS », et en fait des mini-chaînes suspendues à chaque étape d'un cliquet OTR. Cela garantit que la conversation reçoit une nouvelle clé chaque fois qu'un nouvel utilisateur répond. De plus, cela réduit les allers-retours nécessaires en introduisant une troisième chaîne de « clé racine ».

L’une des grandes innovations de Signal était la possibilité de démarrer des conversations de manière asynchrone à l’aide d’un échange de clés hors ligne. Étant donné que la configuration de la clé de cryptage du message suivant ne nécessite que deux étapes et non trois, l'une de ces étapes peut être préparée à l'avance et enregistrée sur le serveur de Signal. Les clés secrètes pertinentes ne seront pas créées tant que quelqu'un n'utilisera pas ce matériel pour effectuer un calcul et dériver les informations de sa clé partagée. Il est donc sûr de prépublier. Signal appelle ces « pré-clés ». Pour une version moins simplifiée, voir ici ou ici pour la version post-quantique.

Métadonnées : ce que le chiffrement à clé publique ne peut pas faire anchor link

Le chiffrement à clé publique consiste à garantir que le contenu d'un message est secret, authentique et inaltéré. Mais ce n’est pas le seul problème de confidentialité que vous pourriez avoir. Comme nous l'avons noté, les informations sur vos messages –les métadonnées– peuvent être aussi révélatrices que leur contenu.

Si vous échangez des messages cryptés avec un dissident connu dans votre pays, vous pourriez courir un danger simplement en communiquant avec lui, même si ces messages ne sont pas décodés. Dans certains pays, vous risquez une peine d’emprisonnement si vous refusez de décoder des messages cryptés. Chaque outil de messagerie chiffrée collecte une quantité différente de métadonnées. Par exemple, WhatsApp est également crypté de bout en bout, mais collecte plus de métadonnées que Signal.

Maintenant que vous connaissez la cryptographie à clé publique, essayez d’utiliser un outil de chiffrement de bout en bout comme Signal.