Digitalni potni list izdelka ne prikazuje vsem enako. Kupec vidi javne podatke. Servisna delavnica ali podjetje za obdelavo vidi več. Organ za nadzor trga vidi vse. To je jasno, evropski standardi pa to zdaj izrecno določajo.
Zanimivo vprašanje pa je nekoliko bolj subtilno: če nekdo poleg javnih podatkov vidi tudi zaščitena polja, ali lahko dokaže, da so prav ta polja pristna? Ali pa mora zaupati, da jih je platforma pravilno izbrala in posredovala nespremenjena?
Predstavljajte si notarja, ki ne overja pisma v celoti, ampak vsak odstavek posebej. Javno pismo prejme vsakdo. Kdor ima pravico do več, prejme dodatne odstavke, vsak od njih pa še naprej nosi pečat istega notarja. Tako smo zgradili našo platformo. Pri večini platform je iskren odgovor na zgornje vprašanje: zaupanje. Pri nas pa je: dokaz za vsako polje, ki se doda šele ob razkritju. Ta članek pojasnjuje, zakaj je ta razlika pomembna in zakaj smo se odločili za zahtevnejšo pot.
Pravilo dostopa izpolnjujejo vsi enako
EN 18239, evropski standard za pravice dostopa, varnost in zaupnost v DPP, zahteva, da se dostop nadzira po posameznih poljih: za vsako polje obstaja pravilo, kdo ga sme videti. To je pravilna zahteva in ni težko jo izpolniti. Kakšen status sploh imajo ti standardi, smo podrobno razložili v našem prispevku o usklajenih standardih.
Običajna pot do tega je filter na strežniku. Strežnik ve, kdo poizveduje, preveri, kaj ta oseba sme videti, in vrne natanko ta izsek. Standard ne zahteva ničesar več. Bralec mora verjeti, da je strežnik izbral vsebino pošteno in da med prenosom ni ničesar spremenil. Za javni informativni list je to v redu. Za vrednost, na kateri obdelovalec takoj utemelji ceno rabljene baterije, je to veliko zaupanja.
Obstaja pa en problem, s katerim se standard ne ukvarja: izsek prispe brez pečata.
Najbolj očitna rešitev je podpisovanje podatkov. Na obeh koncih lestvice dobro deluje običajen podpis: podpis javnega pregleda in podpis celotnega niza podatkov. Kako to poteka v podrobnostih, je opisano v poglavju »Podpisi in certifikati« v DPP. V sredini pa se sistem sesuje. Podpis celotnega dokumenta zajema natanko tista polja, ki so bila ob podpisu prisotna. Če pooblaščenemu bralcu dodatno razkrijemo zaščiteno polje, to polje leži zunaj podpisanega obsega in ga prejme nepokrito. Nihče ne more vnaprej podpisati vsake možne kombinacije »kdo vidi kaj«, saj se število kombinacij eksponentno poveča. Zato se zatečemo k filtru brez pečata, srednja raven pa spet temelji na zaupanju.
Podpisovanje vsakega polja posebej
Obstaja boljša rešitev, na kateri gradimo platformo. Namesto da bi podpisali končni dokument kot en blok, se avtor v enem samem koraku opredeli za vsako polje posebej (za poznavalce standardov: postopek W3C ecdsa-sd-2023).
Vsak pogled se začne z istimi javnimi polji. Kar bralec vidi poleg tega, se dodaja polje za poljem, vsako od teh polj pa še naprej vodi nazaj do javnega ključa proizvajalca, in sicer offline, brez ponovnega podpisovanja in brez zaupanja v organ, ki je pogled sestavil. Polja brez pravice preprosto manjkajo. Niso zamazana, ampak jih sploh ni, in o njih ne pricurlja ničesar.
En prehod: servisna delavnica
Servisna delavnica je za baterijo prijavila upravičen interes, kar je ena od stopenj dostopa, ki jih Uredba o baterijah izrecno predvideva. Njegov servisni sistem se s svojim ključem prijavi na naš vmesnik in pridobi potrdilo. Odgovor je isto javno potrdilo, ki ga vidi tudi kupec, le da je obogateno za natanko eno polje: navodila za demontažo, ki so razkrita le pooblaščenim bralcem. Ni drugega dokumenta, ni posebne različice.
Preden se podjetje zanaša na to polje, njegova programska oprema preveri priloženi pečat z javnim ključem proizvajalca. Če je preverjanje podpisa uspešno, tudi glede dodatnega polja, ve: ta navodila izvirajo do zadnjega znaka od proizvajalca in nihče na poti jih ni spremenil. Če preverjanje ni uspešno, celotno stran odloži na stran. Da prejme natanko tista polja, ki mu pripadajo, ostaja naloga našega sistema za nadzor dostopa. Novost je naslednji korak: ali je tisto, kar prejme, resnično, preveri sam, brez da bi nas vprašal.
Zakaj je »nepoškodovan« ključnega pomena
Nepoškodovan pečat ne pomeni, da je vsebina resnična. Pomeni: točno to je napisal proizvajalec in od takrat nihče ni spremenil niti znaka. S tem iz vprašanja zaupanja izpade vsak, ki je dokument le posredoval: vmesni pomnilnik, omrežje, arhiv, mi.
Ni več pomembno, kdo vam je dal potni list.
Pečat je binaren. Ali drži ali ne drži, polomljenega pečata ni. Zato ni postopne razlike, ali dodatna polja prispejo k vam s pečatom ali brez njega: brez pečata niso le nekoliko manj izpolnjena, ampak sploh niso izpolnjena.
Oba postopka si lahko ogledate
To lahko vsakdo preveri sam. To Transpareo Time Machine je naša odprtokodna aplikacija za prikazovanje potnih listov izdelkov: pregleduje zgodovino različic potnih listov izdelkov in pri tem v brskalniku uporabnika ponovno izračuna vsak podpis, ne da bi se pri tem obrnila na naš strežnik. Potrdilo za majico vsebuje podpis, ki pokriva celoten dokument, potrdilo za baterijo pa potrditev po posameznih poljih.
Oba sta odprta standarda W3C, ki ju lahko vsakdo implementira. Podpis celotnega dokumenta je bistveno cenejši za vzpostavitev in vzdrževanje, in tistim, ki posredujejo le javne podatke, to popolnoma zadostuje. Dejstvo, da Transpareo Time Machine obvlada oba postopka, je namerno: potni list ostaja običajen standardni format, ki ga lahko preveri vsako ustrezno orodje, ne le naše.
Komu to koristi in kaj zahteva standard
Komu se sploh razkrije kaj več kot le javni podatki? Ne naključni kupci. To so predelovalec, ki oceni vrednost rabljenega akumulatorja, zavarovalec, ki oceni tveganje, reciklator, ki razvršča kemikalije, in organ, ki sestavlja primer. Bralci, katerih odločitve so odvisne od denarja ali varnosti. In po običajnem pristopu ravno tisti bralci, ki za polja, na katerih temelji njihova odločitev, ne dobijo pečata. Menimo, da bi moral certifikacijski pečat za vse pomeniti isto: vsako prikazano polje izvira od proizvajalca in od takrat ni bilo spremenjeno. Znak, ki velja le za javna polja, je le polovičen znak.
Povemo odkrito: nič od tega ni predpisano. Standard EN 18239 zahteva, da se dostop nadzoruje, in filter na strežniku to brezhibno opravlja. Da bi bila razkrita polja preverljiva, to storimo še dodatno, saj je smisel podpisanega potnega lista prav v tem, da nihče ne sme biti prisiljen zaupati platformi. Izvzetje srednje stopnje kot izjeme ponovno vzpostavi prav tisto zaupanje, ki naj bi ga podpis odpravil.
Isto načelo omogoča, da se polje pozabi
Določitev vsakega polja posebej prinaša še eno lastnost, ki jo evropska zakonodaja dejansko zahteva. Splošna uredba o varstvu podatkov daje posameznikom pravico do izbrisa osebnih podatkov. Podatkovni zapis, podpisan kot en blok, tega ne more izpolniti, ne da bi uničil lastni podpis.
Ker je tu vsako polje samostojno, je mogoče posamezno polje odstraniti, medtem ko ostalo še naprej velja. Če osebni podatki po pomoti pridejo v potni list, se jih lahko brez težav ponovno odstrani, potni list pa ostane veljaven: ni potrebe po ponovni izdaji, zgodovina ostane neprekinjena. Polja, ki jih zakon zahteva ohraniti, ostanejo nespremenjena; tisto, kar je mogoče izbrisati, se lahko na zahtevo izbriše, tudi še leta kasneje.
Zakaj je to težko in kako smo to rešili
Postopka nismo izumili sami, gre za javni standard W3C. Težko ni imeti idejo. Težko je jo izvesti tako, da bo potni list še čez deset let deloval. Običajni podpis se izračuna na podlagi bajtov dokumenta. Podpis po posameznih poljih se izračuna na podlagi posameznih podatkov, zato se potni list pred podpisovanjem pretvori v fiksno obliko, v kateri je vsak podatek predstavljen kot samostojen stavek. Ta zapis se mora čez deset let ponoviti znak za znakom, sicer pečat ne bo več ustrezal. Temu stojijo na poti tri neopazne stvari, in vse tri smo odpravili pri korenu.
Številke izgubijo svoj tip. Vrednost, kot je 2,0, se po prehodu skozi običajen podatkovni format vrne kot 2. Za človeka je to isto, za fiksno zapisanje pa je to drugačen stavek. Pri nas se vsaka vrednost shrani skupaj s svojim tipom, objava pa se prekine, takoj ko se pojavi vsaj ena številka brez tipa.
Oznake še ne pomenijo pomena. Vsako ime polja mora voditi do edinstvenega pomena v slovarju, sicer polje med pretvorbo tiho izgine in pečat ga ne pokrije. Pri nas je vsak slovar na voljo lokalno in se nikoli ne pridobiva prek omrežja; neznano ime polja ustavi podpisovanje, namesto da bi tiho vrnilo prazen rezultat.
Vnosi potrebujejo fiksna imena. Vsak vnos v dokumentu ima pri nas fiksno identifikacijsko oznako, da ostane zapis pri vsakem prehodu enak, namesto da bi vsakič dodeljevali nova pomožna imena.
Najbolj občutljiv del je v lastnem ključu proizvajalca. Za vsako izdajo je potreben dodatni, kratkotrajni ključ, s katerim se posamezna polja, ki se lahko razkrijejo, podpisujejo. Ta ključ ustvari in zavrže proizvajalec sam. Če bi bil pri nas, bi lahko posamezna polja naknadno izmislili. Vsak potni list nosi dva takšna pečata, enega proizvajalca in enega podjetja Transpareo, tudi za posamezno razkrito polje.
Za nas je ta trud upravičen. S protokolom » Transpareo Proofchain « se vsak potni list ob objavi podpiše in poveže s prejšnjo različico, medtem ko Transpareo Vault - nespremenljiv desetletni arhiv - začne delovati takoj, ko so potni listi registrirani v registru EU. Podpisovanje vsakega polja namesto celotnega bloka je razširitev tega jedra, ne pa dodatek.
Kje smo
Odločili smo se za dokaz za vsakega bralca, saj naj bi pečat pomenil eno in isto, ne glede na to, kdo ga gleda. Kdor želi videti, kako deluje: oba zgornja primerna potna lista se preverjata neposredno v brskalniku, brez poizvedbe na strežniku.
Vprašanja v zvezi s tem prispevkom
Ali kateri standard predpisuje podpis po posameznih poljih?
Ne. EN 18239, evropski standard za pravice dostopa v DPP, zahteva, da se dostop nadzira po posameznih poljih, kar filter na strežniku v celoti izpolnjuje. Da so razkrita polja poleg tega preverljiva, je naša odločitev in ne le obveznost, ki jo predpisuje katera koli uredba. Menimo, da je ta trud upravičen, saj je smisel podpisanega potnega lista prav v tem, da platformi nihče ne mora zaupati. Kakšen status imajo te standarde, je navedeno v našem prispevku o usklajenih standardih.
Objavljamo le javne podatke. Ali to sploh potrebujemo?
Verjetno ne, in to tudi odkrito priznavamo. Podpis, ki zajema celoten dokument, pokriva potni list, katerega polja so vsa javna, njegova vzpostavitev in vzdrževanje pa sta precej cenejša. Odobritev po posameznih poljih se splača, takoj ko se pridruži druga ciljna skupina, na primer servisna mreža, podjetje za recikliranje ali urad, katerim bi sicer predložili izvlečke brez pečata. Oba postopka sta odprta standarda W3C (ecdsa-sd-2023 za podpis po posameznih poljih), vsako orodje, ki obvlada ta standard, ju lahko preveri, in oba danes delujeta v Transpareo Time Machine, na potnem listu majice in na potnem listu baterije.
Ali je mogoče osebne podatke kasneje izbrisati, ne da bi s tem razveljavili potni list?
Da, in to dejansko zahteva evropska zakonodaja. Splošna uredba o varstvu podatkov daje posameznikom pravico do izbrisa osebnih podatkov, podatkovni zapis, podpisan kot blok, pa te zahteve ne more izpolniti, ne da bi uničil lastni podpis. Ker je tukaj vsako polje določeno posebej, je mogoče posamezno polje odstraniti, medtem ko ostalo še naprej izpolnjuje pogoje, brez ponovne izdaje in brez prekinjene zgodovine različic. Polja, ki jih zakon zahteva ohraniti, ostanejo nespremenjena.
Kdo hrani podpisni ključ?
Vsak potni list nosi dva pečata, eden od njiju pa je lahko vaš. Vsaka izdaja potrebuje še kratkotrajni ključ, ki posamično podpiše polja, ki se lahko razkrijejo; tega ustvari in uniči sam izdajatelj, saj bi lahko, če bi bil v naših rokah, posamezna polja naknadno izmislili. Vrnjeni pečat preverimo z uporabo shranjenega javnega ključa, preden mu zaupamo. Vsak potni list tako nosi dva pečata dveh neodvisnih organov, tako za posamezno razkrito polje kot za celoten niz podatkov.
Ali bo potni list še veljaven čez deset let?
Prav v tem je težava. Podpis po posameznih poljih temelji na posameznih podatkih dokumenta in ne na njegovih bajtih, zato mora isti fiksni zapis desetletje kasneje izhajati znak za znakom. Tri stvari to preprečujejo, mi pa smo vse tri odpravili pri korenu. Vsaka vrednost se shrani skupaj s svojim tipom, vsak slovar je shranjen pri nas in se nikoli ne pridobiva prek omrežja, vsak vnos pa ima fiksno identifikacijsko oznako. Nespremenljiv desetletni arhiv je vzpostavljen in začne delovati takoj, ko so potni listi registrirani v registru EU. Več o tem v naši analizi uredbe o registru EU.




