Confiance et sécurité
C-NDA existe pour produire des preuves qui tiennent sans que personne n'ait à nous croire sur parole. La même exigence s'applique à cette page : ci-dessous figurent les mesures qui sont dans le code, les endroits où les données résident réellement, et, en termes simples, les certifications que nous ne détenons pas.
Rien ne se trouve « dans le cloud » comme une abstraction. Chaque catégorie de données a un lieu, et un lieu est une juridiction.
Supabase, Union européenne, région de Francfort. La région n'est pas un paramètre que quelqu'un peut basculer : elle est inscrite dans les règles du projet comme non déplaçable, car la déplacer déplacerait le fondement juridique sous chaque enregistrement.
Cloudflare R2, dans un bucket créé avec une juridiction UE. Sur R2, la juridiction est choisie lors de la création du bucket et ne peut pas être modifiée ensuite (il n'existe aucun paramètre pour la corriger plus tard, seulement un bucket à reconstruire), donc notre configuration vérifie le point de terminaison qui lui est fourni et refuse de rester silencieuse lorsqu'il ne s'agit pas du point de terminaison européen.
Le portail fonctionne sur Vercel. Le témoin qui rejoint une réunion et l'enregistre s'exécute dans un conteneur hébergé par Railway, à Amsterdam.
Sentry, région UE. Les en-têtes d'autorisation, les cookies, les corps de requête, les liens de réunion et les codes à usage unique sont supprimés avant que quoi que ce soit ne quitte le processus, et nous n'enregistrons pas les sessions de navigation.
Jamais chez nous. La gestion des paiements et des abonnements se fait sur les pages de Stripe elles-mêmes ; un numéro de carte n'atteint jamais nos systèmes.
La liste complète des sous-traitants, avec ce que chacun reçoit et pourquoi, figure dans la Politique de confidentialité. Lire la Politique de confidentialité
Trois questions décident de la sécurité d'un système comme celui-ci : qui peut lire quoi, comment nous savons qui vous êtes, et ce qui arrive aux éléments qui traversent le réseau.
C'est l'invariant autour duquel tout le produit est construit, et c'est une propriété de sécurité avant d'être une propriété juridique.
01
Dans une réunion protégée, le lien de réunion est chiffré au repos dans la base de données.
02
Tant qu'un participant ne s'est pas identifié et n'a pas accepté le NDA, ce lien ne lui est pas caché, ni masqué, ni grisé : il n'est jamais envoyé. Il est absent des charges utiles d'API, du HTML, des événements en temps réel, des journaux et des messages d'erreur. Aucune inspection de la page ne révèle ce qui n'a jamais été transmis.
03
La seule réponse qui le renvoie est celle qui enregistre l'acceptation, et uniquement tant que la session est encore ouverte. Une fois qu'une session est fermée, expirée ou certifiée, même un participant qui a accepté ne reçoit rien.
Un test de navigateur ouvre la page d'invitation et vérifie que le lien est absent du document. Ce n'est pas un commentaire dans le code : c'est un verrou, et il fait passer la suite au rouge.
Un certificat vaut exactement autant que la difficulté de modifier après coup ce qu'il certifie.
01
Le paquet de preuves est sérialisé sous forme canonique RFC 8785. Canonique signifie déterministe : le même contenu produit les mêmes octets, dans le même ordre, sur n'importe quelle machine, aussi longtemps que la norme existe. Sans cela, « recalculer le hachage » serait une invitation plutôt qu'une procédure.
02
SHA-256 sur ces octets exacts constitue le hachage du paquet. Modifiez un seul caractère n'importe où dans le paquet et le hachage devient différent au point d'être méconnaissable.
03
Le hachage est inscrit sur Polygon PoS dans une transaction publique. À partir de ce moment, l'enregistrement échappe à notre portée : nous ne pouvons ni le déplacer, ni le modifier, ni le retirer, et personne d'autre ne le peut non plus.
04
Lien protégé, identité et accord, réunion, preuves scellées, vérification. Aucune étape n'est sautée, réordonnée ou exécutée en parallèle de la suivante : ni pour accélérer un écran, ni en test.
Après l'ancrage, le paquet ne peut pas être modifié. Une correction émet un nouveau certificat qui se déclare révision du précédent, et les deux subsistent. Il n'y a pas de changements silencieux, par construction plutôt que par politique.
Lorsque le témoin n'a pas pu couvrir quelque chose (une interruption dans l'enregistrement, un participant qu'il n'a pas pu identifier), le certificat le dit. Une lacune déclarée reste une preuve ; une lacune dissimulée rendrait tout le document sans valeur.
Nous tenons un audit qui reconstruit le paquet de chaque certificat à partir de la base de données et recalcule son empreinte, avec les mêmes fonctions qui l'ont produite. Il fait échouer l'exécution plutôt que d'imprimer un avertissement, et un certificat qui ne se reproduit pas est réémis en tant que révision, jamais modifié.
Tout ce qui précède est notre description de notre propre système. C'est la section où vous n'avez plus besoin d'en croire quoi que ce soit.
01
L'archive de preuves contient evidence.json déjà sous forme canonique, donc un simple SHA-256 de ce fichier est le hachage du paquet. Comparez-le avec le hachage imprimé sur le certificat : ils concordent, ou les preuves ne sont pas ce qui a été certifié.
02
Ouvrez la transaction d'ancrage sur un explorateur de blocs public et examinez l'événement Anchored. Le hachage dans cet événement doit être celui que vous venez de calculer. Rien de chez nous ne participe à cette étape.
Première étape, sur votre propre machine
shasum -a 256 evidence.jsonLe contrat d'ancrage : Polygon PoS, chaîne 137
0x5CceC6F5806b7C949eB90D61fB9D13Cb639AC203Source vérifiée sur Polygonscan. Il émet Anchored(hash, timestamp, sender) pour une transaction dédiée ; il définit aussi BatchAnchored(merkleRoot, …) pour un lot quotidien, pas encore utilisé.
Ouvrir le contrat sur PolygonscanNous maintenons aussi un vérificateur en ligne de commande qui automatise les deux étapes, y compris les preuves de Merkle pour les certificats regroupés. Il est sous licence MIT, et il n'est pas encore publié sur un registre public, donc aujourd'hui il n'existe aucun moyen pour vous de l'obtenir, et la procédure de cette page n'utilise délibérément rien de chez nous. Quand le vérificateur sera publié, cette page indiquera où l'obtenir, et pas un jour avant.
La vérification publique lit une vue de base de données dédiée qui ne contient ni noms, ni titres, ni adresses. Un tiers peut confirmer qu'un paquet existe et que son empreinte correspond, et n'apprend rien sur qui a signé quoi.
Comment fonctionne la vérification, étape par étapeUne page de sécurité qui ne liste que des points forts est une publicité. Voici les limites. Elles sont ici parce que l'alternative est que vous les découvriez plus tard.
Nous ne sommes pas SOC 2 Type II. Nous ne sommes pas ISO 27001. Nous ne sommes pas conformes HIPAA. Aucun auditeur ne nous a évalués au regard de ces référentiels, et nous n'afficherons pas un badge que nous ne détenons pas. Le RGPD est d'une autre nature : une loi que nous sommes tenus de respecter, pas un certificat que quiconque décerne, c'est pourquoi vous trouverez ici une page de protection des données et aucun sceau.
Vous ne pouvez pas lire notre code serveur, et vous ne devriez pas avoir à le faire. Ce qui doit être digne de confiance, c'est la capacité de vérifier notre résultat sans nous, et cette capacité repose aujourd'hui sur une norme publiée et une blockchain publique plutôt que sur l'une de nos promesses.
Si le compteur lui-même est injoignable, la requête passe et l'anomalie est journalisée. C'est délibéré : une panne du compteur bloquerait sinon des signataires légitimes, et la défense qui compte réellement contre les tentatives de deviner le code, le verrouillage après trois tentatives, n'en dépend pas.
Elle supprime vos données personnelles, vos brouillons et votre travail en attente. Les certificats déjà émis restent vérifiables, car ils constituent aussi les preuves de l'autre partie : les détruire à la demande d'un signataire irait à l'encontre de la raison même de leur existence.
Nous supprimons les fichiers. Pendant une heure au maximum, un cache de stockage peut encore servir une copie, et les copies déjà téléchargées par des personnes qui y avaient droit restent là où elles sont. Ce qui n'est jamais affecté, c'est la preuve : le hachage audio, le paquet de preuves et l'ancrage restent intacts, donc détruire un enregistrement ne change jamais ce qui a été certifié.
Nous lisons chaque signalement et corrigeons ce qui est réel, mais nous ne gérons pas de programme rémunéré et nous préférons que vous n'en attendiez pas.
Nous préférons que vous les lisiez ici plutôt que de les découvrir plus tard. Aucune ne touche à la partie qui compte le plus, à savoir si un certificat peut être vérifié sans nous, et cette partie se trouve ci-dessus, avec les commandes pour le faire.
Si vous avez trouvé quelque chose, nous voulons l’apprendre de vous avant de l’apprendre de quelqu’un d’autre.