Co dzieje się z Twoimi danymi podczas przechwycenia
Pojedyncze przechwycenie wykonane przez API ProofSnap lub w panelu przechodzi przez pięć etapów:
- Wysyłasz adres URL przez HTTPS: przez API (z użyciem swojego klucza API) albo w panelu.
- Przeglądarka na serwerach ProofSnap we Frankfurcie wczytuje stronę. Łączy się wyłącznie z adresami publicznymi. W trybie produkcyjnym adres URL trafia też do Internet Archive, chyba że to wyłączysz.
- Dla każdego pliku obliczany jest skrót SHA-256, a manifest zostaje podpisany. Do kalendarzy OpenTimestamps oraz, jeśli zażądasz kwalifikowanego znacznika czasu, do Disig a.s. trafia wyłącznie skrót manifestu.
- Zapieczętowany pakiet jest przechowywany w postaci zaszyfrowanej we Frankfurcie, a pakiety produkcyjne mają drugą kopię w Irlandii.
- Gdy pakiet będzie gotowy, pobierasz go albo otrzymujesz podpisany webhook.
Gdzie są przechowywane dane
- API
- Amazon Web Services w UE, Frankfurt (eu-central-1).
- Dane konta i przechwyceń
- Google Cloud Firestore w UE, Frankfurt (europe-west3).
- Logowanie
- Firebase Authentication, globalna usługa Google.
- Pakiety dowodowe
- Amazon S3 w UE, Frankfurt (eu-central-1). Każdy pakiet utworzony w trybie produkcyjnym ma drugą kopię w Irlandii (eu-west-1).
Co jest przetwarzane poza UE
Pakiety dowodowe i dane przechwyceń pozostają we Frankfurcie i w Irlandii. Usługi spoza UE mogą przetwarzać wyłącznie następujące dane:
- Adres URL przechwycenia, który w przypadku przechwyceń produkcyjnych jest domyślnie wysyłany do Internet Archive (możesz to wyłączyć).
- Skrót manifestu, wysyłany do publicznych kalendarzy OpenTimestamps. Treść plików nie jest wysyłana.
- Nazwa hosta przechwyconej witryny, rozwiązywana przez Google Public DNS i Cloudflare DNS oraz sprawdzana w publicznych usługach RDAP i WHOIS.
- Dane logowania w Firebase Authentication i dane płatnicze w Stripe.
Przechwytywanie na serwerze
Strona jest wczytywana i przechwytywana na serwerach ProofSnap, a nie na Twoim komputerze. Wysyłasz adres URL i otrzymujesz zapieczętowany pakiet dowodowy. Przeglądarka wykonująca przechwycenie łączy się wyłącznie z adresami publicznymi: adresy prywatne, adresy pętli zwrotnej (loopback) i adresy usług metadanych chmury są odrzucane, także po przekierowaniu.
Domyślnie adres URL przechwycenia wykonanego w trybie produkcyjnym jest też wysyłany do Internet Archive (web.archive.org),
aby mogła powstać niezależna publiczna kopia. Adresy URL, które wyglądają na prywatne (na przykład linki do logowania, resetowania hasła lub udostępniania) albo zawierają token, nigdy nie są wysyłane, a adres URL z parametrami zapytania (query string) jest wysyłany tylko wtedy, gdy ustawisz parametr przechwycenia external_archive na
true. Ustaw go na false, aby całkowicie wyłączyć archiwizację. Wynik archiwizacji jest zapisywany w pakiecie.
Jak pieczętowany jest każdy pakiet
- Skróty
- Dla każdego pliku dowodowego w pakiecie obliczany jest skrót SHA-256, zapisywany w pliku
manifest.json. - Podpis
- Plik
manifest.jsonjest podpisywany kluczem RSA-4096 wygenerowanym wyłącznie dla tego pakietu. Po podpisaniu klucz prywatny jest usuwany, a klucz publiczny dołączany do pakietu. - Znacznik czasu w blockchainie Bitcoina
- Skrót manifestu jest przesyłany do kalendarzy OpenTimestamps, aby został zakotwiczony w blockchainie Bitcoina. Gdy zakotwiczenie zostanie potwierdzone, kompletny dowód jest przechowywany razem z pakietem. Jeśli dowodu nie można dodać, informacja o tym jest zapisywana w pakiecie.
- Kwalifikowany znacznik czasu
- Na Twoje żądanie (tylko z produkcyjnymi kluczami API, każdy znacznik jest płatny) ProofSnap uzyskuje kwalifikowany elektroniczny znacznik czasu (RFC 3161) od Disig a.s., kwalifikowanego dostawcy usług zaufania wpisanego na unijną zaufaną listę (EU Trusted List). Jeśli znacznika nie można dodać, informacja o tym jest zapisywana w pakiecie.
- Weryfikacja offline
- Każdy pakiet zawiera skrypty weryfikacyjne (
verify.shdla systemów macOS i Linux,verify.ps1dla systemu Windows), które pozwalają zweryfikować go offline, niezależnie od ProofSnap.
Rejestr wydanych pakietów
ProofSnap zapisuje w rejestrze skróty wydawanych przez siebie manifestów. Każdy może sprawdzić skrót za pomocą
GET /v1/ledger/{hash}; znalezienie skrótu w rejestrze potwierdza, że ProofSnap wydał dokładnie ten pakiet. Szczegóły endpointu opisuje dokumentacja API.
Kopia zapasowa w drugim regionie UE
Każdy pakiet dowodowy utworzony w trybie produkcyjnym jest kopiowany do osobnego zasobnika (bucketu) Amazon S3
w innym regionie UE (Irlandia). Kopia powstaje w ciągu kilku minut od utworzenia pakietu, a endpoint GET /v1/captures/{id} zwraca jej stan dla każdego przechwycenia. Kopia jest usuwana razem z oryginałem. Pakiety z trybu testowego nie są kopiowane.
Okres przechowywania
Dowody są przechowywane przez 10 lat od daty przechwycenia. W przypadku strony przechwytywanej według harmonogramu okres liczy się od chwili, w której ostatnio stwierdzono, że przechwycona wersja jest nadal aktualna:
- Każda kontrola, która wykaże, że strona się nie zmieniła, wydłuża okres przechowywania bieżącego przechwycenia.
- W przypadku przechwycenia zastąpionego nowszą wersją okres liczy się od chwili zastąpienia.
Po zakończeniu subskrypcji masz 30 dni na pobranie wszystkich danych. W planie „Archive only” dowody pozostają dostępne do odczytu, pobrania i weryfikacji także wtedy, gdy przestaniesz wykonywać przechwycenia.
Usuwanie
Pakiet usunięty w panelu lub przez API trafia najpierw do kosza, z którego można go przywrócić w ciągu 30 dni. Następnie wszystkie przechowywane wersje są usuwane z obu kopii. Jeśli wybierzesz trwałe usunięcie, pakiet zostanie usunięty natychmiast. Po upływie okresu przechowywania albo 30-dniowego terminu na pobranie danych z konta wszystkie przechowywane wersje są usuwane w ten sam sposób. Przechwycenia objętego blokadą prawną nie można usunąć, dopóki blokada obowiązuje. Zachowywana jest informacja o tym, kto i kiedy usunął pakiet, ale nie jego treść.
Kto ma dostęp do przechwyceń
- Klucze API
- Pełny klucz jest przechowywany wyłącznie jako skrót SHA-256 i wyświetlany tylko raz, przy jego utworzeniu. Unieważniony klucz przestaje działać w ciągu 60 sekund. W planie Website Archive klucze API są tylko do odczytu: pozwalają wyświetlać, pobierać i weryfikować przechwycenia oraz zarządzać subskrypcjami webhooków. W tym planie przechwycenia i harmonogramy uruchamia się w panelu.
- Logowanie do panelu
- Firebase Authentication. Zanim utworzysz klucze, uruchomisz przechwycenia lub kupisz plan, musisz potwierdzić swój adres e-mail.
- Historia dostępu
- Gdy ktoś inny niż autor przechwycenia, na przykład właściciel konta firmowego lub osoba przypisana do sprawy, pobiera je, weryfikuje lub w inny sposób uzyskuje do niego dostęp, fakt ten jest odnotowywany w historii przechwycenia.
- Limity żądań
- Żądania przechwycenia, certyfikacji i inne płatne żądania podlegają limitowi liczby żądań (rate limit) na poziomie konta, wspólnemu dla wszystkich jego kluczy.
Szyfrowanie w spoczynku i podczas przesyłania
- Dane przesyłane
- Cały ruch API, panelu i webhooków odbywa się przez HTTPS (TLS).
- Dane przechowywane
- Pakiety dowodowe są w obu zasobnikach szyfrowane algorytmem AES-256 (szyfrowanie po stronie serwera Amazon S3). W obu zasobnikach zablokowany jest wszelki dostęp publiczny.
Webhooki
- Podpis
- Wywołania webhooków są podpisywane zgodnie ze specyfikacją Standard Webhooks za pomocą HMAC-SHA256. Wywołania wysyłane na
webhook_urlustawiony w żądaniu lub w harmonogramie są podpisywane sekretem podpisu webhooka powiązanym z kluczem API, za pomocą którego ustawiono ten adres. Ten sekret można wymienić z 24-godzinnym okresem przejściowym. Subskrypcja webhooka na poziomie konta ma własny sekret podpisu, wyświetlany tylko raz, przy utworzeniu subskrypcji. - Miejsca docelowe
- Webhooki trafiają wyłącznie do publicznych endpointów HTTPS. Nazwa hosta jest ponownie rozwiązywana i sprawdzana przed każdym wywołaniem, a połączenie jest nawiązywane tylko ze sprawdzonym adresem IP, więc adresy prywatne, adresy pętli zwrotnej (loopback) i adresy usług metadanych chmury są odrzucane także po zmianie rekordów DNS. Przekierowania nie są obsługiwane.
- Ponowne próby
- Jeśli wywołanie zakończy się przekroczeniem limitu czasu, błędem połączenia lub odpowiedzią z kodem błędu (innym niż 410 Gone), jest ponawiane do 5 razy w ciągu około 35 godzin (po 5 min, 30 min, 2 godz., 8 godz. i 24 godz.) z tym samym
webhook-id, aby odbiorca mógł odrzucić duplikaty. Limit czasu oczekiwania na odpowiedź przy każdej próbie wynosi 10 sekund. - Pobieranie
- Ponawiane wywołania i wywołania z subskrypcji webhooka nie zawierają 24-godzinnego linku do pobrania. Odbiorca może uzyskać nowy za pomocą
GET /v1/captures/{id}. - Subskrypcje webhooków
- Subskrypcja webhooka na poziomie konta jest wyłączana, gdy jej endpoint zwróci kod 410 Gone, po 5 dniach bez udanego wywołania lub, jeśli została utworzona za pomocą klucza API, gdy ten klucz zostanie unieważniony. Zdarzenia są przechowywane przez 30 dni i można je pobrać za pomocą
GET /v1/events.
Usługi zewnętrzne
- Płatności
- Płatności obsługuje Stripe. ProofSnap nie przechowuje numerów kart płatniczych.
- E-maile dotyczące konta
- Wiadomości z potwierdzeniem adresu e-mail i linkiem do resetowania hasła wysyła MailerSend.
- Znaczniki czasu
- Kalendarze OpenTimestamps oraz, w przypadku kwalifikowanego znacznika czasu, Disig a.s. otrzymują wyłącznie skrót manifestu, nigdy same dowody.
- Zapytania DNS i WHOIS
- W celu udokumentowania przechwyconej witryny jej nazwa hosta jest rozwiązywana przez Google Public DNS i Cloudflare DNS, a dane rejestracyjne domeny są sprawdzane w publicznych usługach RDAP i WHOIS.