Was bei einer Aufnahme mit Ihren Daten geschieht
Eine einzelne Aufnahme über die ProofSnap API oder das Dashboard durchläuft fünf Schritte:
- Sie übermitteln eine URL per HTTPS, entweder über die API mit Ihrem API-Schlüssel oder im Dashboard.
- Ein Browser auf ProofSnap-Servern in Frankfurt lädt die Seite. Er verbindet sich ausschließlich mit öffentlichen Adressen. Im Live-Modus wird die URL zusätzlich an das Internet Archive gesendet, sofern Sie dies nicht abschalten.
- Jede Datei wird mit SHA-256 gehasht, und das Manifest wird signiert. Nur der Hash des Manifests geht an die OpenTimestamps-Kalender und, wenn Sie einen qualifizierten Zeitstempel anfordern, an Disig a.s.
- Das versiegelte Paket wird verschlüsselt in Frankfurt gespeichert; im Live-Modus erstellte Pakete werden zusätzlich in Irland kopiert.
- Sie laden es herunter oder erhalten einen signierten Webhook, sobald es bereitsteht.
Serverstandort: wo die API betrieben wird
- API
- Amazon Web Services in der EU, Frankfurt (eu-central-1).
- Konto- und Aufnahmedatensätze
- Google Cloud Firestore in der EU, Frankfurt (europe-west3).
- Anmeldung
- Firebase Authentication, ein globaler Dienst von Google.
- Beweispakete
- Amazon S3 in der EU, Frankfurt (eu-central-1), mit einer zweiten Kopie jedes im Live-Modus erstellten Pakets in Irland (eu-west-1).
Was außerhalb der EU verarbeitet wird
Beweispakete und Aufnahmedatensätze bleiben in Frankfurt und Irland. Nur die folgenden eng begrenzten Daten können von Diensten außerhalb der EU verarbeitet werden:
- Die erfasste URL, die bei Live-Aufnahmen standardmäßig an das Internet Archive gesendet wird (Sie können dies abschalten).
- Der Hash des Manifests, der an die öffentlichen OpenTimestamps-Kalender gesendet wird. Es werden keine Dateiinhalte übermittelt.
- Der Hostname der erfassten Website, der über Google Public DNS und Cloudflare DNS aufgelöst und bei öffentlichen RDAP- und WHOIS-Diensten abgefragt wird.
- Anmeldedaten in Firebase Authentication und Zahlungsdaten bei Stripe.
Serverseitige Aufnahme
Die Seite wird auf ProofSnap-Servern geladen und erfasst, nicht auf Ihrem Computer. Sie senden eine URL und erhalten ein versiegeltes Beweispaket. Der Aufnahmebrowser verbindet sich ausschließlich mit öffentlichen Adressen: Private Adressen, Loopback-Adressen und Cloud-Metadaten-Adressen werden abgewiesen, auch nach einer Weiterleitung.
Standardmäßig wird die URL einer im Live-Modus erstellten Aufnahme zusätzlich an das Internet Archive (web.archive.org) gesendet, damit
ein unabhängiger öffentlicher Snapshot entstehen kann. URLs, die privat wirken, etwa Anmelde- und Freigabelinks oder Links zum
Zurücksetzen des Passworts sowie URLs, die ein Token enthalten, werden nie gesendet. Eine URL mit Query-String wird
nur gesendet, wenn Sie die Aufnahmeoption external_archive auf
true setzen. Setzen Sie sie auf false, um die Archivierung vollständig abzuschalten. Das Ergebnis der Archivierung wird im Paket vermerkt.
Wie jedes Paket versiegelt wird
- Hashes
- Jede Beweisdatei im Paket wird mit SHA-256 gehasht und in
manifest.jsonaufgeführt. - Signatur
- Die Datei
manifest.jsonwird mit einem RSA-4096-Schlüssel signiert, der eigens für dieses Paket erzeugt wird. Der private Schlüssel wird nach dem Signieren verworfen, der öffentliche Schlüssel liegt dem Paket bei. - Bitcoin-Zeitstempel
- Der Hash des Manifests wird an OpenTimestamps-Kalender übermittelt, um ihn in der Bitcoin-Blockchain zu verankern. Sobald die Verankerung bestätigt ist, wird der vollständige Nachweis zusammen mit dem Paket gespeichert. Kann kein Nachweis hinzugefügt werden, wird dies im Paket vermerkt.
- Qualifizierter Zeitstempel
- Wenn Sie einen solchen anfordern (nur mit Live-API-Schlüsseln, Abrechnung pro Zeitstempel), wird ein qualifizierter elektronischer Zeitstempel (RFC 3161) von Disig a.s. eingeholt, einem qualifizierten Vertrauensdiensteanbieter auf der EU-Vertrauensliste. Kann kein Zeitstempel hinzugefügt werden, wird dies im Paket vermerkt.
- Offline-Prüfung
- Jedes Paket enthält Prüfskripte (
verify.shfür macOS und Linux,verify.ps1für Windows), die es offline prüfen, ohne auf ProofSnap angewiesen zu sein.
Ausstellungsregister
ProofSnap verzeichnet den Hash jedes Manifests, das es ausstellt. Jeder kann einen Hash mit
GET /v1/ledger/{hash} abfragen. Ein Treffer bestätigt, dass ProofSnap genau dieses Paket ausgestellt hat.
Zweite Kopie
Jedes im Live-Modus erstellte Beweispaket wird in einen separaten Amazon-S3-Bucket in einer anderen EU-Region
(Irland) kopiert. GET /v1/captures/{id} meldet für jede Aufnahme den Status
der Kopie. Die Kopie wird zusammen mit dem Original gelöscht.
Aufbewahrung
Beweise werden 10 Jahre ab dem Datum der Aufnahme aufbewahrt. Bei einer Seite, die nach Zeitplan erfasst wird, läuft die Frist ab dem letzten Zeitpunkt, zu dem die erfasste Version nachweislich aktuell war:
- Jede Prüfung, die die Seite unverändert vorfindet, verlängert die Aufbewahrungsfrist der aktuellen Aufnahme.
- Bei einer Aufnahme, die durch eine neuere Version ersetzt wurde, läuft die Frist ab dem Zeitpunkt der Ersetzung.
Nach dem Ende eines Abonnements haben Sie 30 Tage Zeit, alles herunterzuladen. Der Tarif „Archive only“ hält die Beweise lesbar, herunterladbar und überprüfbar, wenn Sie keine neuen Aufnahmen mehr erstellen.
Löschung
Ein Paket, das Sie im Dashboard oder über die API löschen, wandert zunächst in den Papierkorb, wo es innerhalb von 30 Tagen wiederhergestellt werden kann. Danach wird jede gespeicherte Version aus beiden Kopien entfernt. Das endgültige Löschen eines Pakets entfernt es sofort. Wenn die Aufbewahrungsfrist endet oder die 30-tägige Downloadfrist eines Kontos abläuft, wird jede gespeicherte Version auf dieselbe Weise entfernt. Eine Aufnahme mit Löschsperre kann nicht gelöscht werden, solange die Löschsperre besteht. Ein Eintrag darüber, wer das Paket wann gelöscht hat, bleibt erhalten, nicht jedoch der Inhalt des Pakets.
Zugriffskontrolle
- API-Schlüssel
- API-Schlüssel werden ausschließlich als SHA-256-Hashes gespeichert. Der vollständige Schlüssel wird einmalig bei der Erstellung angezeigt. Ein widerrufener Schlüssel ist spätestens nach 60 Sekunden ungültig. Im Tarif „Website Archive“ sind API-Schlüssel schreibgeschützt: Mit ihnen können Sie Aufnahmen auflisten, herunterladen und prüfen sowie Webhook-Abonnements verwalten. In diesem Tarif werden Aufnahmen im Dashboard gestartet und Zeitpläne dort angelegt.
- Anmeldung im Dashboard
- Firebase Authentication. Sie benötigen eine bestätigte E-Mail-Adresse, um Schlüssel zu erstellen, Aufnahmen zu starten oder einen Tarif zu kaufen.
- Zugriffsverlauf
- Wenn eine andere Person als der Ersteller einer Aufnahme, etwa der Inhaber des Unternehmenskontos oder ein Teammitglied mit Zugriff auf das Mandat, sie herunterlädt, prüft oder anderweitig darauf zugreift, wird dieser Zugriff im Zugriffsverlauf der Aufnahme protokolliert.
- Rate-Limits
- Für Aufnahme-, Zertifizierungs- und andere kostenpflichtige Anfragen gilt ein Rate-Limit pro Konto, über alle Schlüssel des Kontos hinweg.
Verschlüsselung
- Bei der Übertragung
- Der gesamte Datenverkehr von API, Dashboard und Webhooks läuft über HTTPS (TLS).
- Bei der Speicherung
- Beweispakete werden in beiden Buckets mit AES-256 verschlüsselt (serverseitige Verschlüsselung von Amazon S3). Beide Buckets blockieren jeden öffentlichen Zugriff.
Webhooks
- Signatur
- Webhook-Zustellungen werden nach dem Standard-Webhooks-Schema mit HMAC-SHA256 signiert. Zustellungen an eine
webhook_url, die in einer Anfrage oder einem Zeitplan festgelegt wurde, werden mit dem Signatur-Secret des API-Schlüssels signiert, mit dem sie festgelegt wurde. Dieses Secret kann rotiert werden; altes und neues Secret gelten dabei 24 Stunden lang parallel. Ein Webhook-Abonnement auf Kontoebene hat ein eigenes Signatur-Secret, das einmalig bei der Erstellung des Abonnements angezeigt wird. - Ziele
- Zustellungen gehen ausschließlich an öffentliche HTTPS-Endpunkte. Die Adresse wird vor jeder Zustellung erneut aufgelöst und geprüft, und die Verbindung wird nur zur geprüften Adresse aufgebaut. Private Adressen, Loopback-Adressen und Cloud-Metadaten-Adressen werden so auch nach einer DNS-Änderung abgewiesen. Weiterleitungen wird nicht gefolgt.
- Wiederholungen
- Eine Zustellung, bei der eine Zeitüberschreitung eintritt, die keine Verbindung herstellen kann oder die eine Fehlerantwort erhält (außer 410 Gone), wird bis zu fünfmal innerhalb von etwa 35 Stunden wiederholt (nach 5 Min., 30 Min., 2 Std., 8 Std. und 24 Std.), jeweils mit derselben
webhook-id, sodass Empfänger Duplikate verwerfen können. Jeder Versuch wartet höchstens 10 Sekunden auf eine Antwort. - Downloads
- Wiederholte Zustellungen und Zustellungen aus Abonnements enthalten nicht den 24 Stunden lang gültigen Downloadlink. Der Empfänger kann mit
GET /v1/captures/{id}einen neuen abrufen. - Abonnements
- Ein Webhook-Abonnement auf Kontoebene wird deaktiviert, wenn sein Endpunkt mit 410 Gone antwortet, wenn 5 Tage lang keine Zustellung erfolgreich war oder, falls es mit einem API-Schlüssel erstellt wurde, wenn dieser Schlüssel widerrufen wird. Ereignisse werden 30 Tage lang aufbewahrt und können mit
GET /v1/eventsabgerufen werden.
Dienste von Drittanbietern
- Zahlungen
- Zahlungen werden von Stripe abgewickelt. ProofSnap speichert keine Kartennummern.
- Konto-E-Mails
- MailerSend versendet die E-Mails zur Bestätigung der E-Mail-Adresse und zum Zurücksetzen des Passworts.
- Zeitstempel
- Die OpenTimestamps-Kalender und, bei einem qualifizierten Zeitstempel, Disig a.s. erhalten nur den Hash des Manifests, niemals die Beweise selbst.
- Abfragen zur Website
- Um die erfasste Website zu dokumentieren, wird ihr Hostname über Google Public DNS und Cloudflare DNS aufgelöst, und ihre Domainregistrierung wird bei öffentlichen RDAP- und WHOIS-Diensten abgefragt.