API ProofSnap

Bezpieczeństwo danych w API ProofSnap: przechowywanie w UE

Według stanu na październik 2026 r. API ProofSnap przechwytuje strony internetowe na serwerach w UE (AWS Frankfurt), przechowuje każdy pakiet dowodowy w postaci zaszyfrowanej (AES-256), a kopię zapasową pakietów utworzonych w trybie produkcyjnym utrzymuje w Irlandii. Każdy pakiet jest pieczętowany skrótami SHA-256 i podpisem RSA-4096, przechowywany przez 10 lat i objęty kontrolą dostępu.

Zaktualizowano

Autor: Radim Motycka, założyciel i główny inżynier ProofSnap, który zbudował API i opisane tu zabezpieczenia.

Co dzieje się z Twoimi danymi podczas przechwycenia

Pojedyncze przechwycenie wykonane przez API ProofSnap lub w panelu przechodzi przez pięć etapów:

  1. Wysyłasz adres URL przez HTTPS: przez API (z użyciem swojego klucza API) albo w panelu.
  2. 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.
  3. 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.
  4. Zapieczętowany pakiet jest przechowywany w postaci zaszyfrowanej we Frankfurcie, a pakiety produkcyjne mają drugą kopię w Irlandii.
  5. 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:

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.json jest 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.sh dla systemów macOS i Linux, verify.ps1 dla 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:

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_url ustawiony 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.

Pytania, zgłoszenia i umowa powierzenia (DPA)

Napisz do nas na adres support@getproofsnap.com, jeśli masz pytania, chcesz zgłosić problem z bezpieczeństwem lub zapytać o umowę powierzenia przetwarzania danych osobowych (DPA). Jak założyć konto i wykonać pierwsze przechwycenie, opisuje przewodnik Pierwsze kroki w panelu ProofSnap.

Zacznij za darmo z 50 przechwyceniami testowymi