Architecture à connaissance nulle expliquée
Une explication technique approfondie de l'architecture à connaissance nulle pour les formulaires en ligne. Découvrez comment le chiffrement côté client, la dérivation de clé et la liaison AAD rendent physiquement impossible à Schweizerform de lire vos soumissions.

« Nous ne pouvons pas voir vos données. » C'est une affirmation qui figure sur chaque page produit axée confidentialité, et c'est aussi celle qui est le plus souvent fausse. La plupart du temps, elle signifie en réalité « nous promettons de ne pas regarder » — ce qui est une politique, pas une garantie.
L'architecture à connaissance nulle est ce qui transforme cette affirmation en fait. C'est une conception technique précise dans laquelle l'opérateur du service n'a aucune capacité cryptographique de lire les données des utilisateurs — même s'il le voulait, même si ses serveurs étaient saisis, même si son personnel était compromis. Dans cet article, nous expliquons exactement ce que cela signifie, comment cela fonctionne en pratique et comment Schweizerform l'implémente pour les soumissions de formulaires.
À qui s'adresse cet article
Ceci est un guide technique destiné aux développeurs, délégués à la protection des données, ingénieurs sécurité et décideurs informés. Vous n'avez pas besoin d'être cryptographe, mais vous repartirez avec un modèle mental clair du fonctionnement réel des formulaires à connaissance nulle.
Ce que « connaissance nulle » signifie réellement
En cryptographie, « connaissance nulle » a une définition académique précise liée aux preuves à divulgation nulle de connaissance. Dans le monde des produits de sécurité, le terme est utilisé plus largement pour décrire un système dans lequel :
- Tout chiffrement et déchiffrement se produit sur l'appareil de l'utilisateur, jamais sur le serveur
- Les clés nécessaires au déchiffrement ne parviennent jamais au serveur sous une forme exploitable
- Le serveur ne stocke que du texte chiffré et ne peut pas déduire, deviner ou récupérer le texte clair
- La confiance envers l'opérateur n'est pas requise — l'architecture est prouvable plutôt que promise
L'opposé de la connaissance nulle est un système basé sur la confiance où le serveur détient les clés et promet un comportement responsable. La plupart des SaaS grand public sont conçus ainsi. Ce n'est pas du mauvais génie logiciel — c'est juste un modèle de confiance différent. La connaissance nulle est le modèle que l'on choisit lorsque les données sont trop sensibles pour qu'une promesse suffise.
Tous les produits « chiffrés de bout en bout » ne sont pas à connaissance nulle
Un système peut utiliser l'E2EE entre utilisateurs tout en s'appuyant sur des clés conservées par le serveur pour les sauvegardes, les réinitialisations de mot de passe ou l'accès admin. Ce sont des choix produits légitimes — mais ils cassent la propriété de connaissance nulle. Lisez toujours au-delà du slogan marketing jusqu'à la description de la gestion des clés.
Le problème difficile que la connaissance nulle doit résoudre
La question évidente : si le serveur ne détient aucune clé, comment les utilisateurs se connectent-ils, partagent-ils des formulaires, déchiffrent-ils des soumissions sur plusieurs appareils et récupèrent-ils d'un mot de passe oublié ? C'est le vrai défi de conception. N'importe qui peut construire un système sûr mais inutilisable — l'art consiste à en construire un qui soit sûr ET utilisable.
Chaque système à connaissance nulle converge vers une poignée de primitives cryptographiques centrales pour résoudre cela :
| Primitive | Rôle |
|---|---|
| Dérivation de clé par mot de passe (PBKDF2, Argon2, scrypt) | Transforme un secret mémorisable par l'utilisateur en une clé cryptographique forte |
| Chiffrement symétrique (AES-256-GCM) | Chiffrement authentifié rapide pour les charges utiles et les pièces jointes |
| Chiffrement asymétrique (RSA-OAEP ou ECDH) | Permet à d'autres de chiffrer à votre intention sans partager de secret — échange de clés |
| Données authentifiées supplémentaires (AAD) | Lie le texte chiffré à son contexte pour qu'il ne puisse être déplacé ni rejoué |
| Génération de clés cryptographiquement aléatoires | Produit des clés que personne ne peut deviner ou prédire — y compris le serveur |
Comment Schweizerform assemble tout cela
Schweizerform est une plateforme de formulaires, donc la question de conception spécifique est : comment permettre à quelqu'un de créer un formulaire, de partager un lien public, d'accepter des soumissions chiffrées de n'importe qui sur Internet et de permettre à seul le propriétaire du formulaire de les lire — tout en veillant à ce que le serveur ne détienne jamais de copie déchiffrable ?
La réponse implique trois couches de clés : une clé maîtresse dérivée de votre Code d'Accès, une paire de clés RSA au niveau du formulaire et une clé AES unique par soumission. Passons-les en revue.
Couche 1 — Votre clé maîtresse
Lorsque vous vous inscrivez sur Schweizerform, vous créez un Code d'Accès. Ce n'est pas un mot de passe ordinaire. Il n'est jamais envoyé à nos serveurs et ne peut être récupéré en cas de perte — car les garanties de sécurité dépendent précisément de cette propriété. Dans votre navigateur, le Code d'Accès est injecté dans une fonction de dérivation de clé (PBKDF2 avec un nombre élevé d'itérations et un sel par utilisateur) pour produire une clé maîtresse AES-256.
La clé maîtresse n'existe que dans la mémoire du navigateur. Elle ne touche jamais le disque en clair. Elle ne quitte jamais l'appareil. C'est elle qui déverrouille tout le reste.
Couche 2 — Votre paire de clés de formulaire
Lorsque vous créez un formulaire, le navigateur génère une paire de clés RSA-OAEP. La clé publique est envoyée à nos serveurs et incluse lors du rendu du formulaire public — c'est ainsi que les répondants chiffreront des données à votre intention. La clé privée est immédiatement chiffrée avec votre clé maîtresse et stockée sur nos serveurs sous forme de texte chiffré. Nous stockons la clé privée chiffrée, mais nous ne pouvons pas la déchiffrer.
Comme la clé publique est, eh bien, publique, quiconque ouvre le formulaire peut l'utiliser pour chiffrer une soumission. Mais seule une personne possédant votre Code d'Accès peut dériver la clé maîtresse, déverrouiller la clé privée et lire la soumission. Le serveur est cryptographiquement exclu.
Couche 3 — Une clé unique par soumission
RSA est puissant mais lent, et la longueur de son texte chiffré est limitée par la taille de la clé. Nous ne chiffrons donc pas directement les réponses du formulaire avec RSA. À la place, lorsqu'un répondant soumet :
- Le navigateur génère une clé AES-256-GCM fraîche — unique à cette soumission
- Toutes les réponses (et pièces jointes) sont chiffrées avec cette clé AES, côté client
- La clé AES elle-même est ensuite chiffrée avec la clé publique RSA du formulaire
- Les réponses chiffrées et la clé AES chiffrée sont envoyées au serveur
Ce motif — une clé symétrique protégée par une clé asymétrique — est le modèle de chiffrement hybride standard et est utilisé par TLS, PGP et essentiellement tout système sérieux. Il combine la rapidité de l'AES avec les propriétés d'échange de clés de RSA.
Le rôle des données authentifiées supplémentaires (AAD)
AES-GCM n'est pas seulement du chiffrement — c'est du chiffrement authentifié. Il produit une étiquette que le déchiffreur vérifie pour confirmer que le texte chiffré n'a pas été modifié. GCM prend également en charge les Additional Authenticated Data : contexte supplémentaire non chiffré mais lié au texte chiffré. Si ce contexte change, le déchiffrement échoue.
Schweizerform utilise l'AAD pour lier chaque soumission à son formulaire et à son ID de soumission spécifiques. Le format AAD est :
submission_payload:{formId}:{submissionId}Cela ferme une classe d'attaques subtile : même si un attaquant obtenait d'une manière ou d'une autre un blob de soumission chiffré, il ne pourrait pas le rejouer contre un autre formulaire, ni échanger des enregistrements de soumission dans la base de données, sans que le déchiffrement échoue côté propriétaire. Le texte chiffré est soudé à son contexte.
Pourquoi cela compte
Sans AAD, une base de données compromise pourrait être silencieusement réorganisée — la soumission A pourrait être étiquetée comme appartenant au formulaire B — et le propriétaire n'en saurait rien. Avec AAD, la cryptographie refuse de déchiffrer des enregistrements mal assortis.
Le cycle complet, de bout en bout
Création du formulaire (navigateur du propriétaire)
Clé maîtresse dérivée du Code d'Accès. Paire de clés RSA générée. Clé publique envoyée, clé privée enveloppée avec la clé maîtresse et envoyée sous forme de texte chiffré.
Publication du formulaire (serveur)
Le serveur ne stocke que la clé privée chiffrée et la clé publique. Il ne peut rien déchiffrer par lui-même.
Le répondant ouvre le formulaire (navigateur du répondant)
La page publique du formulaire récupère la clé publique RSA du formulaire ainsi que le schéma de questions. Aucun compte requis pour le répondant.
Le répondant soumet (navigateur du répondant)
Le navigateur génère une clé AES-256-GCM propre à la soumission, chiffre les réponses et les pièces jointes avec elle, enveloppe la clé AES avec la clé publique RSA du formulaire et lie l'AAD à formId et submissionId.
Le serveur reçoit la soumission
Stocke uniquement : charge utile chiffrée, clé AES chiffrée, IV et métadonnées de soumission. Aucun moyen de déchiffrer quoi que ce soit. Les pièces jointes sont stockées avec des noms randomisés.
Le propriétaire consulte les soumissions (navigateur du propriétaire)
Saisit le Code d'Accès → dérive la clé maîtresse → récupère la clé privée chiffrée et la déverrouille → récupère la soumission → déchiffre la clé AES avec la clé privée → déchiffre les réponses avec la clé AES et valide l'AAD → affiche dans l'interface.
À chaque étape où le texte clair existe, il existe dans un navigateur. À chaque étape où le serveur touche les données, les données sont du texte chiffré. C'est l'entière définition de la connaissance nulle pour ce cas d'usage.
Contre quoi cela protège — concrètement
| Menace | Issue dans un SaaS en texte clair | Issue avec connaissance nulle |
|---|---|---|
| Brèche serveur (dump BD volé) | Toutes les soumissions exposées en clair | L'attaquant n'a que du texte chiffré ; aucun chemin de déchiffrement |
| Employé malveillant ou compromis | L'initié peut lire n'importe quelle soumission | L'initié n'a pas de clé, ne peut pas déchiffrer |
| Assignation gouvernementale au fournisseur | Le fournisseur doit livrer des données en clair | Le fournisseur ne peut livrer que des blobs chiffrés |
| Exfiltration de sauvegarde | Les sauvegardes sont lisibles | Les sauvegardes sont du texte chiffré |
| API mal configurée / bug IDOR | Lecture arbitraire inter-locataires | La lecture inter-locataires ne renvoie que du texte chiffré |
Être honnête sur ce que la connaissance nulle ne résout pas
La connaissance nulle est une couche puissante — mais ce n'est pas une solution miracle. Un lectorat bien informé mérite un compte rendu honnête de ses limites :
- Elle ne protège pas l'appareil du répondant — si le navigateur est compromis, le texte clair est exposé à la source
- Elle ne protège pas contre une mise à jour malveillante du code côté client — d'où l'importance de l'intégrité du code, du CSP et de l'intégrité des sous-ressources
- Elle ne chiffre pas les métadonnées comme les horodatages, les compteurs de soumissions ou la structure des questions — elles sont nécessaires au fonctionnement de l'application
- Elle ne survit pas à la perte de votre Code d'Accès — la récupération nécessite une clé de récupération partagée détenue par un tiers de confiance, que nous prenons en charge mais que vous devez configurer à l'avance
- Elle ne remplace pas une sécurité de transport forte, une authentification correcte ou des opérations serveur sécurisées — elle les complète
La connaissance nulle n'est pas un substitut à l'ingénierie sécurité — c'est ce que produit l'ingénierie sécurité quand le modèle de menace inclut l'opérateur lui-même.
Comment vérifier vous-même les affirmations de connaissance nulle
Vous n'avez pas à nous croire sur parole. Ouvrez les outils de développement de votre navigateur sur une page de soumission Schweizerform. Observez l'onglet réseau pendant que vous soumettez. Regardez la charge utile qui quitte votre appareil. Vous verrez :
- Un blob chiffré encodé en hexadécimal pour la charge utile des réponses — aucune valeur de champ lisible
- Une clé AES enveloppée — plus courte, également du texte chiffré
- Un IV et une liaison AAD — métadonnées nécessaires au déchiffrement, mais pas les données elles-mêmes
Vous ne verrez nulle part les réponses en clair dans la requête. C'est le test. Un système qui échoue à ce test n'est pas à connaissance nulle, quels que soient ses arguments marketing.
L'essentiel
La connaissance nulle n'est pas un simple point de fonctionnalité — c'est un principe de conception qui force des choix d'ingénierie difficiles. Tout ce qui semble « facile » dans un SaaS classique (accès admin aux données, récupération de mot de passe restaurant les données, recherche plein texte côté serveur sur les contenus utilisateurs) doit être repensé ou reconstruit sur d'autres fondations.
Mais pour les données de formulaires sensibles — antécédents de patients, admissions juridiques, signalements d'alertes professionnelles, divulgations financières — cet effort est le seul vrai but. L'objectif n'est pas qu'on nous confie les données ; l'objectif est de rendre la question de la confiance sans objet. Quand le serveur ne peut physiquement pas lire ce qu'il stocke, toute la catégorie de menaces côté opérateur disparaît.
Schweizerform est à connaissance nulle par défaut sur chaque plan, y compris le plan gratuit. Aucune configuration nécessaire — l'architecture s'applique automatiquement à chaque formulaire et à chaque soumission.
Avertissement : Cet article est une information générale, pas un conseil juridique, réglementaire ou de conformité. Les descriptions techniques reflètent l'architecture Schweizerform au moment de la rédaction ; les détails d'implémentation peuvent évoluer. Les concepts cryptographiques et normes référencés sont décrits à un niveau conceptuel et ne remplacent pas une revue de sécurité formelle. Pour des situations spécifiques, consultez un professionnel qualifié en sécurité ou conformité.