Łańcuch audytu + zakotwiczenie TSA
Każde działanie w sesji — dołączenia, zrzuty, tablice, rozpoczęcia nagrywania, zakończenia — trafia do łańcucha skrótów SHA-256 per sesja. Głowica łańcucha jest kotwiczona w wielu niezależnych urzędach znaczników czasu w momencie zamknięcia sesji. Manipulacja jest wykrywalna; dowód przetrwa bez potrzeby zaufania nam.
Jak to działa
Każde zdarzenie audytu niesie skrót SHA-256 poprzedniego zdarzenia oraz własny kanoniczny ładunek, a blokada zapisu serializuje zdarzenia, tak aby dwa równoczesne przechwycenia nie ścigały się o łańcuch. Zmień kolejność jednego zdarzenia później, a każdy kolejny skrót przestaje się zgadzać — weryfikacja kończy się niepowodzeniem na pierwszym rozbieżnym wierszu.
| Pole | Przeznaczenie |
|---|---|
| sequence | Monotoniczny licznik per sesja. Tylko dopisywanie, wymuszane na poziomie bazy danych. |
| prev_hash | SHA-256 kanonicznego skrótu poprzedniego zdarzenia. Pierwsze zdarzenie używa prefiksu samych zer. |
| payload_jsonb | Dane zdarzenia w kanonicznym JSON. Posortowane klucze, bez białych znaków — dzięki temu skrót jest odtwarzalny. |
| hash | SHA-256 nad (sequence ‖ prev_hash ‖ kind ‖ kanoniczny payload ‖ occurred_at). |
| occurred_at | Stemplowane po stronie serwera. Zegary klienta nie sterują kolejnością. |
Zakotwiczenie wielobackendowe
Na koniec sesji głowica łańcucha jest przesyłana równolegle do dwóch niezależnych urzędów znaczników czasu. Jedna awaria nie łamie dowodu — weryfikator akceptuje każdy token, którego kontrola krzyżowa backendu przechodzi pomyślnie.
Kotwica w publicznym rejestrze
Głowica łańcucha jest zapisywana w smart kontrakcie na Tezos. Finalność następuje w 15–20 minut; potwierdzenie niesie skrót bloku + głębokość. Każdy, kto ma głowicę łańcucha sesji, może zweryfikować ją względem publicznego rejestru bez naszej współpracy.
Kwalifikowany znacznik czasu
Synchroniczne żądanie znacznika czasu do kwalifikowanego TSA — DataSure (kwalifikowany przez ANSSI, art. 42 eIDAS) we wdrożeniach zarządzanych lub FreeTSA dla pilotaży on-premises. TSR to podpisany token ASN.1, który każdy weryfikator RFC 3161 może zwalidować offline.
Interfejs backendu jest wymienny — Sectigo, DigiCert, OpenTimestamps i inne kwalifikowane TSP podłącza się zmianą konfiguracji. Klienci wdrożeń zarządzanych dziedziczą DataSure; operatorzy on-premises wybierają własne.
Jak wygląda weryfikacja
Każda sesja dostarcza publiczny URL weryfikacji (przypięty HMAC, wygasa po 90 dniach). Audytor otwiera go, widzi głowicę łańcucha, potwierdzenia TSA i kontrolę integralności łańcucha — bez logowania, bez klucza API, bez specjalnych narzędzi. Weryfikator ponownie hashuje każdy wiersz zdarzenia i sprawdza krzyżowo świadków TSA; oba muszą przejść pomyślnie.
| Kontrola | Co dowodzi |
|---|---|
| chain_integrity.ok | Skrót każdego wiersza zgadza się z ponownie obliczonym skrótem. Żaden środkowy wiersz nie został zmieniony. |
| tokens[].ok | Każde potwierdzenie TSA jest sprawdzane krzyżowo względem głowicy łańcucha, którą deklaruje zakotwiczyć. |
| event_count | Porównane z liczbą, którą operator widział przy zamknięciu — wykrywa obcięcie. |
| issuing_org_name | Tożsamość organizacji, która przeprowadziła sesję — do akt sprawy audytora. |
Dlaczego to ma znaczenie w sądzie
Art. 42 eIDAS ustanawia domniemanie prawne dla kwalifikowanych elektronicznych znaczników czasu w sądach UE — sąd musi uznać znacznik czasu za autentyczny, chyba że strona przeciwna udowodni inaczej. Połącz to z niezmiennym łańcuchem skrótów obejmującym zdarzenia sesji, a ciężar dowodu się odwraca: zamiast „zapisaliśmy to, wierzcie nam na słowo" masz kryptograficznego świadka niezależnego od nas, niezależnego od Ciebie i weryfikowalnego po latach bez zaufania którejkolwiek ze stron.
Zobacz łańcuch, który możesz pomacać
Seeder demo tworzy prawdziwą sesję z prawdziwym łańcuchem audytu zakotwiczonym w prawdziwych TSA. Zdobądź publiczny URL weryfikacji, zmień bajt w logu zdarzeń, obserwuj, jak dowód się łamie.