Zum Inhalt springen

Zeitstempel und vertrauenswürdige Zeit

Spec: RFC 3161 Spec: RFC 5816 Spec: ISO 32000-2, §12.8.5 Evidence: Standard-backed

Ein Zeitstempel hält nicht fest, „wann das signiert wurde“. Er beweist etwas Engeres und zugleich Stärkeres: dass ein bestimmtes Datenstück vor einem bestimmten Zeitpunkt existierte, bezeugt durch eine Partei, die nicht der Unterzeichner ist. In dieser Unterscheidung liegt der ganze Wert vertrauenswürdiger Zeit, und genau sie wird häufig missverstanden.

Die Signaturzeit in einer Signatur ist die Angabe, die der Computer des Unterzeichners gemacht hat. Eine Uhr kann versehentlich oder absichtlich falsch gehen. Wenn der einzige Beleg für das Wann die eigene Behauptung des Unterzeichners ist, kann ein Unterzeichner ein Dokument nach Belieben vor- oder zurückdatieren. Ein Zertifikat, das gestern widerrufen wurde, kann so aussehen, als sei damit letztes Jahr signiert worden. Das „Wann“ ist kein Detail: Es entscheidet, ob eine Signatur, die mit einem inzwischen abgelaufenen oder widerrufenen Zertifikat erstellt wurde, noch zählt. Und wenn die vertrauenswürdige Zeit falsch ist, bricht jedes darauf aufgebaute Argument für die Langzeitgültigkeit zusammen.

  • Die eigene Signaturzeit eines Unterzeichners ist eine Behauptung, kein Beweis. Sie ist trivial fälschbar.
  • Ein RFC 3161-Zeitstempel ist ein signiertes Token einer Zeitstempelstelle (TSA), das einen Hash Ihrer Daten an die Zeit der TSA bindet.
  • Was er beweist, ist präzise: die Daten existierten vor der angegebenen Zeit der TSA. Nicht der genaue Erstellungsmoment — eine Obergrenze.
  • Das Token gibt die von Ihnen gesendete Nonce und Ihren Message Imprint zurück, sodass es weder ein Replay sein kann noch sich auf andere Daten beziehen kann.
  • Ein Dokumentzeitstempel wendet denselben Mechanismus auf das gesamte PDF an und verankert alles, was darunterliegt — die Signatur und ihre eingebetteten Validierungsbelege — an einem vertrauenswürdigen Zeitpunkt.

NextPDF behandelt einen Zeitstempel als etwas, das verifiziert werden muss, nicht nur als etwas, das einzuholen ist. Ein Token anzufordern ist der kleinere Teil der Arbeit. Aus Sicht der Engine ist ein nicht verifiziertes Token kein Beleg.

Wenn die Engine eine Signatur mit einem Zeitstempel versieht, sendet sie der TSA einen Hash der Daten und eine frische zufällige Nonce, niemals die Daten selbst. Das zurückgegebene Token wird dann auf alle Eigenschaften geprüft, die es aussagekräftig machen: Der Status der Stelle war „granted“, die Nonce im Token stimmt mit der gesendeten überein, der Message Imprint im Token stimmt mit dem gesendeten Hash überein, die kryptografische Signatur des Tokens lässt sich verifizieren, der Inhaltstyp des Tokens ist der Zeitstempeltyp, und die angegebene Zeit liegt innerhalb einer akzeptablen Toleranz. Jede Abweichung ist ein harter Fehler mit einem typisierten Grund. Es gibt keinen Pfad nach dem Motto „sieht nah genug aus“. Ein Dokumentzeitstempel folgt derselben Regel, angewandt auf die gesamte Datei statt auf den Wert einer einzelnen Signatur.

  1. Hash the data Only a digest of the signature value (or the whole PDF, for a document timestamp) is computed — never the data itself.
  2. Send hash + nonce The digest and a fresh random nonce go to the Time-Stamp Authority.
  3. TSA returns a token A signed token binds the digest to the TSA’s genTime and echoes the nonce.
  4. Verify the token Status granted, nonce matches, message imprint matches, token signature verifies, time within tolerance.
  5. Conclude an upper bound The data provably existed before the TSA’s stated time — attested by a party that is not the signer.
Wie ein vertrauenswürdiger Zeitstempel eingeholt wird und was er beweist: ein Hash plus ein Nonce wird an die TSA gesendet, die TSA gibt ein signiertes Token zurück, das diesen Hash an ihre Zeit bindet, und der Verifizierer bestätigt die Bindung, bevor er sie als Beweis dafür behandelt, dass die Daten vor dieser Zeit existierten.

Evidence: Standard-backed Die Definition ist exakt. Spec: ISO/IEC 18014-2, §3 definiert einen Zeitstempeldienst als einen, der Belege dafür liefert, dass ein Datenelement vor einem bestimmten Zeitpunkt existierte — eine Obergrenze, kein Erstellungszeitpunkt. Spec: ISO/IEC 18014-2, §7 definiert den Inhalt des TSTInfo-Tokens: einen Message Imprint (den Hash Ihrer Daten), eine Erzeugungszeit, eine Seriennummer und einen optionalen Nonce. Spec: ISO/IEC 18014-2, §6 nennt die Schlussfolgerung, die ein Verifizierer nach erfolgreicher Prüfung ziehen darf: dass das Datenelement vor der im Token angegebenen Zeit dem Token existierte — nicht mehr und nicht weniger.

Für PDF spezifiziert Spec: ISO 32000-2, §12.8.5 den Dokumentzeitstempel: Die Byte-Range deckt die gesamte Datei ab, ausgenommen der Contents-Wert, der daraus berechnete Hash wird an eine Zeitstempelstelle gesendet, und das zurückgegebene RFC 3161-Token — aktualisiert durch Spec: RFC 5816 — wird in Contents abgelegt. Es gilt dieselbe Byte-Range-Disziplin wie bei einer Signatur, angewandt auf die Zeit statt auf die Identität. Und Spec: RFC 6960, §4.4.4 erklärt, warum dies für die Langlebigkeit wichtig ist: Vertrauenswürdige Zeit ermöglicht es einem Validierer, zu beweisen, dass eine Signatur zum Zeitpunkt ihrer Erstellung zuverlässig war, selbst nachdem das Zertifikat abgelaufen ist.

Die NextPDF-Engine sendet einen Hash und eine Nonce, niemals die Daten, und verifiziert das zurückgegebene Token anhand von Status, Nonce, Message Imprint, Token-Signatur, Inhaltstyp und Zeittoleranz, bevor sie es als Beleg behandelt.

Sie setzen ein Zeitstempel-Token nicht von Hand zusammen. Entscheidend ist die Vertrauensgrenze: Eine TSA müssen Sie konfigurieren und schützen, weil ihre Zeit zu Ihrem Beleg wird.

<?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.

Die entscheidende Grenze: Die Engine sendet einen Hash, nicht das Dokument, sodass die TSA Ihren Inhalt niemals sieht. Und sie verifiziert die Antwort. Eine TSA, die Sie nicht authentifizieren können, liefert keine vertrauenswürdige Zeit. Sie ist nur eine weitere Uhr.

Die Falle besteht darin, einen Zeitstempel als die Aussage „das wurde an diesem Datum genau um 14:32 signiert“ zu lesen. Er ist keine Stoppuhr für das Signaturereignis. Er beweist, dass die Daten spätestens zur Zeit der TSA existierten; das ist eine von einer dritten Partei gesetzte Obergrenze. Die Erstellung könnte zu einem beliebigen Zeitpunkt davor erfolgt sein. Eine zweite Falle ist die Annahme, dass jeder Zeitstempelserver Ihnen vertrauenswürdige Zeit liefert. Ein Token, dessen Signatur Sie nicht verifizieren können oder dessen ausstellender Stelle Sie nicht vertrauen, beweist nichts. Es ist eine Uhr, der zu vertrauen Sie keinen Grund haben. Vertrauenswürdige Zeit stammt von einer TSA, die Sie authentifizieren können, und einem Token, das Sie verifiziert haben, nicht aus dem bloßen Vorgang, einen Server nach einer Zahl zu fragen.

NextPDF baut die Anfrage auf, sendet nur einen Hash und verifiziert das zurückgegebene Token. Es bürgt nicht für die dahinterstehende Stelle. Die Genauigkeit der TSA, die Gültigkeit ihres eigenen Zertifikats und ihre Vertrauenswürdigkeit sind Eigenschaften des Dienstes und der Konfiguration Ihres Deployments, nicht der Engine. Ein Zeitstempel bindet einen Hash an eine Zeit. Er sagt nichts über die Bedeutung der Daten, die Identität des Unterzeichners oder darüber aus, ob das Zertifikat des Unterzeichners gültig war. Das sind separate Prüfungen, die in Eine Signatur richtig validieren behandelt werden. Die Engine kann eine nicht vertrauenswürdige TSA nicht zu einer vertrauenswürdigen machen. Diese Seite trifft auch keine Aussage über eine bestimmte rechtliche Wirkung eines Zeitstempels; das hängt vom Status der TSA und von der Rechtsordnung ab. Wie vertrauenswürdige Zeit wiederverwendet wird, um eine Signatur über Jahrzehnte verifizierbar zu halten, wird in Langzeitvalidierung behandelt.

Tier-Verfügbarkeit für Zeitstempelung:

RFC 3161 timestamping (signature timestamp and document timestamp) — edition availability
Edition Availability
Core Not in this edition
Pro

PAdES B-T — ein verifizierter RFC 3161-Zeitstempel auf dem Signaturwert, gegen eine vom Deployment bereitgestellte TSA.

Enterprise

Ergänzt den Dokumentzeitstempel, der von B-LT und B-LTA verwendet wird, um eingebettete Validierungsbelege zu verankern und die archivarische Erneuerungsschleife anzutreiben.

  • Zeitstempel (RFC 3161) — ein signiertes Token einer TSA, das einen Hash von Daten an die Zeit der TSA bindet und beweist, dass die Daten vor dieser Zeit existierten.
  • Zeitstempelstelle (TSA) — der vertrauenswürdige Dienst, der Zeitstempel-Tokens ausstellt.
  • TSTInfo — die Inhaltsstruktur des Tokens: Message Imprint, Erzeugungszeit, Seriennummer und optionaler Nonce.
  • Message Imprint — der Hash der Daten, die mit einem Zeitstempel versehen werden; er wird im Token zurückgegeben.
  • Nonce — ein frischer Zufallswert, der mit der Anfrage gesendet und im Token zurückgegeben wird, sodass die Antwort kein Replay sein kann.
  • Dokumentzeitstempel — ein RFC 3161-Zeitstempel über das gesamte PDF (aktualisiert durch RFC 5816), der die Signatur und ihre Belege an einem vertrauenswürdigen Zeitpunkt verankert.