Aller au contenu
getnextpdf.com

Profils de référence PAdES

Spec: ETSI EN 319 142-1Spec: ISO 32000-2, §12.8Spec: RFC 3161

PAdES définit quatre niveaux de référence — B-B, B-T, B-LT, B-LTA — qui s’appuient les uns sur les autres. Chacun ajoute un type de preuve bien précis. Cette page explique la progression et t’aide à choisir le niveau le plus bas qui satisfait encore l’obligation, plutôt que le niveau le plus élevé dont le nom te dit quelque chose.

On se rue sur « B-LTA » parce que ça a tout l’air du plus complet, ou sur « B-B » parce que c’est ce qui demande le moins de travail. Les deux sont des suppositions. Le niveau dont tu as besoin découle d’une question, pas d’une préférence : combien de temps cette signature doit-elle rester vérifiable, et par qui ? Choisis trop bas et une signature valide le jour de la signature devient invérifiable dès qu’un certificat expire. Choisis trop haut et tu prends en charge une autorité d’horodatage et une infrastructure de matériel de validation dont tu n’avais pas besoin, plus une obligation d’archivage que tu dois continuer d’alimenter. L’équipe qui ne peut pas changer de niveau plus tard paie le coût du mauvais choix.

  • Les quatre niveaux sont cumulatifs. Chacun est le précédent plus un ajout.
  • B-B — la signature avec ses attributs signés obligatoires. Prouve le qui et le quoi.
  • B-TB-B plus un horodatage de confiance sur la signature. Prouve le quand, indépendamment de l’horloge du signataire.
  • B-LTB-T plus du matériel de validation intégré (certificats et données de révocation). Le document porte sa propre preuve que le certificat était valable au moment de la signature.
  • B-LTAB-LT plus un horodatage de document, répété au fil du temps. Maintient l’ensemble vérifiable au fil des décennies et des changements d’algorithme.
  • Choisis le niveau d’après la durée de vie de l’obligation, pas d’après ce qui paraît le plus sûr.

NextPDF modélise le niveau comme un choix explicite et ordonné, et refuse de faire semblant. Tu demandes un niveau. Le moteur produit exactement ce niveau ou échoue avec une erreur exploitable. Il ne signe pas discrètement à un niveau inférieur en laissant un enregistrement de conformité en revendiquer un plus élevé. Ce choix de conception existe précisément pour empêcher la rétrogradation silencieuse d’une demande B-LTA vers B-T lorsque l’infrastructure fait défaut. Les exigences de chaque niveau sont encodées sous forme de prédicats : un horodatage est-il requis, du matériel de validation intégré est-il requis, un horodatage de document est-il requis. Le moteur parcourt ces prédicats et soit les satisfait, soit s’arrête.

La progression ci-dessous est la même que celle que le moteur applique et que la norme définit.

NiveauAjout par rapport au niveau précédentLa question à laquelle il répondCe qu’il exige de ton déploiement
B-BAttributs signés : content-type, message-digest, signing-time, signing-certificate-v2Qui a signé, et quels octets exactement ?Une clé de signature et un certificat
B-TUn horodatage de confiance sur la valeur de signatureQuand a-t-elle été signée, de façon prouvable ?Une autorité d’horodatage (TSA)
B-LTCertificats + données de révocation intégrés (un DSS)Le certificat était-il valide à la signature — prouvable plus tard ?TSA + accès aux données de révocation au moment de signer
B-LTAUn horodatage de document, renouvelable au fil du tempsSera-ce encore vérifiable dans des décennies ?TSA + un processus d’archivage qui ré-horodate

Le saut le plus important, c’est celui de B-T à B-LT. B-T prouve le quand. B-LT rend le document autoportant pour la confiance : il cesse de dépendre d’une autorité de certification encore joignable et capable de répondre à des questions dans plusieurs années.

Les niveaux sont aussi contrôlés, pas seulement produits. Côté vérification, l’horodatage B-T est lié de façon stricte : NextPDF exige que l’empreinte de message du jeton soit égale au condensé de la valeur de signature du signataire et échoue de façon fermée dans le cas contraire ; ainsi, un horodatage ne peut élever une signature au niveau B-T que lorsqu’il couvre de façon prouvable cette signature, et non des octets différents.

  1. Step 1 of 4: ISO 32000-2 §12.8 — signatures, LTV, document timestamp
  2. Step 2 of 4: ETSI EN 319 142-1 PAdES baseline levels B-B…B-LTA
  3. Step 3 of 4: RFC 3161 Timestamp token (introduced at B-T)
  4. Step 4 of 4: RFC 6960 OCSP revocation evidence (embedded at B-LT)
Les normes derrière la progression PAdES : ISO 32000-2 définit la façon dont les signatures et le matériel de validation s’intègrent dans le PDF ; ETSI EN 319 142-1 définit les niveaux de référence ; RFC 3161 définit l’horodatage qu’introduit B-T ; RFC 6960 définit la preuve de révocation qu’intègre B-LT.

L’API reflète la progression : tu nommes le niveau, et le moteur le traite comme un contrat.

<?php
declare(strict_types=1);
use NextPDF\Security\Signature\SignatureLevel;
// The level is an explicit, ordered choice — not a flag you hope is honoured.
$level = SignatureLevel::PAdES_B_T;
// The level itself tells you what it requires, before you sign:
$level->requiresTimestamp(); // B-T and above → true
$level->requiresDss(); // B-LT and above → true
$level->requiresDocumentTimestamp(); // B-LTA only → true
// Ask for B-LTA only if the deployment can actually fulfil it.
// The engine produces exactly the requested level or fails with an
// actionable error — it never silently signs lower and reports higher.

Si tu demandes B-LTA et que le déploiement ne peut pas fournir ce dont B-LTA a besoin, le comportement par défaut est d’échouer et de t’indiquer le niveau le plus élevé qu’il aurait pu atteindre — et non de te rendre discrètement un fichier B-T étiqueté B-LTA.

Le piège, c’est « B-LTA est simplement le meilleur, prends-le toujours ». B-LTA n’est pas meilleur dans l’abstrait ; il en fait plus, et le plus s’accompagne d’obligations. Il exige une autorité d’horodatage, du matériel de révocation collecté au moment de la signature, et un processus d’archivage continu qui ré-horodate le document avant que ses algorithmes de protection ou les certificats d’horodatage ne faiblissent. Un fichier B-LTA que personne ne ré-horodate n’est pas à l’épreuve du temps — c’est un fichier B-LT avec du cérémonial en plus. À l’inverse, B-B pour un contrat qui doit tenir une décennie n’est pas « léger » ; c’est une signature qui échouera à la validation le jour où le certificat expire. Le bon niveau est celui qu’exige l’obligation, ni plus haut ni plus bas.

NextPDF produit le niveau PAdES demandé ; il ne fournit pas les parties dont ce niveau dépend. Une autorité d’horodatage, la chaîne de certificats, les ancres de confiance et la connectivité pour récupérer les données de révocation au moment de la signature relèvent du déploiement. Le moteur implémente la structure et fait respecter le contrat de niveau ; il ne peut pas rendre une TSA digne de confiance ni un certificat valide. La structure produite porte les éléments qu’exige ce niveau, vérifiés au regard des propres tests du moteur et des clauses citées. Ce n’est pas une certification de conformité tierce, et cette page n’affirme aucun effet juridique eIDAS, lequel dépend du certificat, du signataire et de la juridiction. Savoir si l’heure de signature est indépendamment digne de confiance est traité dans Horodatages et temps de confiance ; la façon dont la preuve à long terme maintient une signature en vie est traitée dans Validation à long terme.

Quelques limites pour bien cadrer les attentes :

  • B-LT et B-LTA émettent la structure de validation à long terme, pas un verdict de conformité. Ce que le moteur écrit, c’est un dictionnaire Document Security Store plus une révision d’horodatage de document — un dictionnaire de signature avec Type = DocTimeStamp selon Spec: ISO 32000-2, §12.8. Cette structure n’est pas présentée ici comme testée pour la conformité au profil ; les contrôles de profil ETSI EN 319 142-1 sont conditionnés à la publication sur la chaîne d’intégration continue Pro et Enterprise, de sorte que cette page ne revendique pas la conformité ETSI EN 319 142-1 pour le fichier produit.
  • Les documents chiffrés échouent de façon fermée pour B-LT et B-LTA. Une demande de niveau à long terme sur un document chiffré s’arrête avec une erreur exploitable au lieu d’écrire une révision à long terme partielle.

Disponibilité par édition de chaque niveau — les quatre atteints par la même couture de haut niveau, setSignature($cert, SignatureLevel::PAdES_B_LTA, $tsaClient)->save() :

Niveau de base PAdES — edition availability
EditionAvailability
Core

PAdES B-B et B-T — la base à attributs signés, plus un horodatage de confiance sur la valeur de signature piloté par un TsaClient. Les deux niveaux sont livrés dans la couture Core.

Pro

Ajoute des flux de signature au-dessus de la base Core — signature à distance, cloud-KMS et signature séquentielle — pas un nouveau niveau.

Enterprise

Ajoute PAdES B-LT et B-LTA — le matériel de validation intégré (DSS) et la boucle d’archivage renouvelable à horodatage de document. Ils passent par la même couture de haut niveau, mais uniquement lorsque les deux paquets Pro et Enterprise sont installés ; si l’un manque, l’appel échoue de façon fermée au lieu d’écrire une révision à long terme partielle.

  • PAdES — PDF Advanced Electronic Signatures ; la série ETSI EN 319 142 qui profile les signatures CMS pour le PDF.
  • Niveau de référence — l’un de B-B, B-T, B-LT, B-LTA ; un ensemble défini et cumulatif d’éléments de signature requis.
  • B-B — la signature de référence avec ses attributs signés obligatoires.
  • B-TB-B plus un horodatage de confiance sur la valeur de signature.
  • B-LTB-T plus du matériel de validation à long terme intégré (un DSS).
  • B-LTAB-LT plus un horodatage de document renouvelable pour la validité d’archivage.
  • DSS — Document Security Store ; la structure PDF qui contient les certificats et données de révocation intégrés.
  • TSA — Time-Stamp Authority ; un service de confiance qui émet des jetons d’horodatage RFC 3161.