
Artikel unserer Co-Founderin Ariane in IM+io
Artikel für IM+io des August-Wilhelm-Scheer-Instituts unserer Mitgründerin Ariane Scheer-Danielsson über die Notwendigkeit eines Trust Layers für Physical AI.

Eine C2PA-Signatur beweist, wer signiert hat. Ohne vertrauenswürdigen Zeitstempel beweist sie nicht, wann, und Zurückdatieren ist trivial. Die meisten Integrationen lösen das über eine externe TSA (Time Stamping Authority) und erben deren Latenz, Kosten und Vertrauensannahmen. Wir betreiben unsere eigene RFC-3161-Autorität als serverlosen Dienst: KMS hält den Signaturschlüssel, DynamoDB garantiert eindeutige Seriennummern, und eine ASN.1-Falle hat uns mehr über DER-Encoding gelehrt als jedes Spec-Dokument.
Zeitstempel für Beweise müssen gegenüber Infrastruktur prüfbar sein, die man einem Auditor erklären kann. Eine externe TSA fügt jedem Protect-Aufruf eine Drittanbieter-Abhängigkeit hinzu, mit Latenz auf dem kritischen Pfad der Erfassung. Eine serverlose TSA skaliert mit der API selbst, und die Vertrauensgeschichte bleibt in einem Bedrohungsmodell. Das ersetzt nicht automatisch jede Compliance-Anforderung an Dritte, und RFC 3161 ist nicht für jedes C2PA-Manifest verpflichtend, aber für unsere Beweis-Pipeline ist eigene vertrauenswürdige Zeit der richtige Default.
Die COSE-Schicht fordert einen Zeitstempel über den Message Imprint der Signatur an. Das Token landet in den unsignierten Attributen der Signatur, und die Validierung prüft später das Token und sein Verhältnis zur Signer-Gültigkeit. Unsere Bibliothek hält das hinter einem Ein-Methoden-Interface, TimestampProvider.getSignedTimestamp(request) (definiert in unserer C2PA-TypeScript-Bibliothek), sodass derselbe Code mit unserer API, einem lokalen Provider in Tests oder einer nativen Bridge auf dem Handy sprechen kann.
RFC 3161 verlangt eine eindeutige Seriennummer pro Token, und Eindeutigkeit über eine verteilte Lambda-Flotte hinweg ist die Art Anforderung, die trivial aussieht, bis sie es nicht ist. Unser Schema: Ein atomarer DynamoDB-Zähler liefert die Eindeutigkeit, dann hashen wir den Zählerwert mit einem in SSM abgelegten Salt. SHA-1s 160-Bit-Ausgabe passt ins Serienfeld, und das Salt verhindert Vorhersage und Aufzählung der Seriennummern. Koordinationsfrei, zustandslos bis auf den Zähler und genau so langweilig, wie Sicherheitsinfrastruktur sein sollte.
Eine TimeStampResp verpackt ihren Inhalt in ein EncapsulatedContentInfo. Übergibt man den Inhalt an den Konstruktor, zerlegt die Bibliothek ihn hilfsbereit in 64-kB-Stücke und macht aus einem primitiven OCTET STRING einen konstruierten. DER verbietet konstruierte Strings, und mehrere Zeitstempel-Parser lehnen das Ergebnis ab. Die Signatur ist gültig, die Struktur sieht plausibel aus, und die Interoperabilität scheitert trotzdem.
Der Fix sind drei Zeilen und ein Kommentar: erst das Objekt konstruieren, dann die Content-Eigenschaft direkt setzen, damit die Bytes unberührt bleiben. Das ist die Stelle, an der wir gestolpert sind, und sie ist unsichtbar, bis die eigenen Tokens im Verifizierer eines anderen scheitern.

Der private TSA-Schlüssel verlässt KMS nie. Die Lambda baut die TSTInfo, setzt die signierten Attribute zusammen und lässt die DER-kodierte Nutzlast per SignCommand von KMS signieren. Zertifikate und Kette laden beim Kaltstart aus SSM. Die Privatschlüssel-Operation ist ein API-Aufruf mit Audit-Logging; es gibt kein Schlüsselmaterial in der Funktion, das entweichen könnte.
Ist eine eigene TSA eIDAS-qualifiziert? Nein. Unsere ist Infrastruktur für Beweis-Zeitstempel innerhalb unserer Vertrauensschicht, kein qualifizierter Vertrauensdienst. Deployments, die qualifizierte Zeitstempel brauchen, können eine externe qualifizierte TSA über dasselbe TimestampProvider-Interface andocken.
Was beweist ein Zeitstempel über den Inhalt? Dass der signierte Digest zum angegebenen Zeitpunkt existierte, gemessen an Uhr und Schlüssel der TSA. Über den Erfassungszeitpunkt selbst beweist er nichts, weshalb er sensorisch versiegelte Metadaten ergänzt und nicht ersetzt.
Warum kein Blockchain-Zeitstempel? Anchoring liefert Reihenfolge gegen ein öffentliches Ledger, fügt aber Bestätigungslatenz und Kosten pro Ereignis hinzu. RFC 3161 liefert ein sofortiges, standardbasiertes Token, das C2PA-Validatoren bereits verstehen.
Vertrauenswürdige Zeit sieht wie ein kleiner Hilfsdienst aus, bis man einen baut. Dann ist es ASN.1, Seriennummern und Schlüsselverwahrung, und jedes dieser Details ist tragend.