Blockchain-Zeitstempel für Softwareteams
Von BlockchainSignZuletzt aktualisiert am
Versionskontrollsysteme bieten eine detaillierte Historie und ein schwaches Datum. Commit-Zeitstempel werden von Ihrer Maschine geschrieben, und ein Rebase kann jede beliebige Historie erzeugen. Für alles, was als Beweismittel dienen könnte, ist das ein Problem, das zehn Dollar wert ist.
Die Lücke in Ihrer bestehenden Historie
Git zeichnet viel auf, präzise und für ingenieurtechnische Zwecke geeignet. Als Beweismittel hat es jedoch eine spezifische Schwäche: Die Daten können Sie selbst schreiben.
git commit --date, ein interaktives Rebase oder eine Uhreinstellung — allesamt erzeugen sie eine Historie, die völlig normal aussieht und behauptet, was immer Sie wollen. Das ist intern in Ordnung. Gegen einen motivierten Gegner ist das jedoch kaum ein stichhaltiger Anspruch, und dieselbe Schwäche wirkt sich auch gegen Sie aus, wenn Sie sich verteidigen.
Die eigenen Zeitstempel eines gehosteten Repositorys sind besser, gehören aber einer Plattform, können bei Verlust des Accounts verloren gehen und lassen sich von externen Personen nicht unabhängig verifizieren.
Was Sie verankern sollten
Releases. Der Hash eines Release-Archivs oder eines Repository-Bundles, versehen mit einem Zeitstempel bei jedem Release. Das schafft einen datierten, manipulationssicheren Nachweis darüber, was genau ausgeliefert wurde. Das ist nützlich bei einer Verletzungsklage und ebenso nützlich bei der Verteidigung dagegen — nachzuweisen, dass Ihre Version dem kopierten Code vorausgeht, ist im Grunde derselbe Vorgang in umgekehrter Richtung.
Zustände vor der Offenlegung. Bevor Code an einen Kunden, einen Prüfer, einen Erwerber oder einen Treuhänder geht. Der Hashwert wird in Ihrem Browser berechnet und nur dieser Hashwert übermittelt. Das ist entscheidend, wenn der Code das Geschäftsgeheimnis ist — siehe Markenschutz vs. Urheberrecht für Quellcode, um zu verstehen, warum Geheimhaltung oft der eigentliche Schutzmechanismus ist.
Design- und Architekturdokumente. Häufig die wertvollsten und am wenigsten geschützten Artefakte, die ein Team besitzt.
Daten-Snapshots. Wenn Sie nachweisen müssen, dass ein Datensatz zu einem bestimmten Zeitpunkt in einem bestimmten Zustand war.
So setzen Sie es in der Praxis um
Hashen Sie das Artefakt, nicht den Arbeitsbaum. Das zuverlässige Muster ist ein deterministisches Archiv:
git archiveodergit bundlefür einen Repository-Zustand- Ein Build-Artefakt für einen Release
- Ein Tarball für ein Verzeichnis, mit reproduzierbarer Reihenfolge, wenn Sie den Hash-Wert wiederholbar halten möchten
Versorgen Sie diese Datei anschließend mit einem Zeitstempel. Speichern Sie das Zertifikat zusammen mit dem Release und notieren Sie den entsprechenden Tag. Jeder kann später das Archiv neu erstellen, hashen und mit dem Register vergleichen.
Warum nichts hochgeladen wird
Bei proprietärem Code ist das Vertraulichkeitsgebot absolut, und ein Zeitstempeldienst, der die Datei haben will, ist ein Dienst, den Sie nicht nutzen können.
Hier wird die Datei in Ihrem Browser über die Web Crypto API gehasht, und es wird nur der 64-stellige SHA-256-Hashwert übermittelt. Es gibt keinen Endpunkt, der das Artefakt annimmt. Wenn Sie den Hash lieber selbst generieren möchten, erledigt das das kostenlose Hash-Tool lokal und erzeugt eine byteidentische Ausgabe wie shasum -a 256.
Was es beweist
Dass das Artefakt bis zu diesem Zeitpunkt existierte und sich nicht verändert hat. Es beweist nicht, wer es geschrieben hat, es ist kein Patent und es registriert auch kein Urheberrecht — siehe Existenznachweis vs. Urheberschaftsnachweis.
Das Urheberrecht an Ihrem Code entsteht automatisch. Was Ihnen meist fehlt, ist ein unanfechtbares Datum, und genau diese Lücke schließt dieser Ansatz.