Ein Archiv, das mir gehört, beweist nichts
Ich betreibe ein Archiv, das aufzeichnet, was Websites sagen. An diesem Satz ist etwas faul, und zwar das Wort “ich”.
Ein Archiv, das mir gehört, beweist nichts. Ich könnte heute Nacht die Datenbank öffnen, eine Zeile ändern, neu versiegeln, und draußen würde es niemand merken. Wer schon einmal über ein Dokument gestritten hat, vor jemandem, der darüber entscheidet, kennt den Reflex: wer die Aufzeichnung erstellt hat, hat ein Interesse an ihrem Inhalt. Die Frage beim Bauen war deshalb nie, wie man Seiten speichert. Sie war, wie man das eigene Wort überflüssig macht.
Darauf gibt es eine langweilige Antwort und eine interessante. Die langweilige ist Kryptografie. Die interessante sind zwei Maschinen in zwei Ländern, die nie miteinander reden.
Gestritten wird über das Datum, nicht über den Inhalt
Eine Website hat kein Gedächtnis. Sie hat nur Gegenwart. Das ist kein Problem, bis zwei Seiten über die Vergangenheit uneins sind, und dann ist es das ganze Problem.
Nehmen wir die maschinenlesbare Seite, dort hat es angefangen. Vier Dateien tragen fast alles, was eine Site Crawlern und KI-Systemen mitteilt: robots.txt, ai.txt, /.well-known/tdmrep.json für den Text-und-Data-Mining-Vorbehalt und llms.txt. Im Streit bestreitet niemand, dass ein Vorbehalt existiert. Man schaut nach, er steht da. Gestritten wird darüber, seit wann. Die eine Seite sagt, das Opt-out steht seit März. Die andere sagt, beim Crawl war es nicht da, es kam hinterher dazu. Beide sind sich sicher. Keine hat etwas vorzulegen.
Wonach in dem Moment gegriffen wird: eigene Server-Logs, eigene Git-Historie, eigene CMS-Versionen. Alles von der Partei erzeugt, der es nützt. Ich sage nicht, dass das wertlos ist. Ich sage, ich möchte nicht, dass es das Einzige auf dem Tisch ist.
Dieselbe Form taucht weit weg von KI wieder auf. Ein Wettbewerber ändert die beanstandete Seite am Tag nach der Abmahnung. Die Nameserver einer Domain wandern während eines Markenstreits zweimal. Eine Plattform ändert still ihre AGB, und niemand hat die alte Fassung. Immer dieselbe Struktur: was zählt, stand an einem Dienstag öffentlich da, und wenn es darauf ankommt, ist der Dienstag weg.
Zwei Zeugen, und warum sie nicht übereinstimmen dürfen
Also: zwei Maschinen. Eine steht in Deutschland, eine in Frankreich. Verschiedene Anbieter, verschiedene Netze, verschiedene Gebäude, verschiedene Rechtsordnungen innerhalb der EU. Dieselbe Software, aufgesetzt vom selben Skript, denn identische Konfiguration ist hier eine Bedingung und keine Bequemlichkeit. Jede Nacht um 03:00 UTC wachen beide auf und holen dieselben Dinge von denselben Domains.
Sie stimmen sich nicht ab. Sie vergleichen nichts miteinander. Jede speichert, was sie gesehen hat, bildet über ihren eigenen Tag einen Merkle-Baum und versiegelt diesen Tag um 23:50 mit ihrer eigenen Wurzel.
Und jetzt der Teil, der die Leute überrascht, und mein liebster am ganzen System: die beiden Tageswurzeln stimmen nie überein. Kein einziges Mal. Sie sollen es auch nicht.
Jeder Zeuge crawlt nach seinem eigenen Zeitplan und hat am Ende seine eigene Blattmenge. Wären die beiden Wurzeln je identisch, wäre das nicht beruhigend, sondern ein Warnzeichen, denn es hieße, die beiden Maschinen sind weniger getrennt, als ich behaupte. Die Übereinstimmung entsteht eine Ebene tiefer, bei der einzelnen Beobachtung: diese Domain, diese Datei, dieser Inhalts-Hash, von beiden festgehalten, Stunden auseinander. Zwei Parteien, die nie miteinander gesprochen haben und dasselbe über denselben Gegenstand sagen, sind etwas wert. Zwei Parteien, die eine bytegleiche Zusammenfassung produzieren, sind eine Prüfung wert.
Das dreht den üblichen Reflex um. Redundanz will Spiegelbilder. Ein Beweis will Unabhängigkeit, und Unabhängigkeit ist per Definition unordentlicher.
Das Siegel, und was meinen Zugriff verlässt
Eine Tageswurzel für sich ist nur eine Zahl, die ich aufgeschrieben habe. Interessant wird sie, wenn sie meine Hände verlässt, deshalb wird jede Wurzel in derselben Nacht dreifach verankert.
Ein Anker geht in OpenTimestamps und landet in der Bitcoin-Blockchain. Billig, öffentlich, in einer Verhandlung unangenehm zu erklären, still nicht umschreibbar.
Der zweite ist ein qualifizierter elektronischer Zeitstempel eines Vertrauensdiensteanbieters von der EU-Vertrauensliste. Das ist der, der Juristen interessiert, denn Artikel 41 Absatz 2 der eIDAS-Verordnung knüpft eine Vermutung daran: die Richtigkeit des angegebenen Datums und der angegebenen Uhrzeit sowie die Unversehrtheit der damit verbundenen Daten werden vermutet. Ich zitiere, ich lege nicht aus. Ob diese Vermutung gegen einen bestimmten Gegner etwas bringt, ist eine Frage für jemanden mit Zulassung, und die habe ich nicht.
Der dritte ist eine gewöhnliche öffentliche Spur, damit der Wert nachweislich an diesem Tag außerhalb meiner Maschinen existiert hat, lesbar ohne Spezialwerkzeug.
Das Prüfmaterial liegt absichtlich offen. Bis zum vergangenen August hatte ich Anker, die niemand mit Bordmitteln nachprüfen konnte, was die ganze Behauptung hohl machte. Heute kann ein Dritter die versiegelte Wurzel nehmen, den Zeitstempel-Token nehmen und beides mit openssl ts -verify gegen die veröffentlichte Kette prüfen. Eine Einzelheit, die man vorher wissen sollte: das Signaturzertifikat der Zeitstempelstelle läuft im Dezember 2027 ab, während der Beweis weiterträgt. Eine Prüfung nach diesem Datum braucht die Option -attime. Das ist eine Prüffrage, kein Ablaufdatum.
Was aufgezeichnet wird, und zu welchem Streit es gehört
Das Archiv zeichnet fünf Klassen von Dingen auf. Jede gibt es, weil ein bestimmter Streit immer wieder vorkommt. Hier hört das Abstrakte auf.
Die maschinenlesbaren Signale. robots.txt, ai.txt, der TDM-Vorbehalt, llms.txt, täglich geholt. Der Streit: ein KI-Anbieter sagt, der Vorbehalt war beim Crawl nicht da. Sie sagen, er war da. Aufgezeichnet auf beiden Seiten des fraglichen Datums, von zwei Maschinen, die einander nicht kennen, und in derselben Nacht versiegelt.
Eine Seite, heute, bevor sie sich ändert. Ein Anwalt sieht eine irreführende Angabe, eine fehlende Pflichtangabe, einen Preis, der gegen eine Vorschrift verstößt. Das Vorhersehbarste an dieser Lage ist, dass die Seite anders aussieht, sobald die Gegenseite antwortet. Üblich ist der Screenshot, also die eigene Aufzeichnung einer Partei von ihrem eigenen Bildschirm. Hier geht die URL in denselben Nachtlauf auf beiden Maschinen, und der Auszug für diesen Tag bringt die Bytes, die Antwort-Header, die TLS-Kette und die UTC-Zeit des Abrufs. Keine Pixel. Bytes. Wenn streitig ist, wie etwas aussah, ist das hier das falsche Werkzeug, und das steht auch so auf der Seite.
Benannte Seiten, täglich, solange es läuft. AGB, eine Preisliste, eine Pflichtinformation, eine Lizenzseite. Gestritten wird meist über die Fassung, die an einem bestimmten Tag galt, und die ehrliche Antwort braucht eine Reihe, keine Momentaufnahme.
Domain, DNS und Registry. Die RDAP-Antwort der Registry, die Antworten der autoritativen Nameserver und die Startseite. Das ist Domainstreit-Gebiet: wer hielt sie am Tag Y, wohin zeigte sie, was stand darauf. Bösgläubigkeit nach der UDRP wird über den Verlauf gezeigt, und diesen Verlauf stellt sich ein Beschwerdeführer heute selbst zusammen, aus dem, was er findet. Ein Markeninhaber kann auch Lookalike-Domains aufzeichnen lassen, bevor etwas passiert, denn nur so existiert der Verlauf in dem Moment, in dem sich herausstellt, dass man ihn braucht. Dasselbe Material beantwortet eine andere Frage für einen Cyber-Versicherer, der wissen will, wie Mail- und TLS-Konfiguration am Tag vor dem Vorfall aussahen und nicht nach dem Aufräumen.
Agenten-Endpunkte. Ein öffentlicher MCP-Endpunkt, täglich gefragt, welche Werkzeuge er erklärt, dazu die Agent Card daneben. Zwei entgegengesetzte Käufer, woran ich merke, dass der Streit echt ist. Der Betreiber, der belegen muss, dass sein Endpunkt das Werkzeug, das ein Agent angeblich benutzt hat, gar nicht erklärt hat. Und das Unternehmen, dessen Agenten an fremden Endpunkten hängen und das die stille Umdefinition eines Werkzeugs nach der Freigabe fürchtet. Einen Endpunkt zu fragen, was er kann, heißt ein POST zu schicken und nicht eine Datei zu holen, das ist eine andere Art von Crawl und brauchte einen eigenen Bau.
Plattform-AGB. Nach der P2B-Verordnung muss eine Plattform gewerblichen Nutzern Änderungen ihrer Bedingungen vorher ankündigen. Wer belegen will, dass eine Klausel ohne diese Ankündigung auftauchte, braucht eine tägliche Aufzeichnung von außen, von einer Seite, die niemand aufzuheben dachte.
Zwei davon laufen heute. Einiges andere wird erst gebaut, wenn es wirklich jemand bestellt, und das sage ich lieber hier, als eine Preisliste ein Lager andeuten zu lassen. Das Aufzeichnen ist der Teil, den man nicht nachträglich herstellen kann, deshalb läuft er zuerst und alles andere hängt sich daran.
Aufgenommen werden und die Daten abfragen sind zwei verschiedene Dinge
Das ist die Unterscheidung, die am häufigsten durcheinandergeht, deshalb steht sie hier für sich.
Aufgenommen sein heißt: eine Domain wird jede Nacht geholt, und was sie gesagt hat, geht in das Siegel dieser Nacht ein. Das ist ein Dauerzustand. Es entsteht nichts zu lesen. Kein Dokument, kein Bericht, und an einem normalen Tag gibt es nichts anzusehen. Der ganze Zweck ist, dass das Material später existiert, ob es nun je jemand verlangt oder nicht.
Die Daten abfragen ist die Gegenbewegung. Etwas ist schiefgegangen, ein Datum ist streitig, und jemand braucht ein Dokument: die gespeicherten Bytes für eine bestimmte Domain und einen bestimmten Zeitraum, mit den Hashes, dem Merkle-Pfad, den Tageswurzeln, den Ankern und der Anleitung, das alles ohne mich nachzuprüfen. Das ist ein Auszug, er entsteht je Fall, und er kostet jedes Mal getrennt, auch beim zweiten Mal in derselben Sache Jahre später.
Zwei Folgen aus dieser Trennung, beide überraschen:
- Man kann einen Auszug über eine Domain bestellen, die einem nicht gehört. Rund 128.000 EU-Domains liegen bereits im breiten Ring, nächtlich aufgezeichnet, weil ihre Reichweite sie dorthin gebracht hat und niemand mich gefragt hat. Ist die Domain, mit der man streitet, darunter, existiert das Material und ist älter als der Streit. Dafür musste niemand etwas kaufen.
- Die eigene Domain aufzeichnen zu lassen, bringt keine kostenlosen Auszüge. Das klingt knausrig, bis man es umdreht: der Preis darf nicht davon abhängen, wer fragt, sonst zahlt die Gegenseite für dasselbe Dokument mehr als mein Kunde. In diesem Moment ist das Archiv kein Zeuge mehr, sondern eine Partei. Die Trennung ist kein Abrechnungstrick, das ist die Neutralitätsbedingung bei der Arbeit.
Die Lügen durch Weglassen, die sich ein Archiv nicht leisten darf
Hier könnte ein Archiv schummeln, ohne je einen falschen Satz zu schreiben.
Nicht jede Domain wird gleich aufgezeichnet. Rund 128.000 EU-Domains liegen im breiten Ring: ihre Signaldateien werden täglich geholt, die Startseite aber nur wöchentlich und in der Größe gekappt. Ein deutlich kleinerer Kernring bekommt alles, täglich, vollständig. Das ist die ehrliche Form eines Systems, das aus einer einzigen Tasche bezahlt wird. Der breite Ring ist genau deshalb billig, weil er weniger tut.
Daraus wird eine Falle. Man stelle sich einen Auszug vor, bestellt für einen echten Streit, der eine Seite liefert, die sechs Tage vor dem entscheidenden Datum erfasst wurde, oder eine an einer Größengrenze abgeschnittene Datei, und der keines von beidem erwähnt. Er sähe vollständig aus. Er läse sich verbindlich. Es wäre das Schlimmste, was dieses Archiv tun kann, schlimmer als eine offene Lücke, denn mit einer Lücke kann man arbeiten, mit einer verschwiegenen nicht.
Seit dieser Woche sagt deshalb jeder Auszug auf seiner ersten Seite, vor jedem Prüfschritt: in welchem Ring die Domain lag, welche Kadenz galt, ob eine Kappe griff, wie viele Bytes gespeichert wurden und wie viele der Server geliefert hat. Dazu zwei Regeln, die mich eine Überarbeitung gekostet haben:
- Trägt eine Beobachtung in ihrer versiegelten Herkunft kein Kappungs-Kennzeichen, nennt der Auszug sie unbekannt. Nie “vollständig”. Unbekannt ist ein ehrliches Wort. Vollständig ist eine Behauptung.
- Reicht die laufende Datenbank nicht mehr über das ganze Fenster, sagt der Auszug ausdrücklich, dass ein fehlender Tag kein Beleg für Nichtbeobachtung ist. Er heißt nur, dass dieses Dokument über diesen Tag nichts sagen kann.
Dieselbe Disziplin gilt für die eigene Geschichte des Systems. Der zweite Zeuge läuft erst seit dem 4. August 2026. Alles vom 22. Juli bis zum 3. August ist dauerhaft nur einfach bezeugt, und das öffentliche Log weist es Tag für Tag aus. Doppelte Bezeugung lässt sich nicht nachrüsten, weil sie eine Eigenschaft der Vergangenheit ist und nicht der Software. Ein Tag, der 3. August, wurde mitten im Siegeln vom OOM-Killer des Kernels abgeräumt und erst zwei Tage später versiegelt. Dieser Tag trägt dauerhaft ein Kennzeichen, das genau das sagt. Ich hätte ihn still neu versiegeln können. Genau deshalb habe ich es nicht getan.
Was es bewusst nicht tut
Es benachrichtigt niemanden, wenn sich eine Seite ändert. Auch dann nicht, wenn Kunden danach fragen, und sie fragen. In dem Moment, in dem ich einer Seite sage, dass sich etwas bewegt hat, habe ich eine Seite gewählt.
Es bewertet, benotet und vergleicht niemanden. Es gibt keine öffentliche Volltextsuche über das gesammelte Material, was keine Produktentscheidung ist, sondern aus meiner eigenen Interessenabwägung folgt: im öffentlichen Interesse aufzuzeichnen ist das eine, das Rohmaterial erneut zu veröffentlichen etwas anderes.
Und es sagt niemandem, was das alles für ihn bedeutet. Ich schreibe Software, die festhält, was eine Maschine zu einem Zeitpunkt gesehen hat, und die jeden nachrechnen lässt. Ob das vor einem Gericht, einer Behörde oder einem Gegner trägt, ist eine Frage für einen Anwalt, und ich bin froh darüber, denn das ist ein anderer Beruf mit einer anderen Prüfung.
Prämie und Schadensfall
Die kaufmännische Logik habe ich länger gebraucht zu akzeptieren, als ich zugeben möchte. Die Aufzeichnung ist die Prämie. Der Auszug, Jahre später, wenn jemand behauptet, Ihre Seite habe etwas gesagt, was sie nicht gesagt hat, ist der Schadensfall.
Die meisten, die zahlen, werden nie etwas bestellen. Das ist kein Fehler im Modell, das ist das Modell.
Womit wir wieder beim ersten Absatz sind. Ich habe zwei Maschinen in zwei Ländern gebaut, damit meine eigene Ehrlichkeit aufhört, tragend zu sein. Das richtige Maß an Vertrauen in mich ist an dieser Stelle: keines. Das ist die Funktion, nicht der Mangel.
Wer wissen will, ob eine Domain bereits aufgezeichnet wird, bekommt das über die Abdeckungsprüfung auf machinewitness.eu kostenlos beantwortet, und das tägliche Wurzel-Log ist öffentlich. Wer zu den Menschen gehört, die erst die Prüfanleitung lesen und dann glauben: gut. Für die ist das gebaut.
Neue Artikel per E-Mail
Eine Mail, wenn ein neuer Artikel erscheint. Sonst nichts: keine Verkaufsstrecke, kein Tracking, keine „nur eine kurze Frage“-Nachfassmails. Abmelden mit einem Klick, jederzeit.
Double Opt-in: Du bekommst zuerst eine Bestätigungsmail. Deine Adresse wird ausschließlich für diese Artikel genutzt. Verantwortlich: Martin Schenk S.L. · Datenschutz