Revisionskedja + TSA-förankring
Varje åtgärd i en session — anslutningar, stillbilder, whiteboards, inspelningsstarter, avslut — hamnar i en SHA-256-hashkedja per session. Kedjehuvudet förankras hos flera oberoende tidsstämplingsmyndigheter i samma stund som sessionen stängs. Manipulation kan upptäckas; beviset överlever utan att man behöver lita på oss.
Så fungerar det
Varje revisionshändelse bär SHA-256-hashen av föregående händelse plus sin egen kanoniska payload, och ett skrivlås serialiserar händelserna så att två samtidiga fångster inte kan kapplöpa om kedjan. Ändra ordningen på en enda händelse i efterhand och varje efterföljande hash stämmer inte — verifieringen misslyckas på den första avvikande raden.
| Fält | Syfte |
|---|---|
| sequence | Monoton räknare per session. Append-only, framtvingad på databasnivå. |
| prev_hash | SHA-256 av den föregående händelsens kanoniska hash. Den första händelsen använder ett helt nollställt prefix. |
| payload_jsonb | Händelsedata i kanonisk JSON. Sorterade nycklar, inga blanksteg — så att hashen är reproducerbar. |
| hash | SHA-256 över (sequence ‖ prev_hash ‖ kind ‖ kanonisk payload ‖ occurred_at). |
| occurred_at | Stämplas på servern. Klientklockor styr inte ordningen. |
Förankring med flera backender
Vid sessionsslut skickas kedjehuvudet till två oberoende tidsstämplingsmyndigheter parallellt. Ett avbrott bryter inte beviset — verifieraren godtar vilken token som helst vars backend-korskontroll går igenom.
Förankring i offentlig huvudbok
Kedjehuvudet skrivs till ett smart kontrakt på Tezos. Finalitet nås inom 15–20 minuter; kvittot bär blockhashen + djupet. Vem som helst med sessionens kedjehuvud kan verifiera mot den offentliga huvudboken utan vår medverkan.
Kvalificerad tidsstämpel
Synkron tidsstämpelbegäran till en kvalificerad TSA — DataSure (ANSSI-kvalificerad, eIDAS art. 42) på hanterade driftsättningar, eller FreeTSA för self-host-piloter. TSR:en är en signerad ASN.1-token som vilken RFC 3161-verifierare som helst kan validera offline.
Backend-gränssnittet är utbytbart — Sectigo, DigiCert, OpenTimestamps och andra kvalificerade TSP:er kopplas in med en konfigändring. Kunder på hanterade driftsättningar ärver DataSure; self-host-operatörer väljer sin egen.
Så ser verifieringen ut
Varje session levereras med en publik verifierings-URL (HMAC-nålad, går ut om 90 dagar). Granskaren öppnar den, ser kedjehuvudet, TSA-kvittona och en kontroll av kedjeintegriteten — ingen inloggning, ingen API-nyckel, inga särskilda verktyg. Verifieraren hashar om varje händelserad och korskontrollerar TSA-vittnena; båda måste gå igenom.
| Kontroll | Vad det bevisar |
|---|---|
| chain_integrity.ok | Varje rads hash matchar den omräknade hashen. Ingen mellanrad har redigerats. |
| tokens[].ok | Varje TSA-kvitto korskontrolleras mot det kedjehuvud det påstår sig förankra. |
| event_count | Jämförs med antalet operatören såg vid stängning — upptäcker trunkering. |
| issuing_org_name | Identiteten på organisationen som körde sessionen — för granskarens ärendeakt. |
Varför det spelar roll i domstol
eIDAS art. 42 etablerar en rättslig presumtion för kvalificerade elektroniska tidsstämplar i EU-domstolar — en domstol måste godta tidsstämpeln som äkta om inte motparten bevisar motsatsen. Kombinera det med en oföränderlig hashkedja över sessionens händelser och bevisbördan vänds: i stället för "vi spelade in det här, lita på oss" har du ett kryptografiskt vittne som är oberoende av oss, oberoende av dig och verifierbart flera år senare utan att man behöver lita på någondera sidan.
Se en kedja du kan peta på
Demo-seedern skapar en riktig session med en riktig revisionskedja förankrad hos riktiga TSA:er. Skaffa en publik verifierings-URL, ändra en byte i händelseloggen och se beviset brista.