Dokument mit der Blockchain versiegeln

DE | EN

Wähle eine Datei mit dem Dateidialog aus oder lade eine Datei durch Ziehen und Ablegen in dem strichlierten Bereich hoch.

Zurücksetzen
:

Zurücksetzen

Mit folgenden Befehlen kannst du mit OpenSSL den Hashwert selbst berechnen und eine Datei zum Nachweis signieren.

Hashwert berechnen
cat file.dat | openssl dgst -sha256
Datei signieren und Hashwert berechnen
cat file.dat | \
    gpg --detach-sig -u your.email@provider.com | \ 
    openssl dgst -sha256

Verwende dieses Formular, um den Wurzelknoten eines Merkle Baums anhand von Hashwert und Audit Proof zu berechnen.





Zurücksetzen
Informationen zu Hashwert 006748c21efaf8fe67b833d82cba7955619c3c3b06e11ed6562fbf6a1cb06f2c
  • wurde am auf dieser Webseite erstellt
  • wurde in Ethereum gespeichert -
    So kannst du das Datum in der Ethereum Blockchain unabhängig überprüfen:
    1. Erstelle von der Datei den Hashwert (006748c21efaf8fe67b833d82cba7955619c3c3b06e11ed6562fbf6a1cb06f2c) - zum Beispiel hier
    2. Berechne mit dem Hashwert und den folgenden Werten den Merkle Wurzelknoten wie in RFC 6962 beschrieben:
      +871af1a57fd234279d7284584cee6d86d3e89a9cca6a5a0ce6d077f718e77d6e, -c852b09fe5f06a60cb37dec17f16835ea7fa4e9116ad858b26b480eea9941036, -a304419459b09bd54a05f3bbe7fc71cbbffdbdcc9a6a4bcb1cafcc9aa6f616b9, -eea7adcba9d10f3aecc345e2a89cb7ca0f67a9b16274076be8995767df467e60
    3. überprüfe, ob dieser Wert (d77bfa77a79543cb5dadc0498fd97a609ac8dbb65b11e750830e739fcc8ee566) in der Ethereum Blockchain an der folgenden Adresse gespeichert ist: 51b0341d981502e89f02f50d071264a6c1a4b8650794c9d6e52ea9708013719f (auf auf Etherscan.io anzeigen)
    4. der in der Ethereum Blockchain an der angegebenen Adresse gespeicherte Zeitstempel ist der unabhängig verifizierte Zeitpunkt für die Existenz der Datei

     

  • wurde am mittels digitalem Zeitstempel bestätigt - | Stempel ansehen
    So kannst du den digitalen Zeitstempel von freetsa.org selbst überprüfen:
    1. lade file.tsr, cacert.pem und tsa.crt herunter
    2. führe folgenden Befehl im Verzeichnis mit den heruntergeladenen Dateien aus:
      openssl ts -verify -data <(echo -n "006748c21efaf8fe67b833d82cba7955619c3c3b06e11ed6562fbf6a1cb06f2c") \
                      -in file.tsr -CAfile cacert.pem -untrusted tsa.crt

Klicke auf das jeweilige Thema, um weitere Informationen zu erhalten.

Die Blockchain sind kryptographisch miteinander verbundene und dezentral gespeicherte Datensätze. Jeder Datensatz enthält dabei einen Fingerabdruck (Hashwert) des vorhergehenden Datensatzes, einen Zeitstempel und weitere Transaktionsdaten. Dadurch, dass spätere Datensätze auf früheren Datensätzen aufbauen und diese damit als richtig bestätigen, ist es unmöglich diese früheren Daten zu ändern oder zu löschen, ohne alle darauf aufbauenden Daten ebenfalls zu ändern. Eine solche Änderung ist aber durch die verteilte Speicherung der Daten nicht möglich und würde sofort erkannt werden.

Beim Versiegeln von Dokumenten wird diese Eigenschaften der garantierten Datenintegrität einer Blockchain verwendet.

Der Verein zur Förderung der selbstständigen Nutzung von Daten hat es sich zum Ziel gesetzt, die selbstbestimmte Nutzung persönlicher Daten durch Privatpersonen zu fördern. Die Blockchain-Technologie ermöglicht nun auch für die private Datennutzung einen einfachen und sicheren Weg zum Nachweis von Datenintegrität und daher bietet der Verein dieses Service an. Durch die Kombination von mehreren Vorgängen - derzeit erfolgt die Gruppierung pro Tag - können die dafür notwendigen Transaktionskosten gering gehalten werden und sind durch das Vereinsbudget abgedeckt.

Auf Github ist der Quellcode für diese Webseite unter der MIT-Lizenz frei verfügbar: https://github.com/OwnYourData/app-seal

Der Dienst zum Versiegeln von Dokumenten verwendet im Hintergrund eine frei zugängliche API, die ebenfalls von anderen Diensten genutzt werden kann. Mittels HTTP POST Request kann ein Hashwert sowohl in die Blockchain geschrieben werden, oder - wenn der Hashwert zuvor bereits verwendet wurde - wird die Adresse in der Blockchain zurückgegeben. Da alle Hashwerte eines Tages in einem Merkle-Baum kombiniert werden, ist neben der Adresse in der Blockchain auch der Audit-Proof wie in RFC 6962 angegeben.

Diese API ist mittels Swagger hier beschrieben (nur in englischer Sprache): https://blockchain.ownyourdata.eu/doc
Auf Github ist der Quellcode für das API-Service unter der MIT-Lizenz frei verfügbar:

Verwende den folgenden Aufruf, um einen Hashwert mittels API in der Blockchain zu speichern:

$ curl -X POST "https://blockchain.ownyourdata.eu/api/doc?hash=006748c21efaf8fe67b833d82cba7955619c3c3b06e11ed6562fbf6a1cb06f2c"

Beim ersten Aufruf wird folgende JSON-Struktur als Rückgabewert geliefert:

{
  "status": "new",
  "address": "",
  "root-node": "",
  "audit-proof": [],
  "dlt-timestamp": "",
  "oyd-timestamp": "2018-09-01T22:39:16Z"
}

Sobald alle eingegangenen Hashwerte eines Tages tatsächlich in die Blockchain geschrieben wurden, enthält der Rückgabewert folgende weitere Informationen:

{
  "status": "exist",
  "address": "0xcf4a0cf4b9ea6d10c0407680fe1f73df1a59c362db29a1863e14d85fcdb69c9c",
  "root-node": "10611bc55c740b46517ce15ad82b79350468affc4660379771475eaa494ec3fd",
  "audit-proof": "+661eec906b6a88b3bf751d7f5c62b84de03fadaed78e9398efebf408b2a3236c,
                  -0cdf07531250367444ae8a3bfcbb0b928e1313ece65f2a45abcc2226e278d6cd,
                  -5cbe1017c15d83ce8f4c02b4c1d8d2fa0c51bbe281363d98ef7dc33ffe26a072",
  "dlt-timestamp": "2018-09-02T06:00:17Z",
  "oyd-timestamp": "2018-09-01T22:39:16Z"
}

Anmerkung: die Vorzeichen (+,-) im Feld audit-proof geben an, ob der jeweilige Hashwert als linker (+) oder rechter (-) Knoten bei der Überprüfung zur Berechnung des Wurzelknotens zu betrachten ist - siehe RFC 6962. Als Hashfunktion wird generell SHA256 verwendet.

Ein Merkle-Baum ist eine sogenannter Binärbaum, d.h., jeder Knoten besitzt höchstens 2 Kindknoten. Die Blätter sind dabei Hash-Werte und jeweils 2 benachbarte Knoten bilden einen übergeordneten Knoten. Der Hash-Wert eines Blattes, gemeinsam mit dem Audit-Proof (lt. RFC 6962) ergibt eindeutig die Wurzel des Merkle-Baums. Wichtig ist bei der Anwendung des Audit-Proofs die Angabe, ob es sich jeweils um den linken oder rechten Knoten im Pfad handelt.

In der vorliegenden Implementierung werden die Werte des Audit-Proofs durch + (linker Knoten) und - (rechter Knoten) gekennzeichnet. Gemeinsam mit dem Hashwert kann so der Wurzelknoten berechnet werden. Das Verfahren des Merkle Baums wird verwendet, um alle eingegangen Hash Werte eines Tages in eben diesem Binärbaum anzuordnen und dann nur den Wurzelknoten selbst in der Blockchain zu speichern.

Vertrauenswürdiges Zeitstempeln ist ein Prozess, bei dem Datum und Zustand eines Dokuments sicher verfolgt werden können. Sicherheit bedeutet hier, dass niemand - nicht einmal der Besitzer des Dokuments - in der Lage ist, den Zeitstempel nach der Erstellung zu ändern. Der hier angebotene Zeitstempel folgt dem Standard RFC 3161 und kann auf zeitsensible Transaktionen durch unabhängig verifizierte und überprüfbare Datums- und UTC-Koordinaten (Coordinated Universal Time) angewendet werden.

Das Hinzufügen eines vertrauenswürdigen Zeitstempels zu einem Dokument bietet ein digitales Siegel für die Datenintegrität und ein vertrauenswürdiges Datum und die Uhrzeit, zu der die Transaktion stattgefunden hat. Empfänger von Dokumenten mit einem vertrauenswürdigen Zeitstempel können überprüfen, wann das Dokument oder der Code digital signiert wurde, sowie überprüfen, ob das Dokument oder der Code nach dem Datum, für das der Zeitstempel gilt, geändert wurde.