Temps de confiance : comment un horodatage prouve le quand
Spec: RFC 3161RFC 3161Spec: RFC 5816RFC 5816Spec: ISO 32000-2, §12.8.5ISO 32000-2 §12.8.5
Un horodatage répond à une seule question, étonnamment glissante : ces données existaient-elles déjà ? Pas qui les a produites, pas si elles sont correctes — uniquement qu’à un instant nommé, ces octets précis étaient déjà au monde. Cette page construit l’idée depuis la base : ce que fait une autorité d’horodatage, ce qu’un jeton contient réellement, et pourquoi un nombre sur une horloge devient une preuve.
C’est le pendant « premiers principes » de la page Horodatages et temps de confiance, centrée sur le moteur. Lis celle-ci d’abord si « temps de confiance » te semble du jargon.
Pourquoi c’est important
Section intitulée « Pourquoi c’est important »L’horloge de ton ordinateur est un aveu, pas une preuve. Tu peux lui donner la valeur que tu veux, et n’importe qui d’autre aussi. Dès qu’une date compte pour une seconde partie — un contrat qui devait être signé avant une échéance, un enregistrement qui devait exister avant un litige —, ta propre horloge ne vaut rien comme preuve, parce que tu la contrôles. Tout le problème du temps de confiance consiste à trouver une horloge que tu ne peux pas déplacer.
Ce n’est pas une préoccupation marginale. Chaque PDF signé à longue durée de vie s’appuie dessus. Un certificat de signature finit par expirer ; des années plus tard, un vérificateur a besoin de savoir que la signature a été faite pendant que le certificat était encore valide. Sans enregistrement indépendant du « quand », cette question n’a pas de réponse honnête. Le temps de confiance est la fondation discrète sur laquelle repose tout l’édifice des signatures durables.
En résumé
Section intitulée « En résumé »- Un horodatage prouve qu’une donnée existait avant un instant déclaré. C’est une borne supérieure sur l’âge, rien de plus.
- Il est produit par un tiers, l’autorité d’horodatage (TSA), dont tu fais confiance à l’horloge précisément parce qu’elle n’est pas la tienne.
- La TSA ne voit jamais tes données. Elle signe une empreinte de celles-ci, liée à une valeur temporelle, et renvoie un petit jeton signé.
- Le jeton prouve trois choses à la fois : les données sont bien les données (l’empreinte correspond), l’heure est l’heure de la TSA (sa signature), et la réponse correspond à la requête que tu as envoyée (le nonce qu’elle renvoie, garde contre la relecture d’une réponse plus ancienne).
- Il ne prouve pas qui a écrit les données, que les données sont vraies, ni l’instant exact de création. Seulement : pas plus tard que ceci.
- La confiance va à la TSA. Une TSA de confiance publique suffit pour la plupart des enregistrements ; une TSA qualifiée eIDAS porte une présomption juridique dans l’UE.
L’approche de NextPDF
Section intitulée « L’approche de NextPDF »Commence par l’astuce au cœur de tout cela. Tu veux qu’un inconnu se porte garant du moment où tes données existaient, mais tu ne peux pas lui montrer les données — elles peuvent être confidentielles, et de toute façon elles pourraient être énormes. Donc tu ne le fais pas. Tu calcules une empreinte : une signature numérique courte et de longueur fixe qui change totalement si ne serait-ce qu’un octet de l’original change, et à partir de laquelle l’original ne peut pas être reconstitué. Tu envoies l’empreinte, pas le fichier.
La TSA prend cette empreinte, y attache sa propre heure courante, signe le couple avec sa clé privée et renvoie un jeton d’horodatage (Spec: RFC 3161, §2.1RFC 3161 §2.1). Le jeton est la liaison rendue permanente : cette empreinte, à cette heure, attestée par moi. Comme le jeton est signé, personne — pas même la TSA ensuite — ne peut altérer l’heure sans rompre la signature. Comme il porte ton empreinte, il est inutile pour tout autre fichier. Et comme la requête inclut un nonce aléatoire fraîchement généré que la TSA renvoie inchangé, tu peux établir que la réponse correspond à cette requête précise et n’est pas la relecture d’une réponse plus ancienne — le nonce atteste la fraîcheur, pas qui a demandé (Spec: RFC 3161, §2.4.2RFC 3161 §2.4.2).
Pense à un sceau de cire pressé sur une lettre pliée. Le sceau ne lit pas la lettre ; il prouve seulement que la lettre était entière et présente lorsque le sceau a été apposé. Un horodatage est un sceau apposé par une horloge que tu ne possèdes pas, sur une empreinte de tes données.
- Fingerprint the dataCompute a one-way hash of the file or the signature value. The data itself never leaves your hands.
- Ask the authoritySend the hash and a fresh random nonce to the Time-Stamp Authority.
- The TSA seals a timeIt signs the hash bound to its own clock and echoes your nonce, producing a small signed token.
- Store the tokenFor a PDF, the token is placed inside the file so the proof travels with the document.
- Verify laterAnyone who trusts the TSA can check the token: its signature against the TSA certificate, the matching hash, the echoed nonce, and the time — then concludes an upper bound on age.
Dans un PDF, ce même mécanisme porte deux casquettes. Un horodatage de signature scelle le moment où une signature a été appliquée, en horodatant la valeur de la signature. Un horodatage de document scelle le moment où le fichier entier existait, en calculant l’empreinte du PDF complet (à l’exclusion de l’emplacement réservé que le jeton occupera) et en stockant le jeton renvoyé dans cet emplacement (Spec: ISO 32000-2, §12.8.5ISO 32000-2 §12.8.5). Le second type est celui qu’une signature d’archivage à longue durée de vie renouvelle au fil des ans pour garder sa confiance fraîche.
Un détail moderne à connaître : un format d’horodatage plus ancien se figeait sur un seul algorithme de hachage pour nommer le certificat propre de la TSA. Le profil mis à jour permet à un jeton de nommer son certificat avec une empreinte actuelle (Spec: RFC 5816, §2.1RFC 5816 §2.1), si bien que le temps de confiance n’hérite pas en silence de la cryptographie d’hier.
Exemple pratique
Section intitulée « Exemple pratique »Tu n’assembles pas un jeton à la main, et tu ne devrais pas en avoir envie. Ce qui vaut la peine d’être compris, c’est le raccord de confiance : quelle horloge tu choisis de croire. Dans NextPDF, demander un niveau de signature qui exige du temps de confiance rend ce choix explicite plutôt qu’implicite.
<?php
declare(strict_types=1);
use NextPDF\Security\Signature\SignatureLevel;
// A baseline signature trusts only the signer's own clock.$baseline = SignatureLevel::PAdES_B_B;$baseline->requiresTimestamp(); // false → no third party vouches for "when"
// Stepping up to B-T means a Time-Stamp Authority must be supplied:// from here on, "when" is attested by a clock you do not control.$timestamped = SignatureLevel::PAdES_B_T;$timestamped->requiresTimestamp(); // true → a TSA is now part of your trust model
// The decision is now visible at the call site, not buried in a default.// Choosing the TSA is choosing whose time becomes your evidence.Le but de l’exemple n’est pas l’API. C’est que « ai-je du temps de confiance ? » est un fait par oui ou par non sur ton document, décidé par la présence ou non d’une TSA dans la boucle — et le moteur refuse de laisser ce fait ambigu.
Idée fausse courante
Section intitulée « Idée fausse courante »Le piège consiste à lire un horodatage comme « ceci a été créé à 14:32 ». Il ne dit rien de tel. Il dit « ceci existait au plus tard à 14:32 ». La différence est tout l’enjeu. Un horodatage est une borne supérieure, jamais une borne inférieure et jamais un instant exact. Tes données ont pu exister pendant des années avant que tu t’occupes de les horodater ; le jeton reste muet là-dessus. Il trace une seule ligne et dit : pas après ici.
Une seconde idée fausse, plus coûteuse : qu’un horodatage prouve que ton document est authentique ou correct. Il ne fait ni l’un ni l’autre. Il est indifférent au sens. Un mensonge parfaitement horodaté reste un mensonge — désormais prouvablement ancien. L’authenticité vient de la signature qui dit qui ; la vérité vient du monde. L’horodatage ne parle jamais que du quand.
Limites et frontières
Section intitulée « Limites et frontières »La portée d’un horodatage s’arrête exactement où s’arrête son modèle de confiance. Il prouve une borne supérieure sur l’âge, et rien d’autre, et seulement si tu fais confiance à l’autorité qui l’a scellé.
Il y a deux paliers d’autorité qui méritent d’être distingués. Une TSA de confiance publique se chaîne à un certificat que ton logiciel accepte déjà ; ses jetons sont largement vérifiables et conviennent à la plupart des enregistrements. Une TSA qualifiée eIDAS est un prestataire supervisé inscrit sur une liste de confiance de l’UE, et un horodatage électronique qualifié porte une présomption juridique d’exactitude de sa date et d’intégrité des données — une présomption qu’un horodatage ordinaire n’a pas (Spec: eIDAS, Art. 41eIDAS Art. 41). Choisir entre les deux est une question de poids probant dont tu as besoin, et non de la façon dont les octets fonctionnent ; la cryptographie est la même.
Un horodatage hérite aussi de la durée de vie de ses propres ancres de confiance. Le certificat de la TSA peut expirer ou être révoqué, et l’algorithme de hachage qu’elle a utilisé peut vieillir. C’est précisément pourquoi les documents à longue durée de vie ne s’horodatent pas une fois pour s’en aller — ils renouvellent, en superposant un horodatage de document frais par-dessus l’ancienne preuve avant que celle-ci ne faiblisse. Cette boucle de renouvellement est un sujet à part entière ; voir Validation à long terme.
| Edition | Availability |
|---|---|
| Core | Prend en charge PAdES B-B et B-T. B-B est la signature de référence sans horodatage ; B-T demande et incorpore un horodatage de signature RFC 3161 vérifié, auprès d’une TSA fournie par le déploiement et dont tu choisis l’horloge. |
| Pro | Ajoute les preuves de validation à long terme intégrées (certificats, OCSP, CRL) dont B-LT a besoin pour garder une signature vérifiable après l’expiration de ses certificats. |
| Enterprise | Ajoute la boucle de renouvellement B-LTA, scellant les preuves de validation sous un horodatage de document frais et le ré-apposant avant que la protection ne faiblisse. |
Documents associés
Section intitulée « Documents associés »- Horodatages et temps de confiance — le même mécanisme au niveau du moteur et de PAdES, avec les règles de vérification explicitées.
- Validation à long terme — comment le renouvellement des horodatages de document garde une signature vérifiable pendant des années.
- Comment une signature prouve qui a signé — la moitié « qui » de l’histoire que cette page laisse de côté.
- Les signatures qualifiées, expliquées — ce que « qualifié » signifie, et pourquoi une TSA qualifiée porte un poids juridique.
Glossaire
Section intitulée « Glossaire »- Autorité d’horodatage (TSA) — un service indépendant qui émet des jetons d’horodatage signés. Tu fais confiance à son horloge précisément parce qu’elle n’est pas la tienne.
- Jeton d’horodatage — le petit objet signé qu’une TSA renvoie, liant une empreinte de tes données à une valeur temporelle (Spec: RFC 3161, §2.1RFC 3161 §2.1).
- Empreinte (empreinte de message) — une courte signature numérique à sens unique des données. La TSA signe celle-ci, jamais les données elles-mêmes, si bien que ton contenu reste privé.
- Nonce — un nombre aléatoire fraîchement généré envoyé avec la requête et renvoyé inchangé dans la réponse, montrant que le jeton correspond à cette requête précise et n’est pas la relecture d’une ancienne réponse (il atteste la fraîcheur, pas l’identité du demandeur).
- Borne supérieure — ce qu’un horodatage établit : les données existaient au plus tard à l’instant déclaré. Jamais un instant exact de création.
- Horodatage qualifié eIDAS — un horodatage d’un prestataire supervisé de l’UE qui porte une présomption juridique d’exactitude de la date et d’intégrité des données.
- Horodatage de document — un horodatage sur un fichier PDF entier, utilisé pour ancrer et renouveler les preuves de validation à long terme (Spec: ISO 32000-2, §12.8.5ISO 32000-2 §12.8.5).