Ein Digitaler Produktpass zeigt nicht allen dasselbe. Eine Käuferin sieht die öffentlichen Daten. Ein Reparaturbetrieb oder ein Aufbereiter sieht mehr. Eine Marktüberwachungsbehörde sieht alles. Das ist geklärt, und die europäischen Normen schreiben es inzwischen ausdrücklich fest.
Die interessante Frage ist leiser: Wenn jemand über die öffentlichen Daten hinaus geschützte Felder zu sehen bekommt, kann er dann belegen, dass ausgerechnet diese Felder echt sind? Oder muss er darauf vertrauen, dass die Plattform sie korrekt herausgesucht und unverändert weitergereicht hat?
Man stelle sich einen Notar vor, der nicht den Brief als Ganzes beglaubigt, sondern jeden Absatz einzeln. Den öffentlichen Brief bekommt jeder. Wer Anspruch auf mehr hat, bekommt die zusätzlichen Absätze dazu, und jeder davon trägt weiterhin das Siegel desselben Notars. So haben wir unsere Plattform gebaut. Bei den meisten Plattformen lautet die ehrliche Antwort auf die Frage oben: Vertrauen. Bei uns lautet sie: Beweis, für jedes Feld, das erst bei der Offenlegung dazukommt. Dieser Artikel erklärt, warum dieser Unterschied zählt und warum wir dafür den aufwendigeren Weg gegangen sind.
Die Zugriffsregel erfüllen alle gleich
EN 18239, die europäische Norm für Zugriffsrechte, Sicherheit und Vertraulichkeit im DPP, verlangt, dass der Zugriff je Feld gesteuert wird: Für jedes Feld gibt es eine Regel, wer es sehen darf. Das ist die richtige Anforderung, und sie ist nicht schwer zu erfüllen. Welchen Status diese Normen überhaupt haben, haben wir in unserem Beitrag zu den harmonisierten Normen aufgeschlüsselt.
Der übliche Weg dorthin ist ein Filter auf dem Server. Der Server weiss, wer fragt, schlägt nach, was diese Person sehen darf, und liefert genau diesen Ausschnitt zurück. Mehr verlangt die Norm nicht. Einen Haken hat das, um den sich die Norm nicht kümmert: Der Ausschnitt kommt ohne Siegel an. Der Leser muss glauben, dass der Server ehrlich ausgewählt und unterwegs nichts verändert hat. Für ein öffentliches Merkblatt ist das in Ordnung. Für einen Wert, auf den ein Aufbereiter gleich den Preis einer gebrauchten Batterie stützt, ist es viel Glaube.
Die naheliegende Lösung ist, die Daten zu signieren. Für die beiden Enden der Skala funktioniert eine gewöhnliche Signatur gut: die öffentliche Ansicht signieren, den vollständigen Datensatz signieren. Wie das im Detail abläuft, steht in Signaturen und Zertifikate im DPP. In der Mitte bricht es. Eine Signatur über das ganze Dokument deckt genau die Felder ab, die beim Signieren da waren. Legt man einem berechtigten Leser ein geschütztes Feld zusätzlich offen, liegt dieses Feld ausserhalb der signierten Menge und kommt ungedeckt bei ihm an. Jede mögliche Kombination von Wer-sieht-was im Voraus zu signieren, macht niemand, die Zahl der Kombinationen explodiert. Man fällt zurück auf den Filter ohne Siegel, und die mittlere Stufe läuft wieder auf Vertrauen.
Jedes Feld einzeln signieren
Es gibt eine bessere Konstruktion, und auf ihr bauen wir die Plattform auf. Statt das fertige Dokument als einen Block zu signieren, legt sich der Hersteller in einem einzigen Durchgang auf jedes Feld einzeln fest (für die Normenkundigen: das W3C-Verfahren ecdsa-sd-2023).
Jede Ansicht beginnt damit bei denselben öffentlichen Feldern. Was ein Leser darüber hinaus zu sehen bekommt, kommt Feld für Feld hinzu, und jedes dieser Felder führt weiterhin auf den öffentlichen Schlüssel des Herstellers zurück, offline, ohne erneutes Signieren und ohne Vertrauen in die Stelle, die die Ansicht zusammengestellt hat. Die Felder ohne Anspruch fehlen schlicht. Nicht geschwärzt, sondern gar nicht da, und es sickert nichts über sie durch.
Ein Durchlauf: der Reparaturbetrieb
Ein Reparaturbetrieb hat für eine Batterie ein berechtigtes Interesse angemeldet, eine der Zugriffsstufen, die die Batterieverordnung ausdrücklich vorsieht. Sein Werkstattsystem meldet sich mit seinem Schlüssel an unserer Schnittstelle an und ruft den Pass ab. Die Antwort ist derselbe öffentliche Pass, den auch die Käuferin sieht, um genau ein Feld reicher: die Demontage-Anleitung, die nur berechtigten Lesern offengelegt wird. Kein zweites Dokument, keine Sonderfassung.
Bevor sich der Betrieb auf dieses Feld verlässt, rechnet seine Software das mitgelieferte Siegel gegen den öffentlichen Schlüssel des Herstellers nach. Geht die Prüfung auf, und zwar auch über das zusätzliche Feld, weiss er: Diese Anleitung stammt zeichengenau vom Hersteller, und niemand auf dem Weg hat etwas daran verändert. Geht sie nicht auf, legt er die Ansicht als Ganzes beiseite. Dass er genau die Felder erhält, die ihm zustehen, bleibt Aufgabe unserer Zugriffssteuerung. Neu ist der Schritt danach: Ob echt ist, was ankommt, prüft er selbst, ohne uns zu fragen.
Warum «ungebrochen» der ganze Punkt ist
Ein intaktes Siegel sagt nicht, dass der Inhalt wahr ist. Es sagt: Genau das hat der Hersteller geschrieben, und seither hat niemand ein Zeichen daran verändert. Damit fällt jeder aus der Vertrauensfrage heraus, der das Dokument nur weitergereicht hat: der Zwischenspeicher, das Netz, das Archiv, wir. Wer Ihnen den Pass gegeben hat, spielt keine Rolle mehr.
Und ein Siegel ist binär. Es hält oder es hält nicht, ein halb gebrochenes gibt es nicht. Deshalb ist es kein gradueller Unterschied, ob die zusätzlichen Felder mit ihrem Siegel bei Ihnen ankommen oder ohne: Ohne Siegel sind sie nicht etwas schwächer belegt, sie sind gar nicht belegt.
Beide Verfahren zum Anschauen
Prüfen kann das jeder selbst. Die Transpareo Time Machine ist unsere quelloffene Anzeige-App für Produktpässe: Sie blättert durch die Versionsgeschichte eines Passes und rechnet dabei jede Signatur im Browser des Betrachters nach, ohne einen Server von uns zu fragen. Der Pass eines T-Shirts trägt eine Signatur über das ganze Dokument, der Pass einer Batterie die feldweise Freigabe.
Beides sind offene W3C-Standards, umsetzen kann sie jeder. Die Signatur über das ganze Dokument ist deutlich billiger zu bauen und zu betreiben, und wer nur öffentliche Daten ausliefert, kommt damit aus. Dass die Time Machine beide Verfahren beherrscht, ist Absicht: Der Pass bleibt ein gewöhnliches Standardformat, das jedes passende Werkzeug prüfen kann, nicht nur unseres.
Wem das nützt, und was die Norm verlangt
Wem wird über die öffentlichen Daten hinaus überhaupt etwas offengelegt? Nicht der beiläufigen Käuferin. Es sind der Aufbereiter, der beurteilt, was ein gebrauchtes Batteriepaket wert ist, der Versicherer, der ein Risiko bepreist, der Recycler, der Chemien sortiert, die Behörde, die einen Fall aufbaut. Leser, deren Entscheidungen an Geld oder Sicherheit hängen. Und im üblichen Ansatz genau die Leser, die für die Felder, auf denen ihre Entscheidung ruht, kein Siegel bekommen. Wir finden, ein Prüfsiegel sollte für alle dasselbe bedeuten: Jedes gezeigte Feld stammt vom Hersteller und wurde seither nicht angefasst. Ein Siegel, das nur für die öffentlichen Felder trägt, ist ein halbes Siegel.
Wir sagen es offen: Vorgeschrieben ist nichts davon. EN 18239 verlangt, dass der Zugriff gesteuert wird, und ein Filter auf dem Server tut das einwandfrei. Die offengelegten Felder prüfbar zu machen, tun wir obendrauf, weil der ganze Sinn eines signierten Passes ist, dass niemand der Plattform vertrauen muss. Die mittlere Stufe als Ausnahme herauszuschneiden, holt genau das Vertrauen zurück, das die Signatur beseitigen sollte.
Dasselbe Prinzip lässt ein Feld vergessen werden
Sich auf jedes Feld einzeln festzulegen, bringt eine zweite Eigenschaft mit, und diese verlangt europäisches Recht tatsächlich. Die Datenschutz-Grundverordnung gibt Menschen das Recht, personenbezogene Daten löschen zu lassen. Ein als ein Block signierter Datensatz kann dem nicht nachkommen, ohne die eigene Signatur zu zerstören.
Weil hier jedes Feld für sich steht, lässt sich ein einzelnes Feld entfernen, während alles Übrige weiterhin prüft. Landen versehentlich personenbezogene Daten in einem Pass, kommen sie sauber wieder heraus, und der Pass bleibt gültig: kein Neuausstellen, keine zerrissene Historie. Die Felder, die das Gesetz aufzubewahren verlangt, bleiben liegen; was löschbar ist, lässt sich auf Verlangen löschen, auch noch Jahre später.
Warum das schwer ist, und wie wir es gelöst haben
Erfunden haben wir das Verfahren nicht, es ist ein öffentlicher W3C-Standard. Schwer ist nicht, die Idee zu haben. Schwer ist, sie so zu bauen, dass ein Pass in zehn Jahren noch prüft. Eine gewöhnliche Signatur rechnet über die Bytes eines Dokuments. Die feldweise Signatur rechnet über seine einzelnen Angaben, und dafür wird der Pass vor dem Signieren in eine feste Schreibweise gebracht, in der jede Angabe als eigener Satz dasteht. Diese Schreibweise muss in zehn Jahren Zeichen für Zeichen wieder herauskommen, sonst passt kein Siegel mehr. Drei unscheinbare Dinge stehen dem im Weg, und wir haben alle drei an der Wurzel geschlossen.
Zahlen verlieren ihren Typ. Ein Wert wie 2.0 kommt nach einer Runde durch ein gewöhnliches Datenformat als 2 zurück. Für einen Menschen dasselbe, für die feste Schreibweise ein anderer Satz. Bei uns wird jeder Wert mit seinem Typ gespeichert, und die Veröffentlichung bricht ab, sobald auch nur eine Zahl ohne Typ auftaucht.
Bezeichnungen sind noch keine Bedeutung. Jeder Feldname muss auf eine eindeutige Bedeutung in einem Wörterbuch zurückführen, sonst verschwindet das Feld beim Umwandeln stillschweigend und das Siegel deckt es nicht ab. Bei uns liegt jedes Wörterbuch lokal vor und wird nie über das Netz geholt; ein unbekannter Feldname stoppt das Signieren, statt still ein leeres Ergebnis zu liefern.
Einträge brauchen feste Namen. Jeder Eintrag im Dokument trägt bei uns eine feste Kennung, damit die Schreibweise bei jedem Durchlauf dieselbe bleibt, statt jedes Mal neue Hilfsnamen zu vergeben.
Der heikelste Teil steckt beim eigenen Schlüssel des Herstellers. Für jede Ausstellung wird ein zusätzlicher, kurzlebiger Schlüssel gebraucht, mit dem die offenlegbaren Felder einzeln unterschrieben werden. Diesen Schlüssel erzeugt und verwirft der Hersteller selbst. Läge er bei uns, könnten wir einzelne Felder nachträglich erfinden. Zwei solche Siegel trägt jeder Pass, eines des Herstellers und eines von Transpareo, auch für ein einzeln offengelegtes Feld.
Für uns liegt dieser Aufwand an der richtigen Stelle. Jeder Pass wird beim Veröffentlichen signiert und an die Version davor gekettet, und das unveränderbare Zehn-Jahres-Archiv greift, sobald die Pässe beim EU-DPP-Register registriert sind. Jedes Feld statt des ganzen Blocks zu signieren, ist eine Erweiterung dieses Kerns, kein Aufsatz.
Wo wir stehen
Wir haben uns für den Beweis entschieden, für jeden Leser, weil ein Siegel eine Sache bedeuten sollte, gleich wer hinsieht. Wer es arbeiten sehen will: Die beiden oben verlinkten Beispielpässe prüfen sich direkt im Browser, ohne einen Server zu fragen.
Fragen zu diesem Beitrag
Schreibt eine Norm die feldweise Signatur vor?
Nein. EN 18239, die europäische Norm für Zugriffsrechte im DPP, verlangt, dass der Zugriff je Feld gesteuert wird, und ein Filter auf dem Server erfüllt das vollständig. Die offengelegten Felder darüber hinaus prüfbar zu machen, ist unsere Entscheidung und kein Häkchen, das die Regulierung von irgendwem verlangt. Wir halten den Aufwand für gerechtfertigt, weil der ganze Sinn eines signierten Passes darin liegt, dass niemand der Plattform vertrauen muss. Welchen Status diese Normen überhaupt haben, steht in unserem Beitrag zu den harmonisierten Normen.
Wir veröffentlichen nur öffentliche Daten. Brauchen wir das?
Vermutlich nicht, und das sagen wir auch so. Eine Signatur über das ganze Dokument deckt einen Pass ab, dessen Felder alle öffentlich sind, und sie ist deutlich billiger zu bauen und zu betreiben. Die feldweise Freigabe lohnt sich, sobald eine zweite Zielgruppe dazukommt, etwa ein Reparaturnetz, ein Recycler oder eine Behörde, der Sie sonst Auszüge ohne Siegel in die Hand geben. Beide Verfahren sind offene W3C-Standards (ecdsa-sd-2023 für die feldweise Signatur), jedes Werkzeug, das den Standard beherrscht, kann sie prüfen, und beide laufen heute in der Transpareo Time Machine, am Pass eines T-Shirts und am Pass einer Batterie.
Lassen sich personenbezogene Daten später löschen, ohne den Pass zu entwerten?
Ja, und dieser Teil wird von europäischem Recht tatsächlich verlangt. Die Datenschutz-Grundverordnung gibt Menschen das Recht, personenbezogene Daten löschen zu lassen, und ein als Block signierter Datensatz kann dem nicht nachkommen, ohne die eigene Signatur zu zerstören. Weil hier jedes Feld für sich festgeschrieben ist, lässt sich ein einzelnes Feld entfernen, während alles Übrige weiterhin prüft, ohne Neuausstellen und ohne zerrissene Versionsgeschichte. Die Felder, die das Gesetz aufzubewahren verlangt, bleiben liegen.
Wer hält den Signaturschlüssel?
Jeder Pass trägt zwei Siegel, und eines davon kann Ihres sein. Jede Ausstellung braucht zusätzlich einen kurzlebigen Schlüssel, der die offenlegbaren Felder einzeln unterschreibt; diesen erzeugt und verwirft der Hersteller selbst, denn läge er bei uns, könnten wir einzelne Felder nachträglich erfinden. Das zurückkommende Siegel prüfen wir gegen den hinterlegten öffentlichen Schlüssel, bevor wir ihm trauen. Jeder Pass trägt damit zwei Siegel zweier unabhängiger Stellen, für ein einzeln offengelegtes Feld genauso wie für den ganzen Datensatz.
Prüft ein Pass in zehn Jahren noch?
Genau dort steckt der Aufwand. Die feldweise Signatur rechnet über die einzelnen Angaben eines Dokuments statt über seine Bytes, dieselbe feste Schreibweise muss also ein Jahrzehnt später Zeichen für Zeichen wieder herauskommen. Drei Dinge brechen das leise, und wir haben alle drei an der Wurzel geschlossen. Jeder Wert wird mit seinem Typ gespeichert, jedes Wörterbuch liegt bei uns und wird nie über das Netz geholt, und jeder Eintrag trägt eine feste Kennung. Das unveränderbare Zehn-Jahres-Archiv ist angelegt und greift, sobald die Pässe beim EU-Register registriert sind. Mehr dazu in unserer Analyse der Registerverordnung.




