Veille informatique
Signature électronique et dématérialisation des documents
Période de veille : Septembre 2025 – Mai 2026
Pourquoi ce sujet ?
En septembre 2025, j'ai développé PDFMe Studio pour FluffRadio — une plateforme remplaçant DocuSign et Adobe Sign pour gérer les contrats bénévoles de l'association. Pour concevoir une solution fiable, j'ai dû comprendre la réglementation européenne, les formats cryptographiques de signature, la gestion des identités et le stockage sécurisé. Cette veille documente les connaissances accumulées avant et pendant le développement.
Voir PDFMe Studio →Le cadre réglementaire : eIDAS et eIDAS 2.0
eIDAS (2014)
Le règlement européen n° 910/2014/UE définit le cadre juridique de la signature électronique dans l'UE. Il établit trois niveaux de signature avec des valeurs probatoires croissantes.
- Signature simple (SES) — donnée numérique sans garantie cryptographique (ex : cocher une case, saisir son nom). Valeur légale limitée.
- Signature avancée (AdES) — liée de façon unique au signataire via une clé privée, capable de détecter toute modification du document après signature.
- Signature qualifiée (QES) — basée sur un certificat délivré par un prestataire agréé par l'État. Équivalent légal de la signature manuscrite dans toute l'UE.
eIDAS 2.0 (avril 2024)
Le règlement 2024/1183 introduit le portefeuille européen d'identité numérique (EUDIW). D'ici novembre 2026, chaque citoyen européen pourra disposer d'une identité numérique reconnue dans tous les États membres. À terme, cela permettrait d'atteindre le niveau QES sans certificat tiers coûteux.
Application à PDFMe Studio
Les documents de FluffRadio (contrats bénévoles, fiches animateurs) ne nécessitent pas de valeur probatoire en justice. Le niveau SES suffit légalement pour une association — ce qui a orienté mes choix techniques : authentification OIDC + stockage sécurisé sur AWS S3 plutôt qu'un certificat qualifié coûteux.
Les formats techniques de signature dans un PDF
Idée reçue à corriger
Une image de signature manuscrite scannée dans un PDF n'est pas une signature électronique — c'est une image. Elle n'apporte aucune garantie d'intégrité ni d'authenticité.
PAdES — PDF Advanced Electronic Signatures (ETSI EN 319 100)
Standard définissant comment intégrer une signature cryptographique dans un PDF. Mécanisme en 3 étapes :
- Condensat (hash SHA-256) — empreinte unique du document. Si un seul octet est modifié après signature, l'empreinte change.
- Chiffrement asymétrique — le signataire chiffre ce condensat avec sa clé privée. N'importe qui peut vérifier avec la clé publique.
- Certificat X.509 — lie l'identité du signataire à sa clé publique, délivré par une Autorité de Certification.
Niveaux PAdES
PAdES définit 4 niveaux de complétude : B (basique), T (+ horodatage RFC 3161), LT (+ chaîne de certificats), LTA (+ archivage longue durée). Pour PDFMe Studio, l'intégrité repose sur l'authentification OIDC et les ETag S3 plutôt que sur PAdES complet.
Authentification du signataire : OAuth2, OIDC et PKCE
Enjeu central
Prouver qui a signé, quand, et que le document n'a pas été modifié. OAuth 2.0 est le protocole d'autorisation standard du web. OIDC (OpenID Connect) est la couche d'identité construite dessus. Le flux PKCE (RFC 7636) est la variante sécurisée pour les applications publiques (sans secret côté client).
Fonctionnement du flux PKCE
Implémenté dans PDFMe Studio avec AWS Cognito :
- L'application génère un code_verifier aléatoire et calcule son hash SHA-256 : le code_challenge.
- Elle redirige l'utilisateur vers Cognito avec le code_challenge.
- Cognito authentifie l'utilisateur et retourne un authorization_code.
- L'application échange ce code + le code_verifier contre des tokens (access_token, id_token).
- Le serveur vérifie hash(code_verifier) == code_challenge — un attaquant interceptant le code ne peut pas l'utiliser.
JWT — JSON Web Token
Format header.payload.signature encodé en Base64. Contient les claims (sub, email, exp…), signé par le serveur d'autorisation. Stateless : pas de base de données pour vérifier une session. Vulnérabilité classique à désactiver : l'algorithme alg: none. Dans PDFMe Studio, chaque accès à un document exige un access_token JWT valide (TTL : 1 heure), vérifié côté serveur avant tout accès à S3.
Stockage sécurisé des documents signés
AWS S3 et contrôle d'accès
Les documents de PDFMe Studio sont dans des buckets S3 privés — aucun accès public. L'accès se fait via pre-signed URLs : URLs temporaires (TTL 15 min) générées par le serveur après vérification du token JWT. Le fichier ne transite jamais par le serveur applicatif. Chiffrement au repos : SSE-S3 (AES-256 géré par AWS).
Intégrité et traçabilité
AWS S3 fournit des ETag (empreinte MD5 du fichier) qui détectent toute modification. Les logs d'accès (AWS CloudTrail) tracent qui a accédé à quoi et quand. Ces mécanismes constituent une piste d'audit suffisante pour le niveau de signature visé.
Panorama des solutions existantes
Solutions du marché analysées
Évaluation réalisée avant de décider de développer PDFMe Studio :
- DocuSign — leader mondial, API REST complète, ~40 €/mois/utilisateur. Trop coûteux pour une association.
- Yousign — acteur français conforme eIDAS, ~25 €/mois. Budget toujours incompatible.
- Docuseal — open-source self-hosted, gratuit. Trop lourd à déployer et maintenir pour FluffRadio.
- pdfme (librairie JS) — génération de PDF avec templates dynamiques et champs de signature visuels, gratuite. Choisie pour PDFMe Studio.
Pourquoi pdfme ?
pdfme n'est pas un outil de signature au sens eIDAS — c'est une librairie de génération de PDF côté client. La valeur probatoire repose sur l'authentification OIDC et S3, pas sur PAdES. Ce choix est justifié par le besoin : valeur légale SES, coût nul, maîtrise complète des données de l'association.
Tendances 2025-2026
- EUDIW — d'ici fin 2026, les États membres déploient un wallet d'identité numérique. La QES pourrait devenir accessible sans certificat coûteux.
- Signature mobile et biométrie — solutions comme Yousign et Universign proposent la signature via reconnaissance faciale ou empreinte sur smartphone.
- IA et détection de fraude — DocuSign et Adobe intègrent des modèles pour détecter les documents falsifiés (altérations d'images, incohérences de mise en page).
- Self-hosting & RGPD — les emails, IPs et dates de signature sont des données personnelles soumises au RGPD. La tendance au self-hosting (Docuseal, LibreSign) répond à ce besoin pour les structures hébergées en dehors de l'UE.
- PDF/A-3 — permet d'embarquer des fichiers XML dans un PDF (ex : factures Factur-X), vers des documents à la fois lisibles et exploitables automatiquement.
Ce que cette veille a changé dans mes choix techniques
| Question technique | Apport de la veille | Décision prise |
|---|---|---|
| Quel niveau de signature pour FluffRadio ? | Le niveau SES suffit légalement pour des contrats associatifs | Pas de PAdES qualifié, authentification OIDC suffit |
| Comment stocker les PDFs ? | Pre-signed URLs évitent le transit par le serveur (perf + sécu) | AWS S3 pre-signed URLs avec TTL 15 min |
| Quel fournisseur d'identité ? | Cognito gère nativement PKCE + JWT + refresh tokens | AWS Cognito User Pool |
| Risque JWT alg: none ? | Vecteur d'attaque documenté (CVE connues) | Vérification de l'algorithme imposée côté serveur |
| Utiliser une solution existante ? | Docuseal trop lourd, Yousign trop cher pour une asso | Solution maison avec pdfme + AWS |
Sources utilisées
- —Journal officiel de l'UE — Règlement (UE) 2024/1183 (eIDAS 2.0), 30 avril 2024
- —ANSSI — La signature électronique : définitions et usages, 2023
- —ETSI — EN 319 100 : PAdES standard for PDF Advanced Electronic Signatures
- —RFC 7636 — Proof Key for Code Exchange by OAuth Public Clients (PKCE)
- —RFC 7519 — JSON Web Token (JWT)
- —AWS Documentation — Amazon S3 Pre-Signed URLs, Amazon Cognito Developer Guide
- —pdfme.com — Documentation officielle de la librairie
- —CNIL — RGPD et signature électronique, fiche pratique