Audit-kæde + TSA-forankring
Hver handling i en session — tilslutninger, snapshots, whiteboards, optagelsesstart, afslutninger — lander i en SHA-256-hashkæde pr. session. Kædens hoved forankres hos flere uafhængige tidsstemplingsmyndigheder i det øjeblik, sessionen lukker. Manipulation kan opdages; beviset overlever uden at man skal stole på os.
Sådan fungerer det
Hvert audit-event bærer SHA-256-hashen af det foregående event plus sit eget kanoniske payload, og en skrivelås serialiserer events, så to samtidige optagelser ikke kan race kæden. Omarrangér ét enkelt event senere, og hver efterfølgende hash matcher ikke — verifikationen fejler på den første afvigende række.
| Felt | Formål |
|---|---|
| sequence | Monoton tæller pr. session. Append-only, håndhævet på databaseniveau. |
| prev_hash | SHA-256 af det foregående events kanoniske hash. Det første event bruger et præfiks med lutter nuller. |
| payload_jsonb | Kanonisk-JSON-eventdata. Sorterede nøgler, ingen whitespace — så hashen er reproducerbar. |
| hash | SHA-256 over (sequence ‖ prev_hash ‖ kind ‖ kanonisk payload ‖ occurred_at). |
| occurred_at | Stemplet på serveren. Klienture styrer ikke rækkefølgen. |
Multi-backend-forankring
Ved sessionens afslutning indsendes kædens hoved til to uafhængige tidsstemplingsmyndigheder parallelt. Ét nedbrud bryder ikke beviset — verifikatoren accepterer ethvert token, hvis backend-krydstjek består.
Forankring i offentligt register
Kædens hoved committes til en smart contract på Tezos. Finalitet lander på 15–20 minutter; kvitteringen bærer blok-hashen + dybde. Enhver med sessionens kædehoved kan verificere mod det offentlige register uden vores medvirken.
Kvalificeret tidsstempel
Synkron tidsstempelforespørgsel til en kvalificeret TSA — DataSure (ANSSI-kvalificeret, eIDAS Art. 42) på managed deployments, eller FreeTSA til self-host-piloter. TSR'en er et signeret ASN.1-token, som enhver RFC 3161-verifikator kan validere offline.
Backend-interfacet kan udskiftes — Sectigo, DigiCert, OpenTimestamps og andre kvalificerede TSP'er kobles på med en config-ændring. Kunder på managed deployments arver DataSure; self-host-operatører vælger deres egen.
Hvordan verifikation ser ud
Hver session leveres med en offentlig verifikations-URL (HMAC-pinnet, udløber om 90 dage). Revisoren åbner den, ser kædens hoved, TSA-kvitteringerne og et kædeintegritetstjek — intet login, ingen API-nøgle, intet specielt værktøj. Verifikatoren genhasher hver event-række og krydstjekker TSA-vidnerne; begge skal bestå.
| Tjek | Hvad det beviser |
|---|---|
| chain_integrity.ok | Hver rækkes hash matcher den genberegnede hash. Ingen mellemliggende række blev redigeret. |
| tokens[].ok | Hver TSA-kvittering krydstjekkes mod det kædehoved, den hævder at forankre. |
| event_count | Sammenlignet med det antal, operatøren så ved lukning — opdager trunkering. |
| issuing_org_name | Identiteten på den organisation, der kørte sessionen — til revisorens sagsmappe. |
Hvorfor dette betyder noget i retten
eIDAS Art. 42 fastslår en retlig formodning for kvalificerede elektroniske tidsstempler i EU-domstole — en domstol skal acceptere tidsstemplet som ægte, medmindre modparten beviser det modsatte. Kombinér det med en uforanderlig hashkæde over sessionens events, og bevisbyrden vendes: i stedet for »vi optog dette, tag os på ordet« har du et kryptografisk vidne, der er uafhængigt af os, uafhængigt af dig og verificerbart år senere uden at man skal stole på nogen af parterne.
Se en kæde, du kan rode med
Demo-seederen præger en rigtig session med en rigtig audit-kæde forankret hos rigtige TSA'er. Få en offentlig verifikations-URL, ændr en byte i event-loggen, og se beviset bryde sammen.