Conseils: Une découverte critique dans le modèle de calcul non custodial PIE
Le modèle supprime la capacité de l'opérateur à déchiffrer quoi que ce soit une fois qu'un travail se termine. L'appareil continue de chiffrer vers une clé publique non vérifiée publiée par le seul composant que le modèle désigne comme non fiable.
Developed by Robert E. Beckner III (Merlin) | rbeckner.com
Je construis des systèmes depuis 25 ans, et j'adore construire des choses intentionnellement conçues et opérationnellement légères, ne portant que la quantité de vecteur qui mérite son poids.Dans cette approche, minimiser ce que je conserve des données d'un utilisateur a toujours eu du sens pour moi, pour des raisons qui vont au-delà de l'obvious. La souveraineté de leurs données compte. En dessous se trouve quelque chose de plus simple : les choses appartiennent là où elles doivent être. La plupart de ce que je construis est du traitement, et une architecture de traitement n'a aucun business à fonctionner comme autre chose. Conserver un enregistrement dont on n'a jamais besoin est un vecteur qui ne rapporte rien. Traiter cela comme une optimisation, plutôt que comme un exercice de conformité, est ce qui maintient le design honnête — et un système construit ainsi a tendance à rester en règle avec la réglementation de lui-même, car il ne reste presque rien à réguler.Alors que Mary l'annonce de Camacho traversait mon fil d'actualité sur X, je lisais son architecture comme je lis ma propre. Elle avait publié le cœur de celle-ci dans le registre public sous une licence Creative Commons, au niveau de détail qu'un ingénieur aurait besoin pour la reconstruire, et elle était directe sur l'art antérieur sur lequel elle se base.En travaillant à travers la séquence, j'ai placé une entité adversaire dans le serveur et suivi ce qu'elle pouvait atteindre. Elle pouvait dépasser le travailleur.Presque tout le travail qui a suivi s'est déroulé comme une conversation vocale — sur 30 notes vocales, en pensant à haute voix et en testant la préoccupation sous différents angles jusqu'à ce qu'elle tient ou s'effondre.Ce que j’ai remarqué : l’appareil chiffre pour celui qui écrit d’abord l’enregistrement de réclamation#
La divulgation précise l’ordre des opérations directement. Le travailleur revendique le travail et publie sa clé, et ce n’est qu’alors que l’appareil chiffre :Le côté de l’appareil de cet accord est spécifié avec la même précision :— §2.1, Flux de données (par travail)
- Travailleur → coordination : poll et revendique le travail (write-once, first-wins), publiant la clé publique du travailleur.
- Appareil ← coordination : poll, récupérer la clé publique du travailleur, dériver le secret partagé, chiffrer la charge utile.
L’appareil, en apprenant la clé publique du travailleur, effectue son propre échange X25519 et une encapsulation ML-KEM contre la clé du travailleur, produisant sa propre contribution publique (clé publique X25519 ‖ texte chiffré ML-KEM) et le secret partagé.— §4.2, Liaison au cycle de vie du travailleurEn apprenant. À travers 19 pages il n’y a pas de signature sur la clé publique éphémère du travailleur, pas de certificat, pas d’attestation que l’appareil évalue, et pas de secret pré-partagé. L’absence est délibérée et présentée comme une force : le modèle bloque le décryptage sans document d’attestation, citation TPM, ou artefact de démarrage mesuré, et il ne conserve aucun secret pré-provisionné du travailleur.Ainsi l’appareil chiffre sa charge utile vers la clé publique qui se trouve dans l’enregistrement de réclamation, sans moyen de distinguer la clé d’un travailleur légitime de celle de n’importe qui d’autre. Toute partie capable d’écrire une réclamation en premier devient la partie vers laquelle l’appareil chiffre, et la charge utile confiée se déchiffre dans leurs mains.
flowchart TB
subgraph BEFORE["Avant : tel que publié"]
direction TB
A2{« Qui revendique en premier ? »} -->|Travailleur réel| A3["Clé authentique"]
A2 -->|Tout autre écrivain| A4["Clé attaquante"]
A3 --> A5["L’appareil la chiffre"]
A4 --> A5
A5 --> A6["Le détenteur de la clé peut lire"]
end
subgraph AFTER["Après : clé signée"]
direction TB
B2{« Signature valide ? »} -->|Oui| B3["Clé de travail vérifiée"]
B2 -->|Non| B4["Refuser, réessayer"]
B3 --> B5["Seul le vrai travailleur lit"]
end
A6 ~~~ B2Copy sourceLa cryptographie est solide et l'introduction est non authentifiée#
L'attaquant ne casse rien. X25519 et ML-KEM-768 fonctionnent tous deux exactement comme spécifié. L'attaquant fournit une clé et devient une partie légitime de l'accord.Il s'agit d'un accord de clé non authentifié, et son mode d'échec est le résultat le plus ancien dans le domaine. Diffie-Hellman simple n'authentifie personne et tombe à une partie qui substitue sa propre clé publique. Les mécanismes d'encapsulation de clé héritent de cette propriété, c'est pourquoi RFC 9180 place l'authenticité de la clé publique du destinataire hors de son propre périmètre et suppose que l'application environnante l'établit via des certificats, un répertoire de clés ou une vérification hors bande. Ce modèle est cette application environnante, et le canal qu'elle utilise pour distribuer la clé du destinataire est le composant que son propre modèle de confiance qualifie non fiable.La divulgation anticipe une attaque voisine et la ferme :La réclamation est écriture unique/premier gagne, donc un travailleur ultérieur ne peut pas détourner l'échange de clé d'un travail.— §6, Implémentation de référenceCe raisonnement est solide et le mécanisme fait ce qu'il dit. Il couvre l'un des deux cas symétriques.
| Menace | Géré par la revendication « write-once » |
|---|---|
| Un second travailleur écrase une revendication existante | Oui — l'écriture est rejetée |
| Une partie non autorisée écrit la revendication en premier | Non — la première écriture gagne |
Aucun intermédiaire (gateway, coordination, stockage, monitor) ne détient jamais suffisamment de matériel clé pour dériver l'un ou l'autre secret. Un attaquant qui compromet la coordination ou le stockage obtient uniquement des blobs opaques et des clés publiques.— §4.3, clés indépendantes par directionLa première phrase est précise. La seconde décrit un attaquant qui lit. Un attaquant qui écrit place une clé publique choisie dans l'enregistrement de la revendication avant que l'appareil ne poll, et dériver le secret légitime devient inutile pour une partie qui peut s'organiser pour être la contrepartie. Quiconque gouverne le contenu de cet enregistrement gouverne qui peut lire la charge utile, ce qui fait de la couche de coordination un composant de confiance pour la confidentialité — la seule chose que §3 dit qu'aucun composant autre que l'appareil et le travailleur ne devrait jamais être.Une borne honnête sur la revendication : cela ne signifie pas que quiconque sur Internet ouvert peut lire ces données aujourd'hui. Dans un déploiement réel, la capacité d'écrire des revendications se trouve derrière le réseau cloud et les identifiants, et la divulgation décrit une passerelle d'authentification sur le chemin de l'appareil. Le problème précis est que la confidentialité repose désormais sur ce périmètre, alors que la promesse centrale de l'architecture est qu'elle tient sans faire confiance aux composants entre l'appareil et le travailleur.