Traitement local
La plateforme Certifaction est axée sur la confidentialité. Le traitement local est ce qui rend cette garantie possible : le contenu des documents ne quitte jamais votre infrastructure en clair. Le Client local — un composant logiciel Certifaction qui s'exécute dans votre environnement — prend en charge chaque étape qui touche au contenu des documents :
- lecture du document,
- ajout des champs de signature PDF,
- calcul de l'empreinte du document,
- génération des clés de chiffrement requises,
- intégration de la signature reçue dans le PDF.
L'API Certifaction ne reçoit que du matériel cryptographique : empreintes, métadonnées et — le cas échéant — blobs chiffrés. Elle ne reçoit jamais le contenu du document en clair.
Les clés de signature PAdES sont détenues par nos prestataires de services de confiance qualifiés (QTSP) pour tous les niveaux de signature (SES, AES et QES) ; le Client local ne les voit jamais. Réciproquement, les clés de chiffrement des documents ne quittent jamais le Client local.
Comment une signature est créée
Le document lui-même reste avec le Client local à chaque étape. Seule l'empreinte atteint l'API Certifaction, et seule l'empreinte atteint le QTSP.
Quand le document chiffré est téléversé
Deux situations exigent qu'une copie chiffrée du document soit téléversée vers Certifaction :
- Jumeau numérique activé — une copie chiffrée est stockée pour pouvoir être récupérée ou vérifiée ultérieurement.
- Demande de signature avec d'autres signataires — le document chiffré doit être accessible aux personnes que vous invitez à signer.
Dans les deux cas, le Client local génère une clé de chiffrement symétrique 256 bits unique pour chaque document ou demande de signature, chiffre le document avec NaCl Secretbox (XSalsa20 + Poly1305) et téléverse uniquement le texte chiffré vers l'Archive numérique chiffrée de Certifaction. L'archive contient le texte chiffré ; elle ne reçoit jamais la clé.
La clé de chiffrement est retournée comme fragment d'URL ajouté à l'URL du document, par exemple :
https://example.com/DE6I239aEqI#zi9B6ioQcoLTCelSwsxrn0fIMPA9u6LthZCtRT7kP9c=Selon le RFC 3986 §3.5, les fragments d'URL ne sont jamais transmis dans les requêtes HTTP, ce qui garde la clé côté client même lorsque l'URL est utilisée pour récupérer le document. Quiconque détient l'URL complète — fragment compris — détient la clé et peut donc déchiffrer le document.
Partager les URL de demande de signature
L'URL de demande de signature doit atteindre les invités par un canal sécurisé. Vous avez deux options :
- Vous distribuez l'URL vous-même. Le Client local retourne l'URL complète à votre application ; vous la partagez avec les invités via un canal que vous contrôlez déjà (par exemple un portail client existant ou un canal de messagerie authentifié). Certifaction n'est pas impliqué dans la distribution.
- Certifaction distribue l'URL pour vous. Le Client local peut, en option, générer une Key Encryption Key (KEK) et l'utiliser pour chiffrer le fragment d'URL. Certifaction envoie ensuite aux invités un e-mail contenant l'URL avec le fragment chiffré — l'e-mail seul ne suffit donc pas à déchiffrer le document. Vous prenez la responsabilité de transmettre la KEK aux invités via un canal sécurisé de votre choix.
Si vous signez un document pour vous-même sans Jumeau numérique ni demande de signature, aucun contenu de document n'est téléversé.
Exécuter le Client local
Certifaction propose plusieurs implémentations de Client local. Deux d'entre elles concernent les développeurs intégrant Certifaction :Mode serveur (API HTTP locale)
Démarrez le Client local comme un petit serveur HTTP qui expose une API locale. Les applications tierces appellent l'API locale par HTTP pour signer des documents, avec la garantie que le contenu des documents reste dans votre environnement. C'est un bon choix pour une signature centralisée dans un flux de traitement documentaire automatisé.
Mode interactif / shell
Le CLI peut être utilisé directement par des applications autonomes pour signer et certifier des documents depuis le système de fichiers ou l'entrée/sortie standard — aucune intégration de bibliothèque requise.