Correspondance des niveaux de base PAdES
PAdES désigne la famille de profils de signature électronique avancée pour PDF normalisée par ETSI EN 319 142. Elle définit quatre niveaux de conformité de base — B-B, B-T, B-LT et B-LTA — chaque niveau supérieur enrichissant le précédent. Cette page met ces niveaux en correspondance avec les structures produites par NextPDF. Elle distingue la surface Core des éditions Pro et Enterprise. La correspondance porte sur le comportement : elle décrit ce que le moteur émet, et non les classes internes.
La version courte est la suivante. NextPDF Core produit des structures de signature alignées sur les niveaux B-B et B-T. Les chemins de production B-LT et B-LTA sont livrés dans les éditions Pro et Enterprise. Le fait qu’une signature produite soit acceptée comme conforme à un niveau donné dépend du vérificateur et des ancres de confiance configurées pour lui. Un producteur ne peut pas attester la conformité à la place du vérificateur.
Installation
Section intitulée « Installation »composer require nextpdf/core:^3Aperçu conceptuel
Section intitulée « Aperçu conceptuel »Dans un PDF, une signature numérique est une structure CMS SignedData stockée dans l’entrée Contents du dictionnaire de signature. Le tableau ByteRange désigne les plages d’octets que l’empreinte couvre — ISO 32000-2 §12.8.1. Le CMS SignerInfo porte les attributs signés, dont les attributs content-type et message-digest — RFC 5652 §5.3. L’empreinte de message de ces attributs est calculée selon le processus du §5.4. PAdES reprend le modèle d’attributs CAdES et l’intègre dans ce dictionnaire de signature PDF.
Les quatre niveaux de base sont additifs :
- B-B contient la signature de base avec ses attributs signés obligatoires.
- B-T ajoute un attribut d’horodatage de signature calculé sur la valeur de la signature. Cet attribut atteste que la signature existait à l’instant horodaté — ETSI PAdES §5.4.3. Le jeton est produit par une autorité d’horodatage RFC 3161 — RFC 3161 §2.4.1.
- B-LT ajoute des données de validation à long terme — certificat, données OCSP et CRL — placées dans le Document Security Store — ETSI PAdES §6.2.2, ISO 32000-2 §12.8.4.3, et selon le placement des données de validation décrit dans ETSI EN 319 142-2 §6.3.
- B-LTA ajoute un horodatage de document d’archive afin que la validité puisse être maintenue pendant de longues périodes — ETSI PAdES §6.2.2.
Les quatre niveaux sont strictement additifs — chaque niveau supérieur conserve tout ce que contenait le niveau inférieur et ajoute exactement une nouvelle couche de données. L’édition capable de produire chaque étape est indiquée sur la transition.
Surface d’API
Section intitulée « Surface d’API »Le sélecteur de niveau est l’énumération SignatureLevel, avec les cas PAdES_B_B, PAdES_B_T, PAdES_B_LT et PAdES_B_LTA. Ses méthodes requiresTimestamp(), requiresDss(), requiresDocumentTimestamp() et isAvailableInEnvironment() indiquent ce que requiert un niveau et si le runtime actuel peut le satisfaire. Dans la distribution Core, isAvailableInEnvironment() renvoie true pour B-B et B-T, et false pour B-LT et B-LTA. Elle renvoie false pour B-LT et B-LTA parce que le producteur de validation à long terme est résolu au runtime et ne fait pas partie du paquet open source. Le code de production consomme le contrat SignerInterface plutôt que ces types internes.
Matrice de prise en charge des niveaux
Section intitulée « Matrice de prise en charge des niveaux »| Niveau | Ce qu’il ajoute | Core (nextpdf/core) | Pro / Enterprise |
|---|---|---|---|
| B-B | Signature de base avec attributs signés obligatoires | Produit une structure alignée ; testée contre des références dorées synthétiques | Même surface |
| B-T | Horodatage de signature sur la valeur de la signature | Produit une structure alignée lorsqu’un service d’horodatage RFC 3161 est fourni | Même surface |
| B-LT | Données de validation dans le Document Security Store | Producteur non livré dans Core ; sélectionner B-LT sans le paquet Enterprise échoue de façon sécurisée | Producteur livré |
| B-LTA | Horodatage de document d’archive | Producteur non livré dans Core ; échoue de façon sécurisée comme ci-dessus | Producteur livré |
« Produit une structure alignée » signifie que le moteur émet une signature dont la structure respecte les clauses citées. Cette structure est testée au moyen des artefacts tests/Corpus/pades/ et tests/Golden/baselines/ du projet. Il ne s’agit pas d’affirmer qu’un validateur externe certifie la sortie à ce niveau. Voir la section sur la conformité.
Exemple de code — Démarrage rapide
Section intitulée « Exemple de code — Démarrage rapide »<?php
declare(strict_types=1);
require_once __DIR__ . '/../../vendor/autoload.php';
use NextPDF\Contracts\SignerInterface;
/** * Sign a byte range with any SignerInterface implementation. * * @param SignerInterface $signer A Core or Premium signer. * @param string $byteRange The PDF byte range to sign. * * @return string Hex-encoded CMS SignedData for the PDF /Contents field. */function signByteRange(SignerInterface $signer, string $byteRange): string{ return $signer->sign($byteRange)->toHex();}La fonction dépend du contrat SignerInterface, et non d’une classe concrète. Un signataire logiciel Core (B-B ou B-T) comme un signataire HSM Premium satisfont ce contrat. Le code appelant ne change pas lors d’un changement d’édition.
Exemple de code — Production
Section intitulée « Exemple de code — Production »<?php
declare(strict_types=1);
require_once __DIR__ . '/../../vendor/autoload.php';
use NextPDF\Security\Signature\SignatureLevel;
/** * Resolve the highest baseline level the current runtime can produce. * * B-B and B-T are produced by the Core distribution. B-LT and B-LTA * require the Enterprise long-term-validation package; without it the * level reports unavailable so callers fail closed rather than emit a * structure that does not carry the validation material the level names. * * @return SignatureLevel The highest level available in this runtime. */function highestAvailableLevel(): SignatureLevel{ foreach ([ SignatureLevel::PAdES_B_LTA, SignatureLevel::PAdES_B_LT, SignatureLevel::PAdES_B_T, SignatureLevel::PAdES_B_B, ] as $level) { if ($level->isAvailableInEnvironment()) { return $level; } }
return SignatureLevel::PAdES_B_B;}isAvailableInEnvironment() renvoie true pour B-B et B-T sans aucun paquet supplémentaire. Elle renvoie true pour B-LT et B-LTA uniquement lorsque le paquet de validation à long terme Enterprise est installé. Sélectionner un niveau indisponible sans accepter explicitement la dégradation lève une exception typée indiquant que le niveau est inatteignable, avec un message qui nomme le paquet manquant. Un déploiement mal configuré échoue donc de façon sécurisée au lieu d’émettre silencieusement un niveau inférieur à celui que l’appelant a demandé.
Cas limites et pièges
Section intitulée « Cas limites et pièges »- Une signature structurellement B-T n’est pas la même chose qu’une signature validée comme B-T. La validation a lieu côté vérificateur, avec ses ancres de confiance et la fraîcheur de ses données de révocation. Le producteur ne peut pas en affirmer le résultat.
- PAdES B-LT et B-LTA nécessitent le paquet NextPDF Enterprise (
nextpdf/enterprise). Lorsqu’il n’est pas installé, le signataire échoue de façon sécurisée et B-LT/B-LTA sont indisponibles. La surface Core fournit B-B/B-T via laNextPDF\Contracts\SignerInterfacepublique, tandis que la validation à long terme reste derrièreLtvManagerInterface. Sélectionner un niveau indisponible dans la distribution Core échoue de façon sécurisée par défaut. L’exception typée nomme le paquet public manquant, et non un type interne. La dégradation gracieuse vers un niveau inférieur relève d’un opt-in, jamais du comportement par défaut. - L’empreinte du byte-range doit exclure la valeur de la signature. Une empreinte qui couvrirait aussi les octets
Contentsne pourra jamais être vérifiée — ISO 32000-2 §12.8.1. - L’horodatage de signature dans B-T porte sur la valeur de la signature, pas sur les octets du document. L’horodatage d’archive dans B-LTA est un horodatage de document distinct. Les deux ne sont pas interchangeables — ETSI PAdES §5.4.3 et §6.2.2.
- ETSI EN 319 142-1 (la partie sur les niveaux de base) ne figure pas dans le corpus de preuves de ce projet. Les affirmations de structure des niveaux sur cette page sont ancrées sur ETSI EN 319 142-2, le document de profil
pades, ISO 32000-2 §12.8, et RFC 5652 / RFC 3161. Les noms de niveau et la structure additive sont énoncés comme implémentés dans v3.x. Aucun résultat de test de conformité ni attestation d’un tiers n’est revendiqué.
Performance
Section intitulée « Performance »Le coût augmente avec le niveau. B-B correspond à une seule opération de signature, de l’ordre de quelques millisecondes pour une clé logicielle. B-T ajoute un aller-retour réseau vers l’autorité d’horodatage. B-LT ajoute la récupération des informations de révocation pour chaque certificat de la chaîne. B-LTA ajoute un horodatage de document supplémentaire. Le budget de 1500 ms en temps réel couvre une seule signature B-T avec une TSA distante sur une connexion déjà établie. B-LT ou B-LTA, face à un point de terminaison de révocation lent, le dépasse et doit rester en dehors du chemin de requête. Le profil de reproductibilité est structural, pas bitwise. Un horodatage intègre l’instant de signature. Deux exécutions diffèrent donc au niveau des octets de l’horodatage, tandis que la structure du document reste identique.
Notes de sécurité
Section intitulée « Notes de sécurité »Le niveau revendiqué par une signature et le niveau auquel elle est validée sont deux faits distincts. Cette page décrit uniquement la surface de production. La validation à long terme dépend de la collecte des données de validation au moment de la signature et du fait que le vérificateur fasse confiance aux mêmes ancres plus tard. Le producteur ne peut garantir ni l’un ni l’autre. La confiance accordée à l’horodatage repose in fine sur l’autorité d’horodatage, que le déploiement épingle via un fournisseur injectable. Cette page porte la mention export_control_class: legal-review-required parce qu’elle concerne des profils de signature cryptographique. Toutes les sources normatives sont paraphrasées et aucune n’est reproduite, conformément à l’hygiène de citation.
Conformité
Section intitulée « Conformité »| Affirmation | Norme | Clause | Preuve |
|---|---|---|---|
La valeur de la signature est stockée, encodée en DER, sous forme de CMS SignedData ou de TimeStampToken dans l’entrée Contents du dictionnaire de signature. | ISO 32000-2 | §12.8.1 | |
L’empreinte est calculée sur les plages ByteRange et exclut la valeur de la signature. | ISO 32000-2 | §12.8.1 | |
| L’attribut d’horodatage de signature est calculé sur la valeur de la signature (B-T). | ETSI PAdES (EN 319 142) | §5.4.3 | |
| Les données de validation à long terme sont portées dans le Document Security Store (B-LT). | ETSI PAdES (EN 319 142) / ISO 32000-2 | §6.2.2 / §12.8.4.3 | , |
| Les données de validation sont placées dans les dictionnaires DSS et VRI. | ETSI EN 319 142-2 | §6.3 | , |
| Un horodatage de document d’archive maintient la validité sur de longues périodes (B-LTA). | ETSI PAdES (EN 319 142) | §6.2.2 | |
| Le SignerInfo porte les attributs signés content-type et message-digest. | RFC 5652 | §5.3 | |
| L’empreinte de message est calculée sur les attributs signés encodés en DER (processus du §5.4). | RFC 5652 | §5.4 | |
| L’horodatage est demandé à une autorité d’horodatage RFC 3161 (TSA) et renvoie une structure TSTInfo. | RFC 3161 | §2.4.1 |
Toutes les clauses sont paraphrasées. NextPDF ne reproduit pas le texte normatif. Consulte les normes publiées pour le libellé faisant autorité. ETSI EN 319 142-1 ne figure pas dans le corpus de preuves. Les affirmations de structure relatives aux niveaux de base sont ancrées sur les sources ci-dessus et énoncées comme implémentées dans v3.x.
Contexte commercial
Section intitulée « Contexte commercial »Core produit des structures de signature B-B et B-T. Les chemins de production B-LT et B-LTA, la garde des clés HSM et PKCS#11, et le profil de politique cryptographique FIPS 140-3 sont livrés dans les éditions Pro et Enterprise. Core résout le producteur de validation à long terme au runtime. Le moteur open source ne porte donc aucune dépendance commerciale, et l’API SignerInterface ne change pas lors de la mise à niveau.
Voir aussi
Section intitulée « Voir aussi »- Sécurité / Signature — la surface d’implémentation de CMS, de l’horodatage, de LTV, de la chaîne de confiance et de la révocation.
- Contrats / Signature — le SPI
SignerInterfaceet les paliers de stabilité. - Sécurité — la surface d’implémentation du chiffrement et de la signature.
- Conformité — l’application de PDF/A et des profils associés à l’archivage signé.
- PAdES · PAdES B-T · DSS · CAdES — termes du glossaire.