{
    "kind": 30023,
    "id": "16b601ec61841620138bfb3e7bd7a6f295a669695fb378673f6ed1c984dd2326",
    "pubkey": "c1baf4f74cd829963828b1da8d73e52cc94caa6d8dc944f7ca450a75c4b3311f",
    "created_at": 1793401028,
    "tags": [
        [
            "title",
            "twostamp: Zwei Zeitstempel f\u00fcr jede Datei, in einem Befehl"
        ],
        [
            "d",
            "twostamp-zwei-zeitstempel-fuer-jede-datei"
        ],
        [
            "summary",
            "twostamp stempelt jede Datei doppelt: RFC 3161 \u00fcber freetsa.org und OpenTimestamps in der Bitcoin-Blockchain. Nur Pr\u00fcfsummen verlassen den Rechner, pr\u00fcfen geht mit Standardwerkzeugen."
        ],
        [
            "published_at",
            "1793401028"
        ]
    ],
    "content": "# twostamp: Zwei Zeitstempel f\u00fcr jede Datei, in einem Befehl\n\nDiese Woche habe ich einen Livestream gesichert. Wie man so einen Stream \u00fcberhaupt herunterl\u00e4dt, habe ich in [Videos downloaden: Warum Web-Downloader an Twitch-Streams scheitern](https://stevennoack.de/artikel/kurze-note-in-stevens-stimme-zum-suchbegriff-videos-download/) beschrieben. Das Video lag also auf meiner Platte, und dann kam die Frage: Wie belege ich sp\u00e4ter, dass ich die Datei an genau diesem Abend hatte? Und dass ich seitdem nichts daran ver\u00e4ndert habe?\n\nEine Pr\u00fcfsumme allein reicht daf\u00fcr nicht. Sie sagt, ob die Datei noch dieselbe ist. Wann ich sie hatte, sagt sie nicht. Daf\u00fcr braucht es einen Zeitstempel von jemandem, der nicht ich bin.\n\nEs gibt zwei Wege. RFC 3161 ist ein alter Standard: Man schickt die Pr\u00fcfsumme an einen Zeitstempeldienst, und der unterschreibt sie mit Datum und Uhrzeit. Das dauert eine Sekunde, der Dienst freetsa.org macht das kostenlos. OpenTimestamps verankert die Pr\u00fcfsumme in der Bitcoin-Blockchain. Das dauert ein paar Stunden, h\u00e4ngt daf\u00fcr an keiner Firma.\n\nIch wollte beides. Wenn der eine Dienst eines Tages weg ist oder angezweifelt wird, steht der andere noch. Daraus ist ein kleines Werkzeug geworden: twostamp.\n\n```\ntwostamp stamp video.mp4 notizen.txt\ntwostamp verify\ntwostamp upgrade\n```\n\nDer erste Befehl schreibt eine Liste mit Pr\u00fcfsummen und holt beide Zeitstempel. Der zweite pr\u00fcft alles und meldet jede Abweichung. Den dritten l\u00e4sst man ein paar Stunden sp\u00e4ter laufen, dann holt er die Best\u00e4tigung aus der Blockchain nach.\n\nRaus gehen nur die Pr\u00fcfsummen. Das Video selbst verl\u00e4sst meinen Rechner nie. Pr\u00fcfen kann jeder auch ohne mein Werkzeug, mit `shasum`, `openssl` und dem OpenTimestamps-Client. Wer meinen Beleg bekommt, muss mir also nicht vertrauen.\n\nBevor ich es ver\u00f6ffentlicht habe, habe ich nachgesehen, was es schon gibt. Die Idee mit den zwei Zeitstempeln ist nicht neu, ich habe sie in mehreren Projekten auf GitHub gefunden. Dort ist sie aber immer fest in ein gr\u00f6\u00dferes Produkt eingebaut. Ein einzelnes Werkzeug f\u00fcr beliebige Dateien, ohne Konto und ohne Dienst dahinter, habe ich nicht gefunden.\n\nGedacht ist twostamp vor allem f\u00fcr Leute, die Material aus dem Netz sichern, also Journalisten und OSINT-Rechercheure. Die Vereinten Nationen haben daf\u00fcr einen Leitfaden herausgegeben, das [Berkeley Protocol](https://www.ohchr.org/en/publications/policy-and-methodological-publications/berkeley-protocol-digital-open-source). Darin steht, dass man Pr\u00fcfsummen bilden und jeden Schritt dokumentieren soll. twostamp liefert den Teil mit dem Zeitpunkt.\n\nEine Grenze gibt es. freetsa.org ist kein qualifizierter Anbieter nach der EU-Verordnung eIDAS, und vor Gericht z\u00e4hlt ein qualifizierter Zeitstempel mehr. Den kann man in twostamp einstellen, er kostet dann Geld.\n\nDas ganze Werkzeug sind 88 Zeilen Bash unter MIT-Lizenz. Code, Anleitung und eine GitHub Action liegen auf [github.com/MacStenk/twostamp](https://github.com/MacStenk/twostamp).",
    "sig": "55c54795a940d08f602cb0163e645e609953b075c6c81d81d5c84c95751c433078d6020858bff23aa3107a719f66a2d6decd8c192ea969ef09bb2c9ec0e76fbb"
}
