Ce que prouve une attestation, et ce qu’elle ne prouve pas
Votre navigateur vérifie l’enclave de Tinfoil avant d’envoyer le moindre mot. Ce que cette vérification établit, où elle s’arrête, et ce qui ne peut pas encore être vérifié dans un navigateur.
« Chiffré pour l’enclave » est une formule courte pour une chaîne de vérifications. Chacun de ses maillons mérite d’être connu, car chacun repose sur quelque chose de différent : les clés d’un fabricant de processeurs, une version publiée, un en-tête, ou du code que nous servons. Cette note parcourt la chaîne dans l’ordre et indique où elle s’arrête.
La vérification, dans l’ordre
Avant que l’espace de travail n’envoie un message, votre navigateur récupère le paquet d’attestation de l’enclave via notre relais et le vérifie avec le vérificateur de Tinfoil, dans l’onglet. Le paquet contient un rapport matériel signé avec des clés qui remontent au fabricant du processeur (AMD SEV-SNP pour le routeur), une mesure du code que l’enclave a démarré, et la clé publique avec laquelle l’enclave déchiffrera.
- La signature du rapport montre qu’il provient d’un véritable matériel d’enclave.
- La mesure est comparée à une version signée et publiée du code du routeur, si bien que le navigateur sait quel code s’exécute.
- La clé du rapport est celle pour laquelle votre message est ensuite chiffré, avec HPKE, avant de quitter l’onglet.
Le relais met ce paquet public en cache pendant une minute. Comme le navigateur le vérifie, le faire passer par notre serveur ne peut pas l’affaiblir : un paquet modifié échoue à la vérification, et rien n’est envoyé.
Ce que montre une vérification réussie
Qu’une enclave à cette adresse est un vrai matériel qui exécute cette version publiée, et qu’elle détient la clé pour laquelle votre message a été scellé. Votre message ne peut être ouvert qu’à l’intérieur de ce code, tant que les protections du matériel tiennent. Notre relais, notre hébergeur et le réseau entre les deux voient du texte chiffré.
Où elle s’arrête
L’enclave que vérifie votre navigateur est le routeur de modèles de Tinfoil. Son code publié déchiffre votre requête et la transmet à l’enclave propre au modèle, par une connexion TLS liée à la clé attestée de cette enclave. Votre navigateur ne peut pas confirmer lui-même ce saut ; il repose sur le code publié du routeur.
L’espace de travail essaie bien de vérifier aussi l’enclave du modèle, et indique sur le reçu de chaque réponse ce qu’il a trouvé. Aujourd’hui, cette vérification ne peut souvent pas aboutir dans un navigateur. Le vérificateur de Tinfoil pour navigateur ne lit que les rapports AMD SEV-SNP, et les enclaves de Kimi K3, GPT-OSS 120B, DeepSeek V4.1 Flash et de la plupart des Gemma 4 31B tournent sur Intel TDX : leurs reçus indiquent donc qu’elles ne peuvent pas encore être vérifiées dans un navigateur. Certaines enclaves SEV-SNP, dont celle de GLM-5.3, déclarent une version de processeur que le vérificateur n’accepte pas encore, et apparaissent comme non confirmées. Dans aucun des deux cas cela ne signifie que l’enclave pose problème ; cela signifie que le navigateur n’a pas pu montrer qu’elle était conforme. Ces constats datent du 28 octobre 2026.
Deux choses qu’une vérification ne peut pas couvrir
- Le code qui vérifie vient de nous. Si nous servions un vérificateur qui ment, la vérification réussirait. C’est pourquoi /verify compare le code chargé par votre navigateur avec le manifeste publié du build, et pourquoi le build peut être reproduit octet par octet.
- L’attestation repose sur les clés de signature du fabricant et sur un matériel d’enclave qui fonctionne comme prévu. Elle ne peut rien vous dire d’une faille dans l’un ou l’autre.
Vérifiez par vous-même
Comment fonctionne la vérification trace toute la chaîne. Scellez-le vous-même exécute l’étape de scellement dans votre navigateur, sans rien envoyer. Vérifier cette page hache le code que vous avez chargé, et Essayez de le déchiffrer publie une requête chiffrée telle que notre relais l’a vue.
Autres notes de terrain
Ce que voit encore un relais qui ne peut pas lire
Notre relais transmet du texte chiffré qu’il ne peut pas ouvrir. Ce n’est pas la même chose que ne rien voir. Un inventaire de ce qu’il voit bel et bien, et pourquoi.
Une clé après le # : comment les liens partagés tiennent le serveur à l’écart
Une conversation partagée est stockée sur notre serveur, et nous ne pouvons pas l’ouvrir. Comment cela fonctionne, où intervient le mot de passe, et ce qu’un lien ne peut pas protéger.