Horodatages et temps de confiance
Spec: RFC 3161 RFC 3161 Spec: RFC 5816 RFC 5816 Spec: ISO 32000-2, §12.8.5 ISO 32000-2 §12.8.5 Evidence: Standard-backed
Un horodatage n’enregistre pas « le moment où ceci a été signé ». Il prouve quelque chose de plus restreint, mais aussi de plus solide. Il prouve qu’une donnée précise existait avant un instant précis, ce fait étant attesté par une partie qui n’est pas le signataire. Toute la valeur du temps de confiance tient à cette distinction, souvent mal comprise.
Pourquoi c’est important
Section intitulée « Pourquoi c’est important »L’heure de signature inscrite dans une signature n’est que ce que l’ordinateur du signataire a bien voulu déclarer. Une horloge peut être fausse par accident ou à dessein. Si la seule preuve du quand est l’affirmation du signataire lui-même, celui-ci peut antidater ou postdater un document à volonté. On peut donner l’apparence qu’un certificat révoqué hier a signé l’an dernier. Le « quand » n’est pas un détail. Il détermine si une signature réalisée avec un certificat désormais expiré ou désormais révoqué compte encore. Et si le temps de confiance est faux, tout argument de validité à long terme qui s’appuie sur lui s’effondre.
En résumé
Section intitulée « En résumé »- L’heure de signature propre à un signataire est une affirmation, pas une preuve. Elle se falsifie très facilement.
- Un horodatage RFC 3161 est un jeton signé émis par une autorité d’horodatage (TSA) qui lie une empreinte de tes données à l’heure de la TSA.
- Ce qu’il prouve est précis : les données existaient avant l’heure déclarée par la TSA. Il ne prouve pas le moment exact de création : seulement une borne supérieure.
- Le jeton renvoie ton nonce et ton empreinte de message, si bien qu’il ne peut pas être rejoué ni porter sur d’autres données.
- Un horodatage de document applique le même mécanisme au PDF entier, en ancrant tout ce qui se trouve en dessous — la signature et ses preuves de validation intégrées — à un instant de confiance.
L’approche de NextPDF
Section intitulée « L’approche de NextPDF »NextPDF traite un horodatage comme un élément à vérifier, pas comme un simple jeton à obtenir. Demander un jeton n’est que la moitié la plus facile du travail. Pour le moteur, un jeton non vérifié n’est pas une preuve.
Lorsque le moteur horodate une signature, il envoie à la TSA une empreinte des données et un nonce aléatoire fraîchement généré, jamais les données elles-mêmes. Le jeton renvoyé est ensuite contrôlé au regard de l’ensemble des propriétés qui le rendent significatif : le statut de l’autorité vaut « granted », le nonce du jeton correspond à celui envoyé, l’empreinte de message du jeton correspond à l’empreinte envoyée, la signature cryptographique propre au jeton se vérifie, le type de contenu du jeton est bien celui d’un horodatage, et l’heure déclarée reste dans une tolérance acceptable. Tout écart entraîne un échec strict, avec une raison typée. Il n’existe aucune voie du type « ça a l’air assez proche ». Un horodatage de document suit la même règle, appliquée au fichier entier plutôt qu’à la valeur d’une seule signature.
- Hash the data Only a digest of the signature value (or the whole PDF, for a document timestamp) is computed — never the data itself.
- Send hash + nonce The digest and a fresh random nonce go to the Time-Stamp Authority.
- TSA returns a token A signed token binds the digest to the TSA’s genTime and echoes the nonce.
- Verify the token Status granted, nonce matches, message imprint matches, token signature verifies, time within tolerance.
- Conclude an upper bound The data provably existed before the TSA’s stated time — attested by a party that is not the signer.
Ce que disent les preuves
Section intitulée « Ce que disent les preuves » Evidence: Standard-backed La définition est précise.
Spec: ISO/IEC 18014-2, §3 ISO/IEC 18014-2 §3 définit un service d’horodatage
comme un service qui fournit la preuve qu’une donnée existait avant un certain point
dans le temps — une borne supérieure, pas un instant de création.
Spec: ISO/IEC 18014-2, §7 ISO/IEC 18014-2 §7 définit le contenu
TSTInfo du jeton : une empreinte de message (l’empreinte de tes données), une heure de
génération, un numéro de série et, le cas échéant, un nonce.
Spec: ISO/IEC 18014-2, §6 ISO/IEC 18014-2 §6 énonce la conclusion qu’un
vérificateur peut tirer après une vérification réussie : la donnée existait avant l’heure inscrite dans
le jeton — ni plus ni moins.
Pour le PDF, Spec: ISO 32000-2, §12.8.5 ISO 32000-2 §12.8.5 spécifie l’horodatage de document : la plage d’octets couvre le fichier entier à l’exclusion de la valeur
Contents, cette empreinte est envoyée à une autorité d’horodatage, et le jeton
RFC 3161 renvoyé — tel que mis à jour par Spec: RFC 5816 RFC 5816 — est placé dans
Contents. C’est la même discipline de plage d’octets que pour une signature, appliquée au temps
plutôt qu’à l’identité. Et Spec: RFC 6960, §4.4.4 RFC 6960 §4.4.4 explique pourquoi
cela compte pour la longévité : le temps de confiance permet à un validateur de prouver qu’une
signature était fiable au moment où elle a été produite, même après l’expiration du
certificat.
Le moteur de NextPDF envoie une empreinte et un nonce, jamais les données, puis vérifie le jeton renvoyé au regard du statut, du nonce, de l’empreinte de message, de la signature du jeton, du type de contenu et de la tolérance de temps avant de le considérer comme une preuve.
Exemple pratique
Section intitulée « Exemple pratique »Tu n’assembles pas un jeton d’horodatage à la main. Ce qui compte, c’est le raccord de confiance. Une TSA se configure et se protège, parce que son heure devient ta preuve.
<?php
declare(strict_types=1);
use NextPDF\Security\Signature\SignatureLevel;
// Asking for any level at or above B-T requires a TSA.$level = SignatureLevel::PAdES_B_T;$level->requiresTimestamp(); // true → a Time-Stamp Authority must be supplied
// The TSA endpoint, its transport security, and its trust anchor are// deployment-supplied. The engine sends a hash plus a fresh nonce — never the// document — and verifies the returned token before the signature is accepted.// A token that fails any check (status, nonce, imprint, signature, time)// is a hard error, not a warning.Le point à retenir, c’est que le moteur envoie une empreinte, pas le document, si bien que la TSA ne voit jamais ton contenu. Puis il vérifie la réponse. Une TSA que tu ne peux pas authentifier n’est pas du temps de confiance. Ce n’est qu’une horloge de plus.
Idée fausse courante
Section intitulée « Idée fausse courante »Le piège consiste à interpréter un horodatage comme « ceci a été signé à exactement 14:32 à cette date ». Ce n’est pas un chronomètre posé sur l’événement de signature. Il prouve que les données existaient au plus tard à l’heure de la TSA, c’est-à-dire une borne supérieure fixée par un tiers. La création a pu avoir lieu à n’importe quel moment avant cela. Un second piège consiste à supposer que n’importe quel serveur d’horodatage te fournit du temps de confiance. Un jeton dont tu ne peux pas vérifier la signature, ou émis par une autorité que tu n’approuves pas, ne prouve rien. C’est une horloge que tu n’as aucune raison de croire. Le temps de confiance provient d’une TSA que tu peux authentifier et d’un jeton que tu as vérifié, pas du simple fait de demander un nombre à un serveur.
Limites et frontières
Section intitulée « Limites et frontières »NextPDF construit la requête, n’envoie qu’une empreinte et vérifie le jeton renvoyé. Il ne se porte pas garant de l’autorité qui se trouve derrière. L’exactitude de la TSA, la validité de son propre certificat et sa fiabilité sont des propriétés du service et de la configuration de ton déploiement, pas du moteur. Un horodatage lie une empreinte à une heure. Il ne dit rien de la signification des données, de l’identité du signataire, ni de la validité du certificat du signataire. Ce sont des contrôles distincts, traités dans Valider correctement une signature. Le moteur ne peut pas rendre fiable une TSA qui ne l’est pas. Cette page n’affirme pas non plus de portée juridique particulière pour un horodatage ; cela dépend du statut de la TSA et de la juridiction. La manière dont le temps de confiance est réutilisé pour qu’une signature reste vérifiable pendant des décennies est traitée dans Validation à long terme.
Disponibilité de l’horodatage selon le palier :
| Edition | Availability |
|---|---|
| Core | Not in this edition |
| Pro | PAdES B-T — un horodatage RFC 3161 vérifié sur la valeur de la signature, auprès d’une TSA fournie par le déploiement. |
| Enterprise | Ajoute l’horodatage de document utilisé par B-LT et B-LTA pour ancrer les preuves de validation intégrées et piloter la boucle de renouvellement d’archivage. |
Documents associés
Section intitulée « Documents associés »- Validation à long terme — comment l’horodatage de document scelle les preuves intégrées et est renouvelé au fil du temps.
- Profils de référence PAdES — où se situent l’horodatage de signature (B-T) et l’horodatage de document (B-LTA) dans la progression des niveaux.
- Les signatures qualifiées, expliquées — où un horodatage qualifié s’inscrit dans le cadre de confiance eIDAS.
Glossaire
Section intitulée « Glossaire »- Horodatage (RFC 3161) — un jeton signé émis par une TSA qui lie une empreinte de données à l’heure de la TSA, prouvant que les données existaient avant cette heure.
- Autorité d’horodatage (TSA) — le service de confiance qui émet les jetons d’horodatage.
TSTInfo— la structure de contenu du jeton : empreinte de message, heure de génération, numéro de série et nonce facultatif.- Empreinte de message — l’empreinte des données horodatées, renvoyée dans le jeton.
- Nonce — une valeur aléatoire fraîchement générée, envoyée avec la requête et renvoyée dans le jeton, de sorte que la réponse ne puisse pas être rejouée.
- Horodatage de document — un horodatage RFC 3161 sur le PDF entier (tel que mis à jour par RFC 5816), qui ancre la signature et ses preuves à un instant de confiance.