NIP-104 : DMs à double cliquet
NIP-104 est un brouillon pour des messages directs chiffrés de bout en bout utilisant un design à double cliquet (double ratchet), visant à apporter la confidentialité persistante (forward secrecy) et la récupération post-compromission aux conversations Nostr.
Pourquoi c’est important
Les solutions de DM Nostr existantes présentent des limites :
- NIP-04 : chiffre le contenu mais laisse fuiter les métadonnées
- NIP-17 + NIP-59 : résout la fuite de métadonnées via l’enveloppement cadeau (gift wrapping) mais ne fournit pas de confidentialité persistante
NIP-104 cible la propriété manquante : si l’état d’un appareil ou une clé à long terme est compromis, l’attaquant ne devrait pas automatiquement obtenir l’historique complet de la conversation ni un accès permanent aux futurs messages.
Fonctionnement
NIP-104 débute par une configuration de type X3DH qui combine les clés d’identité et les prekeys pour dériver un secret partagé initial. Ensuite, chaque côté avance un double cliquet : un cliquet Diffie-Hellman fait tourner les clés racine et de chaîne lorsque les parties échangent de nouvelles clés publiques, et un cliquet symétrique dérive des clés par message au sein de chaque chaîne d’envoi ou de réception.
Parce que chaque clé de message est éphémère, les anciens textes chiffrés sont plus difficiles à récupérer même si un état ultérieur est exposé. C’est la principale différence technique par rapport aux schémas à clé statique unique.
Types d’événements
- Kind 10443 : publie les prekeys utilisateur pour l’initialisation X3DH
- Kind 443 : configuration initiale de conversation avec premier message chiffré
- Kind 444 : messages chiffrés suivants dans les conversations établies
Tous les messages chiffrés sont enveloppés dans des événements GiftWrap kind 1059 pour la protection des métadonnées.
Sécurité et compromis
Le gain en sécurité s’accompagne de plus d’état à gérer. Chaque appairage d’appareil nécessite un état de cliquet, une gestion des prekeys et une logique de récupération pour la livraison désordonnée. Restaurer une ancienne sauvegarde ou utiliser plusieurs appareils non synchronisés peut rompre le déchiffrement jusqu’à ce que la conversation soit rétablie.
Ce compromis explique pourquoi la messagerie à double cliquet est plus difficile à intégrer après coup que les notes chiffrées ordinaires. Les clients ont besoin d’un état local durable et d’une sémantique d’appareil soignée, pas seulement d’une primitive de chiffrement.
Notes d’interopérabilité
La proposition utilise des kinds dédiés pour la configuration et les messages, plus NIP-59 : Gift Wrap pour la confidentialité du transport. Elle recommande aussi de publier ces événements enveloppés uniquement vers les relais listés dans l’événement de préférence de relais DM kind 10050 de l’utilisateur. Cela signifie que NIP-104 n’est pas un simple remplacement direct de NIP-17 : Messages directs privés ; les clients ont besoin d’un support explicite pour son flux de prekeys, la découverte de relais DM et la machine à états du cliquet.
Sources principales :
Mentionné dans :
Voir aussi :