K0NSULT // ai-truth/ipIII
k0nsult.cloud / ai-truth / ipIII / orchestrator / tamper-export

Tamper-Evident Audit Export (F10) — eksport, którego nie da się cicho zmienić

Eksport audytu ma jedną właściwość: jeśli ktoś zmieni choć jeden bajt, weryfikator to wykryje. Łańcuch skrótów (hash chain), znacznik czasu, podpis i niezmienny log zdarzeń sprawiają, że każda modyfikacja przestaje być „cicha". Ta strona opisuje, co z tego już działa (LIVE), a co jest jeszcze planowane (ROADMAP) — bez zawyżania.

Status strony: ROADMAP. Sam eksport audytu z łańcuchem skrótów jest dostępny na endpoincie /audit/export (LIVE). Warstwa formalnego podpisu dowodów (signed-evidence) oraz publiczny weryfikator online są ROADMAP. Zgodnie z doktryną claim ≤ proof rozdzielamy te dwa stany i nie przedstawiamy planów jako gotowych funkcji. Dane w przykładach są syntetyczne.
Tamper-evident ≠ tamper-proof.

„Tamper-evident" znaczy: manipulacji nie da się ukryć — weryfikator ją wykryje. To NIE znaczy, że danych nie da się fizycznie zmienić. Cel warstwy F10 to wykrywalność zmiany, a nie jej niemożliwość. Dzięki temu eksport audytu może służyć jako materiał wsparcia decyzji dla audytora, partnera lub organu — z jawnym śladem, czy plik jest nienaruszony.

ŁAŃCUCH ZAUFANIA: zdarzenie audytuhash chainznacznik czasupodpisweryfikator eksportu

Pięć elementów F10

Hash chain LIVE

Każdy wpis audytu zawiera skrót poprzedniego (prev_sha256). Wyrwanie lub podmiana rekordu w środku łamie łańcuch — kolejne skróty przestają się zgadzać.

Znacznik czasu częściowo

Eksport niesie czas wygenerowania i sekwencję zdarzeń. Kwalifikowany znacznik czasu TSA (RFC 3161) to ROADMAP — dziś czas pochodzi z serwera, nie z zewnętrznego TSA.

Podpis ROADMAP

Formalny podpis manifestu eksportu (i docelowo PAdES dla PDF) planowany w warstwie signed-evidence. Dziś integralność opiera się na skrócie sha256, nie na kwalifikowanym podpisie.

Immutable log LIVE

Log zdarzeń audytu jest append-only w PostgreSQL — wpisy dodajemy, nie nadpisujemy. Modyfikacja historycznego wpisu jest widoczna jako niezgodność łańcucha skrótów przy weryfikacji.

Export verifier CLI dziś / online później

Weryfikacja przeliczą łańcuch skrótów i porówna z manifestem. Dziś: sprawdzenie po stronie odbiorcy (/verify). Publiczny weryfikator online — ROADMAP.

Manifest eksportu LIVE

Każdy eksport ma manifest: liczba rekordów, zakres czasu, skrót korzenia łańcucha i skrót całości (export_sha256). To on jest porównywany przy weryfikacji.

Co jest LIVE, a co ROADMAP

Kolumna Status rozdziela to, co ma dowód (kod + endpoint), od tego, co planujemy. Data weryfikacji: 2026-07-05. Dane w przykładach syntetyczne.

ElementCo robiOgraniczenie / ryzykoStatus
/audit/export Eksportuje log audytu z łańcuchem skrótów i manifestem (export_sha256, prev_sha256 per wpis). Integralność treści dowodzona skrótem, nie kwalifikowanym podpisem — słabsza wartość formalno-prawna do czasu dodania podpisu/TSA. LIVE
Immutable log Append-only zapis zdarzeń w PostgreSQL; historia zmian statusów incydentów i evidence. Niezmienność egzekwowana warstwą aplikacji + łańcuchem skrótów; nie jest to zewnętrzny rejestr rozproszony. LIVE
Export verifier (CLI) Przelicza łańcuch skrótów eksportu i porównuje z manifestem — wskazuje pierwszy niezgodny wpis. Weryfikacja po stronie odbiorcy; brak jeszcze publicznej usługi online do weryfikacji przez osobę trzecią. LIVE
Znacznik czasu TSA Docelowo kwalifikowany znacznik czasu (RFC 3161) dowodzący momentu istnienia eksportu. Dziś czas z serwera aplikacji, nie z niezależnego TSA — słabszy dowód „kiedy". ROADMAP
Podpis / signed-evidence Formalny podpis manifestu eksportu i PAdES dla PDF; docelowo podpis odporny na atak kwantowy. Bez podpisu integralność opiera się wyłącznie na skrócie; podpis wiąże eksport z wystawcą. ROADMAP
Weryfikator online Publiczna strona/endpoint, gdzie odbiorca wrzuca eksport i dostaje werdykt „nienaruszony / zmieniony". Wymaga stabilnego formatu manifestu i modelu zaufania klucza wystawcy — stąd ROADMAP. ROADMAP

Jak działa wykrywanie manipulacji

Każdy wpis wiąże się kryptograficznie z poprzednim. Podmiana jednego rekordu zmienia jego skrót, przez co skrót następnego wpisu (który zawierał starą wartość) przestaje pasować — weryfikator wskazuje miejsce rozjazdu.

eksport (syntetyczny przykład)
  wpis #041  prev=9f3a…  data=incident:INC-042 status→retest   sha256=1c7e…
  wpis #042  prev=1c7e…  data=incident:INC-042 evidence attach  sha256=b40d…
  wpis #043  prev=b40d…  data=incident:INC-042 status→closed     sha256=77aa…
  manifest   records=43  root=9f3a…  export_sha256=e52b…

weryfikacja:
  recompute #041..#043  →  chain OK  →  export_sha256 == e52b…  →  NIENARUSZONY
  (podmiana wpisu #042 → sha256 #042 ≠ prev #043 → ZMIENIONY: pierwszy rozjazd na #043)

Ścieżka weryfikacji odbiorcy

1. Pobranie. Odbiorca ściąga eksport z /audit/export wraz z manifestem (LIVE).
2. Przeliczenie łańcucha. Weryfikator liczy skróty od korzenia i porównuje z prev_sha256 każdego wpisu (/verify).
3. Porównanie manifestu. Skrót całości musi zgadzać się z export_sha256 z manifestu.
4. Podpis (planowane). Po wdrożeniu signed-evidence odbiorca dodatkowo sprawdzi podpis i znacznik czasu TSA — ROADMAP.

Skrót statusu

3
Elementy LIVE
hash chain · immutable log · verifier CLI
3
Elementy ROADMAP
TSA · podpis/signed-evidence · verifier online
1
Endpoint LIVE
/audit/export
F10
Numer fali
tamper-evident audit export

Czego ta strona NIE twierdzi

Nie twierdzimy, że danych nie da się zmienić. Warstwa F10 zapewnia wykrywalność zmiany, nie jej niemożliwość. Eksport można podmienić — ale weryfikator to pokaże. To różnica między „tamper-evident" (wykrywalne) a hipotetyczną nienaruszalnością.
„100%" u nas znaczy pokrycie dowodowe, nie nieprzenikalność. Deklarujemy dokładnie tyle, ile potrafimy pokazać kodem, testem i endpointem. Skrót sha256 to nie kwalifikowany podpis — dlatego podpis i znacznik czasu TSA oznaczamy jako ROADMAP, a nie jako gotowe funkcje.
Zakres i charakter. Eksport audytu oraz jego weryfikacja to wsparcie decyzji (decision-support) dla audytora, partnera lub organu — nie porada prawna i nie samodzielny dowód procesowy. Wartość formalno-prawna rośnie po dodaniu warstwy signed-evidence (podpis + TSA), która jest ROADMAP. Dane w przykładach na tej stronie są syntetyczne.

Powiązane: opis endpointu eksportu → /audit-export-info · weryfikacja eksportu → /verify · warstwa podpisu dowodów → /signed-evidence · rejestr ograniczeń → /known-limitations.