Tous les articles

7 min de lecture

Vérifiez un destinataire avant de sceller un fichier

Une adresse de réception est une clé publique, pas un nom. Avant de sceller un fichier sensible, confirmez l'adresse du destinataire par un canal de confiance — le chiffrement peut fonctionner parfaitement et envoyer malgré tout à la mauvaise personne.

Avant de sceller un fichier sensible, vérifiez l'adresse de réception du destinataire par un canal qu'un attaquant a peu de chances de contrôler. Une adresse de réception est une clé publique, pas un nom. Si vous chiffrez vers la mauvaise clé, c'est son détenteur qui pourra ouvrir le fichier — tandis que la personne que vous vouliez joindre, elle, n'y parviendra peut-être pas.

C'est l'erreur humaine la plus fréquente dans les flux chiffrés. La cryptographie peut être irréprochable et l'envoi malgré tout erroné, car rien dans une chaîne de caractères ne prouve à qui appartient la clé. Le chiffrement répond à la question « qui peut ouvrir ces octets ? ». Il ne répond pas à « ai-je choisi la bonne personne ? ».

Qu'est-ce qu'une adresse de réception ?

Une adresse de réception est une clé publique de chiffrement que l'expéditeur utilise pour sceller un record. Avec CardanoWall, elle se présente sous deux formes :

  • age1... — une adresse de réception classique X25519 ;
  • age1pqc... — une adresse de réception hybride post-quantique.

L'expéditeur scelle vers l'adresse publiée par le destinataire. Le destinataire ouvre le record avec la clé privée correspondante, dérivée de sa graine d'identité. L'adresse est faite pour être partagée ; la clé privée et la graine doivent rester secrètes. (Pour en savoir plus sur ce qu'est une adresse et la manière dont les destinataires la communiquent, voir qu'est-ce qu'une adresse de réception.)

Pourquoi la vérification de la clé compte-t-elle autant ?

Parce que les clés publiques ne sont pas des identités.

N'importe qui peut vous envoyer une chaîne qui ressemble à une adresse de réception. N'importe qui peut coller une clé à côté d'un nom familier. La chaîne elle-même ne prouve rien sur la personne qui contrôle la clé privée correspondante — seulement qu'un détenteur de clé la contrôle. Un attaquant qui vous glisse sa propre adresse pourra lire tout ce que vous scellez « à destination » de votre contact, tandis que ce contact ne recevra rien.

Pour un fichier de test jetable, cela n'a sans doute pas d'importance. Mais pour une preuve juridique, des données d'incident, des informations personnelles, un travail non publié ou des documents de lanceur d'alerte, vérifiez la clé avant de sceller. Le carnet d'adresses existe précisément pour ancrer cette vérification : vous contrôlez la clé une fois, vous l'enregistrez, puis vous réutilisez l'entrée sauvegardée au lieu de recoller à chaque fois une chaîne à laquelle vous devez de nouveau faire confiance.

Qu'est-ce qu'un bon canal de vérification ?

Empruntez un chemin qu'un attaquant a peu de chances de contrôler, et confirmez la clé par un canal distinct de celui qui l'a transmise. Quelques options raisonnables, à peu près par ordre de robustesse :

  • une remise en main propre (par exemple, scanner un QR code ensemble) ;
  • un appel téléphonique à un numéro que vous connaissez déjà, en lisant l'empreinte de la clé à voix haute ;
  • une page de clés .well-known sur le domaine officiel du destinataire ;
  • un enregistrement DNS TXT sur ce domaine ;
  • un profil signé, lié depuis le site officiel du destinataire ;
  • une conversation chiffrée de bout en bout déjà établie et à laquelle vous vous fiez ;
  • un annuaire de clés validé par l'organisation ;
  • une empreinte de clé imprimée, transmise par un processus auquel vous vous fiez.

La bonne méthode dépend de ce que vous envoyez. Pour les fichiers à forte valeur, confirmez la clé par deux canaux indépendants — une clé reçue par e-mail et relue lors d'un appel téléphonique est bien plus difficile à falsifier que l'un ou l'autre pris isolément.

Qu'est-ce qui ne suffit pas à soi seul ?

Un nom familier ne suffit pas. Considérez les éléments suivants comme non vérifiés tant qu'un second canal ne les confirme pas :

  • une clé qui arrive dans un fil d'e-mails tout neuf ;
  • un message direct provenant d'un compte que vous n'avez pas vérifié ;
  • une capture d'écran d'une clé ;
  • un profil public sans lien de confiance qui remonte jusqu'à la personne ;
  • une adresse qui vous est transmise par un tiers ;
  • un message « voici ma nouvelle clé » sans vérification par un second canal.

Les attaquants concentrent leurs efforts sur le moment de l'échange de clés, car c'est la seule étape où une clé substituée paraît tout à fait normale. Une fois qu'une mauvaise clé est enregistrée, chaque envoi ultérieur peut continuer tranquillement à aboutir au mauvais endroit.

Comment utiliser le carnet d'adresses ?

Enregistrez la clé après l'avoir vérifiée, jamais avant. Pour chaque contact de confiance, le carnet d'adresses consigne :

  • un nom d'affichage ;
  • la clé publique de signature Ed25519 du contact (l'identifiant qui rattache ses records à son auteur) ;
  • une adresse de réception age1..., le cas échéant ;
  • une adresse de réception post-quantique age1pqc..., le cas échéant ;
  • comment vous avez vérifié la clé, et quand ;
  • des notes libres — consignez exactement la manière dont vous l'avez contrôlée.

Plus tard, lorsque vous composez un record scellé, choisissez le contact dans le carnet d'adresses au lieu de coller à nouveau une adresse. Une vérification soigneuse se transforme ainsi en de nombreux envois plus sûrs. Pour un pas-à-pas de constitution d'un carnet, voir créez votre carnet d'adresses et comment fonctionne le carnet d'adresses.

Faut-il privilégier l'adresse post-quantique ?

Pour les fichiers susceptibles de rester sensibles pendant de nombreuses années, oui — utilisez l'adresse post-quantique lorsque le destinataire en propose une.

Une adresse hybride age1pqc... est bien plus longue qu'une adresse classique, mais elle protège contre un attaquant qui enregistrerait aujourd'hui un texte chiffré scellé pour le déchiffrer plus tard à l'aide d'un futur ordinateur quantique (« harvest now, decrypt later » : moissonner maintenant, déchiffrer plus tard). Si un record n'a besoin de rester confidentiel qu'à court terme, une adresse classique age1... suffit généralement.

Quel que soit votre choix, la règle ne change pas : vérifiez d'abord l'adresse. Une clé post-quantique que vous n'avez pas vérifiée n'est pas plus sûre qu'une clé classique que vous n'avez pas vérifiée.

Que faire si le destinataire change de clés ?

Vérifiez la nouvelle clé comme s'il s'agissait d'un nouveau contact. N'écrasez pas une adresse de réception enregistrée au seul motif qu'un message prétend qu'elle a changé — c'est exactement la forme que prend une attaque par substitution de clé. Confirmez la nouvelle clé par un canal de confiance, mettez l'entrée à jour, et notez la raison du changement.

Pour les équipes et les organisations, la rotation des clés devrait être annoncée dans des endroits prévisibles : un domaine officiel, un profil signé, ou un processus interne documenté. Si vous soupçonnez qu'une clé a été compromise, cessez immédiatement de sceller vers l'ancienne adresse et attendez la confirmation de la nouvelle.

Que révèle un record scellé sur la chaîne ?

Pas de liste lisible de destinataires. Un record scellé Label 309 enveloppe la clé de contenu dans un emplacement chiffré par destinataire, puis mélange ces emplacements, si bien que le record public ne contient aucun champ « destinataire » en clair. La boîte de réception trouve les records qui vous sont destinés en tentant localement, avec vos propres clés, de déchiffrer chaque emplacement à l'essai. Ce qu'un observateur peut voir, c'est qu'un record scellé existe, quand il a été publié et combien d'emplacements il contient — jamais qui sont les destinataires.

Cette absence d'information sur les destinataires protège la confidentialité sur la chaîne, mais elle n'apporte rien à la vérification des clés. La chaîne masque à qui vous avez scellé ; elle ne peut pas contrôler que vous avez scellé vers la bonne clé. Choisir la bonne adresse reste entièrement la responsabilité de l'expéditeur. Et notez la limite de l'autre côté : le scellement maintient le texte en clair chiffré pour les détenteurs de clé, mais il ne garantit pas l'anonymat, et tout destinataire peut divulguer le texte en clair une fois qu'il l'a déchiffré. (Pour ce qu'une preuve peut et ne peut pas établir, voir ce qu'une preuve ne prouve pas.)

En bref

Un bon chiffrement assorti d'un mauvais contrôle de clé reste un mauvais envoi. Donc :

  • vérifiez une adresse de réception avant de sceller quoi que ce soit de sensible, idéalement par deux canaux ;
  • enregistrez les clés vérifiées dans le carnet d'adresses ; notez la manière dont chacune a été contrôlée ;
  • vérifiez de nouveau lorsqu'une clé change — traitez la nouvelle clé comme un contact tout neuf.

La cryptographie est la partie facile. La vérification, c'est la partie qui vous incombe.

Pour aller plus loin

securitysealed-poeaddress-book