Base de connaissances Parler aux gens
Cryptage résistant aux quantiques
Les messages privés et les discussions de groupe entre les utilisateurs de Nymchat peuvent être cryptés afin que les enregistrer aujourd’hui ne rapporte rien à un attaquant, même une fois que les ordinateurs quantiques arriveront.
Cette page est traduite automatiquement pour plus de commodité. La version originale anglaise est la version qui s’applique.
Le problème qu'il résout
Cryptage Nostr ordinaire — PIN-44, c'est quoi messages privés et discussions de groupe sont construits sur - a deux moitiés. La moitié que brouille en fait le texte (ChaCha20, HMAC-SHA256, HKDF) résiste bien à un quantum ordinateur. La moitié qui est d’accord sur la clé ne l’est pas.
Cet accord clé est Diffie-Hellman à courbe elliptique sur secp256k1, les mêmes mathématiques utilisées par Bitcoin. L'algorithme de Shor résout le problème. Quiconque l'exécute avec une clé publique récupère le clé privée, et avec elle tous les secrets partagés que cette clé a jamais produits.
Ce n’est pas un problème qui commence avec l’arrivée des ordinateurs quantiques. Un adversaire qui en a assez le stockage peut enregistrer le trafic crypté aujourd'hui, asseyez-vous dessus et décryptez-le des années plus tard. Tout ce que vous envoyez maintenant et qui compte encore à l’époque est déjà exposé. C'est le spécifique attaquer cette fonctionnalité défaites.
Comment ça marche
Nymchat laisse le format de message NIP-44 complètement seul. L'accord clé qu'il utilise déjà est intact; un second, indépendant est ajouté autour de lui.
- la norme secp256k1 ECDH, exactement comme avant ;
- ML-KEM-768, l'algorithme post-quantique normalisé par le NIST comme FIPS 203. Sa sécurité repose sur des problèmes de réseau, auxquels l'algorithme de Shor ne touche pas.
Les deux sont Mélangé, pas mélangéLe message est crypté avec NIP-44 exactement comme il l'a toujours été, et ce texte de chiffrement fini est ensuite scellé une seconde fois à l'intérieur de la couche post-quantum - ChaCha20-Poly1305, clé du secret partagé ML-KEM. La clé de l'expéditeur, la clé du destinataire, le texte de chiffrement d'encapsulation et la clé ML-KEM du destinataire sont liés à cette dérivation comme contexte, de sorte qu'une couche ne peut pas être retirée d'un échange et reproduite sur un autre.
Nymchat ne le fait pas, et la raison est plus pratique que cryptographique: le mélange a besoin de la sortie ECDH brute, et une extension de navigateur ou un signataire à distance ne le renverra jamais - il renvoie un texte de chiffrement fini, qui est le point de maintien de la clé où l'application ne peut pas l'atteindre. Layering garde NIP-44 entier et produit par tout ce qui détient la clé d'identité, signataire inclus, de sorte que ces connexions sont des participants ordinaires plutôt que des exclus.
La propriété importante est la même : le résultat est Au moins aussi fort que la moitié la plus forteLa lecture du message signifie passer par les deux couches.Si la cryptographie de la grille se révèle être plus faible que prévu, la rupture du ML-KEM ne fait que déchirer la couche extérieure et laisse le NIP-44 d'aujourd'hui en dessous.Si secp256k1 tombe sur un ordinateur quantique, la couche intérieure s'ouvre mais la couche extérieure ne le fait pas.
Chaque message fait l'objet d'un nouvel échange post-quantique, donc la récupération de la clé d'un message révèle rien pour les autres.
La moitié post-quantum a besoin d'une clé propre, et d'où cette clé vient est ce qui décide si la chose entière vaut quelque chose. pas travaillé à partir de votre nsecUn ordinateur quantique qui brise la moitié classique récupère votre
nsec de votre clé publique, et tout ce qui dérive de la nsec par une formule publiée sort avec elle — deux serrures ouvertes par une pause. Le code post-quantum pour chaque compte, une fois, à partir de bytes aléatoires qu'aucune valeur publique n'expose. nympq1… Asseyez-vous à côté de votre nsec dans les détails de votre Nym, révélés et copiés de la même manière.Ce n'est pas un mot de passe et pas un second login: c'est du matériel clé que vous pouvez enregistrer, exactement comme le nsec.
Il n'y a rien à allumer
Ce n'est pas un paramètre. Le chiffrement post-quantique est simplement la manière dont Nymchat communique avec Nymchat, le de la même manière, le cryptage ordinaire permet de communiquer avec tout le reste. Il s'applique automatiquement à chaque message privé et discussion de groupe avec un autre utilisateur de Nymchat.
Paramètres › Confidentialité & Sécurité montre si elle est active et combien de vos contacts elle atteint actuellement, mais seulement en tant qu'information - il n'y a pas de commutateur.
Cela fonctionne quelle que soit la façon dont vous vous connectez. Une extension de navigateur (NIP-07) ou un signataire à distance (NIP-46) ne transmet jamais votre clé d'identité à l'application, ce qui est le point de l'utilisation de l'une - et il n'a pas à. Les deux moitiés du cryptage sont gardées à part: votre signataire fait la partie qu'il a toujours faite, et l'application fait la partie post-quantum avec votre code de récupération, qu'elle détient directement.
Chaque message de votre historique reste lisible sur tous les appareils avec rien d'autre que votre nsec, exactement comme avant, et demeure ainsi pour la vie du compte. nympq1… Le code de récupération est le matériel résistant aux quantiques écrit à partir de maintenant : les nouveaux messages, les paramètres synchronisés et les archives qui voyagent avec eux.
Ainsi, un appareil doit conserver ce code avant de pouvoir les ouvrir, et l'ajout d'un appareil prend maintenant une étape supplémentaire. nympq1…
C'est une fois par appareil, pas une fois par connexion. Cette étape n'est pas la friction que nous n'avons pas supprimée: un code qui pourrait arriver sur un nouvel appareil par lui-même aurait à y voyager à l'intérieur d'un message ordinaire, et ce message est exactement ce que l'attaquant cette fonctionnalité existe pour arrêter est l'enregistrement.
L’application génère le nympq1… code pour vous, de sorte qu'il n'y a rien à choisir et rien à inventer. Afficher ou éditer les détails de NymAlors
Découvrez la clé privée et le code de récupération de ce nymIl est situé juste en dessous de votre nsec, avec les mêmes boutons d'affichage et de copie. Vous n'avez jamais à y penser jusqu'au jour où vous ajoutez un deuxième appareil.
Un appareil non lié n’est pas verrouillé entre-temps.Il continue de lire tout ce qui est écrit sous le vieux cryptage et continue d’envoyer normalement, et une fois que vous le reliez, il revient et ouvre les messages résistants aux quantiques qu’il ne pouvait pas lire auparavant.
Un second appareil a besoin de deux choses: une version actuelle de l'application et le
nympq1… Un ancien build continue de fonctionner – il n’est pas coupé – mais il ne peut pas lire le format actuel, donc pendant qu’il est encore sur le compte les copies que vous gardez pour vous-même tombent à l’ancien qu’il peut. Un appareil à jour qui n’a pas encore été lié lit votre ancien historique et demande le code. Ni ne peut nous dire qu’il existe, c’est pourquoi ceci est une notification plutôt que quelque chose que nous détectons pour vous.
Avec qui tu l'obtiens
Chaque client Nymchat publie une petite annonce signée, expirant en disant ainsi, et inclut sa clé post-quantum quand il en a une. Détenir une annonce valide pour quelqu'un est ce qui fait que l'application utilise l'échange plus fort avec eux. Il n'y a pas de négociation à interférer avec: soit la clé est là ou elle n'est pas, et parce que l'annonce est signée par son auteur, une clé de remplacement devrait être falsifiée plutôt que simplement servi.
Quel attaquant qui contrôle un relais peut faire est de retenir l'annonce, de sorte que l'expéditeur ne voit jamais une clé et revient à l'encryption ordinaire. Cela vaut la peine de l'affirmer clairement. Il coûte la protection post-quantum pour ces messages; il ne peut pas rendre un indélébile, et il ne peut pas vous faire accepter une clé qui n'est pas la vôtre.
Ces annonces durent une semaine et se rafraîchissent quotidiennement pendant que vous utilisez l’application. Si vous êtes loin plus longtemps que cela, vos annonces disparaissent et vous êtes lu comme un client ordinaire de Nostr pendant un certain temps: les messages envoyés à vous dans cet écart sont cryptés de la manière normale plutôt que de la manière résistante aux quantiques. Ils arrivent toujours, et vous pouvez toujours les lire – et rien que vous ayez reçu auparavant n’est affecté.
Tout le monde continue de travailler exactement comme avant. Bitchat les utilisateurs et tout autre client de Nostr reçoivent le standard PIN-17, inchangé.Rien ne se brise lorsque vous envoyez un message à quelqu'un en dehors de Nymchat.
Un message post-quantique remplace le modèle standard plutôt que d'être envoyé à côté. Envoyer les deux serait inutile : un attaquant briserait simplement la copie la plus faible.
Les copies adressées à toi obtenez-le également - celui que vos autres appareils lisent, le archive derrière lui, et vos paramètres synchronisés, qui voyagent de la même manière et transportent votre liste de conversations, vos clés de groupe et votre historique de messages. Laisser l'un d'entre eux sur l'ancien le cryptage en aurait fait l'élément le plus faible que vous stockiez : lisible par quiconque le piraterait. cryptographie d'aujourd'hui, quel que soit le soin avec lequel les messages eux-mêmes ont été scellés.
Rester lisible par Bitchat
Bitchat ne peut pas lire le format de message de Nymchat, donc historiquement Nymchat envoyait une deuxième copie de chaque message au format Bitchat à toute personne susceptible de l'utiliser - ce qui, pour quelqu'un vous n'aviez jamais eu de nouvelles, je voulais dire tout le monde.
L’annonce ci-dessus rend cette supposition inutile. Si quelqu'un en a publié un, c'est exécutant Nymchat, la copie Bitchat est donc supprimée et seul le message le plus fort est envoyé. S'ils ne l'ont pas fait, rien n'a changé : ils reçoivent toujours les deux formats, exactement comme avant, donc rien que vous envoyez peut devenir illisible parce que l'application a mal deviné quel client quelqu'un utilise.
Comme le cryptage lui-même, celui-ci est automatique et ne comporte aucun paramètre.
Nymchat pourrait déduire qui dirige quoi à partir de l'activité de la chaîne publique, et repérerait les gens plus tôt. Mais cette déduction est parfois fausse, et se tromper ici signifie envoyer à quelqu'un un message que son application ne peut pas ouvrir, sans erreur ni nouvelle tentative. Un publié l'annonce est signée par son auteur et ne peut être falsifiée, elle est donc utilisée à sa place.
Dans les discussions de groupe
Les messages de groupe sont déjà chiffrés séparément pour chaque membre, un groupe peut donc mélanger les deux types librement — les membres dont les clients le soutiennent bénéficient du cryptage le plus puissant, les autres obtiennent le standard, et le groupe travaille normalement dans les deux cas.
Pour cette raison, un message de groupe n'est marqué comme résistant aux quantiques que lorsque chaque membre je l'ai reçu de cette façon. Si même une copie a utilisé l'échange standard, cette copie porte le même message, de sorte que le message dans son ensemble est aussi protégé que sa copie la plus faible. L'application dit "quantiquement résistant à 8 membres sur 10" plutôt que d'arrondir.
Les discussions de groupe conservent également leur rotation des clés uniques, qui cachent qui est dans un groupe de quiconque regarde un relais. Cette protection n’est pas affectée et fonctionne exactement comme avant.
Lire le badge
Chaque message privé et chaque message de groupe comporte un petit bouclier En cliquant sur l’une ou l’autre des marques, il explique ce qu’elle montre.
| Marque | Signification |
|---|---|
| Cadenas | Qui l'a envoyé – si la signature correspond à l'auteur revendiqué. |
| Bouclier | Les deux parties ont tenu leur propre code post-quantum, et l'échange hybride a été utilisé pour chaque copie de ce message. |
| Bouclier en pointillés | Partiellement résistant aux quantiques – un message de groupe seulement certains membres ont reçu une copie protégée.Parce que les autres portent le même texte, traiter le message comme conventionnellement crypté dans son ensemble. |
| Bouclier à travers | Le cryptage standard NIP-44 est toujours crypté de bout en bout, et il est encore indescriptible pour quiconque, sauf pour les participants aujourd'hui. |
| Pas de bouclier | Les messages de chaîne publique sont lisibles sur le relais par conception, de sorte qu'aucune marque de chiffrement ne s'applique. |
Le bouclier est toujours présent sur un message crypté, et dit clairement quand la réponse est non. Une marque manquante serait ambiguë - cela pourrait également signifier “pas résistant aux quantiques”, “ce bâtiment est trop vieux”, ou “l'indicateur est cassé” - et un indicateur de sécurité qui ne peut pas être distingué d'un brisé ne vous dit rien.
Il se trouve à côté de la serrure plutôt que de la remplacer parce que les deux répondent à des questions différentes, et un message peut être l'un sans l'autre - résistant aux quantiques mais d'un expéditeur non vérifié, ou vérifié mais conventionnellement crypté.
Les messages plus anciens maintiennent le bouclier à travers en permanence. Tout ce qui a été envoyé avant que les deux parties soient sur une construction résistante aux quantiques a été scellé avec l'échange conventionnel, et que le texte de chiffrement existe déjà sur les relais - il ne peut pas être ré-scellé après le fait.
Ce qu'il ne fait pas
Cela protège le contenu de vos messages. Cela ne fait pas que chaque partie de Nostr est à l’épreuve quantique, et il vaut la peine d’être précis sur la différence.
- Les signatures sont toujours secp256k1. Les identités Nostr signent avec Schnorr sur le même courbe. Un adversaire disposant déjà d’un ordinateur quantique fonctionnel pourrait forger un signature et usurper l'identité de quelqu'un en temps réel. Ce que l'échange hybride arrête de lire trafic enregistré – confidentialité, pas authentification.
- Il n’y a pas de secret avant. Les deux clés sont longues : NIP-44 tire sa clé de votre
nsec, et la couche post-quantum encapsule la clé ML-KEM derrière votrenympq1…Chaque message reçoit une encapsulation fraîche, de sorte que la clé d'un message n'ouvre pas la prochaine - mais quiconque finit par tenir ces clés à long terme peut lire tout ce qu'ils ont jamais enregistré, pas seulement ce qui est venu après. Messages expirés réduire, et c’est pourquoi cette fonctionnalité vise à récolter-maintenant-déchiffrer-plus tard plutôt qu’à une clé qui est prise. - Les métadonnées sont inchangées. Un relais voit encore qu'un événement était adressé à une clé, et à peu près quand. Cela est géré par emballage cadeau et clés uniques, pas par ceci.
- Le réseau Bluetooth n’est pas couvert. Un message transféré Le Mesh voyage à l'intérieur d'une session Noise XX, qui est fort, le cryptage actuel mais un échange de clés classique - de sorte qu'il ne porte pas la couche post-quantum, même entre deux utilisateurs de Nymchat. Le badge reflète ceci: un message livré sur le filet n'est pas marqué résistant aux quantiques.
- Votre code de récupération est une deuxième chose à garder. Il commence avec
nympq1Vous le trouverez dans Les détails de votre NymDans le même panneau que votrensec— appuyez sur votre nym, puis “Révèle la clé privée de ce nym et le code de récupération”.nsecelle-même ne reconstruit pas votre clé post-quantum - c'est précisément pourquoi elle fonctionne - donc si aucun appareil ne détient ce code et que vous n'en avez pas de copie, ce qui a été scellé à elle ne peut pas être ouvert à nouveau.nsec. - Il ne peut pas protéger ce que fait l’autre partie. Un destinataire peut toujours faire une capture d'écran, copier ou conserver un message.
C'est la même position que Signal prend avec sa propre mise à niveau post-quantique : corriger l'échange de clés maintenant, parce que c'est la partie sur laquelle un attaquant peut agir rétroactivement et traiter les signatures comme un problème distinct lorsque les normes rattrapent leur retard.
Vérification du travail
La mise en œuvre ML-KEM est testée contre l'officiel Test des vecteurs NIST pour FIPS 203L'application web et l'application mobile sont également tenues à un ensemble partagé de vecteurs de test, ce qui garantit qu'un message écrit par l'un peut être lu par l'autre.
Les deux sont Source ouverte sous la AGPL-3.0, et les constructions de l'application web sont reproductibles — voir vérifier une build.
En approfondissant : Accord de clé post-quantique à Nymchat - un whitepaper technique sur la façon dont la clé ML-KEM est distribuée sans répertoire, la construction exacte qui combine les deux échanges de clés et les conceptions qui ont été rejetées.