Digitalni pasoš proizvoda ne prikazuje iste informacije svima. Kupac vidi javne podatke. Servis ili obnavljač vidi više. Tijelo za nadzor tržišta vidi sve. To je razjašnjeno, a evropski standardi to sada izričito propisuju.
Zanimljivije je, međutim, tiše pitanje: ako neko dobije pristup zaštićenim poljima izvan javnih podataka, može li provjeriti da su ta specifična polja autentična? Ili mora vjerovati da ih je platforma ispravno odabrala i proslijedila nepromijenjene?
Zamislite notara koji ne ovjerava pismo u cjelini, već svaki odlomak pojedinačno. Svi dobijaju javnu verziju pisma. Svako ko ima pravo na više dobija dodatne odlomke, a na svakom od njih i dalje stoji pečat istog notara. Tako smo izgradili našu platformu. Za većinu platformi, iskren odgovor na gore postavljeno pitanje je: povjerenje. Za nas je to: dokaz, za svako polje koje se dodaje tek u trenutku otkrivanja. Ovaj članak objašnjava zašto je ova razlika važna i zašto smo odabrali zahtjevniji pristup.
Svi se pridržavaju pravila o pristupu na isti način
EN 18239, evropski standard za prava pristupa, sigurnost i povjerljivost u DPP-u, zahtijeva da se pristup kontroliše polje po polje: za svako polje postoji pravilo koje uređuje ko je ovlašten da ga vidi. Ovo je ispravan zahtjev i nije ga teško ispuniti. O statusu ovih standarda pisali smo u našem članku o harmoniziranim standardima.
Uobičajen način da se to postigne je putem filtera na serveru. Server zna ko je uputio zahtjev, provjerava šta ta osoba smije vidjeti i vraća upravo taj dio. Standard ne zahtijeva ništa više. Čitalac mora vjerovati da je server iskreno odabrao sadržaj i da ništa nije mijenjao usput. Za javni informativni letak, to je prihvatljivo. Ali za vrijednost na osnovu koje recikler određuje cijenu rabljene baterije, to je mnogo toga što se uzima zdravo za gotovo.
Postoji jedna smetnja koju standard ne rješava: izvadak stiže bez pečata.
Očigledno rješenje je potpisati podatke. Za dva krajnja slučaja, standardni potpis dobro funkcionira: potpisati javni prikaz; potpisati kompletan skup podataka. Kako ovo detaljno funkcioniše objašnjeno je u poglavlju ” u DPP-u. Međutim, to ne funkcioniše u sredini. Potpis koji pokriva cijeli dokument obuhvata upravo ona polja koja su bila prisutna u trenutku potpisivanja. Ako se zaštićeno polje dodatno otkrije ovlaštenom čitaocu, to polje se nalazi izvan potpisanog skupa i stiže do njega nepotpisano. Niko unaprijed ne potpisuje svaku moguću kombinaciju ‘ko-šta-vidi’; broj kombinacija eksponencijalno raste. Koristi se filter bez pečata, a srednji nivo ponovo se oslanja na povjerenje.
Potpisivanje svakog polja pojedinačno
Postoji bolji dizajn, i to je onaj na kojem gradimo platformu. Umjesto potpisivanja gotovog dokumenta kao jednog bloka, kreator pojedinačno specificira svako polje u jednom koraku (za one upoznate sa standardima: W3C procedura ecdsa-sd-2023).
Svaki prikaz stoga počinje s istim javnim poljima. Sve što čitalac vidi iznad toga dodaje se polje po polje, a svako od tih polja i dalje se može pratiti do javnog ključa proizvođača, offline, bez potrebe za ponovnim potpisivanjem i bez oslanjanja na entitet koji je sastavio prikaz. Polja bez potraživanja jednostavno nedostaju. Nisu cenzurirana, već ih uopće nema, i ništa o njima ne proističe.
Jedna primjena: servis
Servis je izjavio legitimni interes za bateriju, jedan od nivoa pristupa koji su izričito predviđeni Uredbom o baterijama. Njegov radni sistem se prijavljuje na naš interfejs koristeći svoj ključ i preuzima lozinku. Odgovor je ista javna lozinka koju vidi kupac, sa tačno jednim dodatnim poljem: uputstvima za rastavljanje, koja se otkrivaju samo ovlaštenim čitaocima. Nema drugog dokumenta, nema posebne verzije.
Prije nego što se posao oslanja na ovo polje, njegov softver provjerava dostavljen pečat pomoću javnog ključa proizvođača. Ako provjera potpisa uspije - uključujući i dodatno polje - zna da ove upute potječu izravno od proizvođača i da ih nitko usput nije mijenjao. Ako verifikacija ne uspije, ostavlja cijeli prikaz po strani. Zadatak našeg sistema kontrole pristupa je da osigura da dobije upravo one polja na koja ima pravo. Ono što je novo je korak koji slijedi: samostalno provjerava da li ono što dobije jeste autentično, bez našeg konsultovanja.
Zašto je ‘neokrnjeno’ cijela poenta
Neoštećen pečat ne znači da je sadržaj istinit. To znači: ovo je tačno ono što je kreator napisao i niko nije izmijenio ni jedan znak od tada. To znači da je svako ko je samo proslijedio dokument isključen iz pitanja povjerenja: keš, mreža, arhiva, mi.
Više nije važno ko vam je dao pasoš.
Pečat je binaran. Ili je čitav ili nije; ne postoji pojam polupokršenog pečata. Zato nije stvar stepena da li dodatna polja stižu sa svojim pečatom ili bez njega: bez pečata, ona nisu samo malo manje važeća - ona uopće nisu važeća.
Oba načina pregledavanja
Svako to može provjeriti za sebe. Transpareo Time Machine je naša aplikacija otvorenog koda za pregled pasoša proizvoda: ona listajući kroz historiju verzija pasoša i provjerava svaki potpis u pregledniku korisnika bez upita na jedan od naših servera. Pasport majice sadrži potpis koji pokriva cijeli dokument, dok pasport baterije koristi validaciju polje po polje.
Transpareo Time Machine Oba su otvoreni W3C standardi; svako ih može implementirati. Potpis koji pokriva cijeli dokument je znatno jeftiniji za postavljanje i održavanje, i svima koji pružaju samo javne podatke to će biti dovoljno. Činjenica da W3C preporuka podržava obje metode je namjerna: putovnica ostaje standardni format koji svaki odgovarajući alat može provjeriti, ne samo naš.
Ko ima koristi od ovoga i šta standard zahtijeva?
Ko, osim onih koji pristupaju javnim podacima, zapravo dobija bilo kakve dodatne informacije? Ne obični kupac. To je procesor koji procjenjuje vrijednost upotrijebljenog baterijskog paketa, osiguravatelj koji određuje cijenu rizika, recikler koji razvrstava hemikalije i vlast koja vodi slučaj. Čitaoci čije odluke ovise o novcu ili sigurnosti. I, prema uobičajenom pristupu, upravo ti čitaoci ne dobijaju pečat za polja na kojima se zasnivaju njihove odluke. Vjerujemo da kvalitetan pečat treba značiti isto za sve: da svako prikazano polje potiče od proizvođača i da mu od tada nije niko dirao. Pečat koji se odnosi samo na javne polja je samo pola pečata.
Da budemo jasni: ništa od ovoga nije obavezno. EN 18239 zahtijeva kontrolu pristupa, a filter na serveru to savršeno dobro radi. Mi idemo korak dalje kako bismo učinili da su prikazana polja provjerljiva, jer je cijela poenta potpisanog pasoša u tome da niko ne mora vjerovati platformi. Izuzimanje srednjeg sloja vraća upravo ono povjerenje koje je potpis trebao eliminisati.
Isti princip omogućava da se polje izostavi
Pojedinačno navođenje svakog polja sa sobom donosi drugu karakteristiku, a to je zapravo i zahtjev evropskog zakonodavstva. Opća uredba o zaštiti podataka daje ljudima pravo na brisanje svojih ličnih podataka. Zapis podataka potpisan kao jedan blok ne može ispuniti ovaj uslov bez uništavanja vlastitog potpisa.
Budući da je svako polje ovdje samostalno, jedno polje se može ukloniti dok sve ostalo ostaje važeće. Ako se lični podaci slučajno nađu u pasošu, mogu se čisto ukloniti, a pasoš ostaje važeći: nema potrebe za izdavanjem novog pasoša, bez narušene historije. Polja koja zakon nalaže da se zadrže ostaju na mjestu; sve što se može izbrisati može se izbrisati na zahtjev, čak i godinama kasnije.
Zašto je ovo teško i kako smo to riješili
Mi nismo izmislili ovaj proces; to je javni W3C standard. Nije teško doći do ideje. Teškoća leži u tome da se izgradi na takav način da pasoš i dalje bude važeći za deset godina. Standardni potpis se izračunava na osnovu bajtova dokumenta. Potpis po poljima se izračunava na osnovu njegovih pojedinačnih unosa, a da bi se to postiglo, pasoš se prije potpisivanja pretvara u fiksni format, u kojem svaki unos izgleda kao zasebna rečenica. Ovaj format se mora reproducirati znak po znak za deset godina; u suprotnom, nijedan pečat se neće podudarati. Tri naizgled beznačajna faktora stoje na putu tome, a mi smo se pozabavili sva tri u korijenu.
Brojevi gube svoj tip. Vrijednost poput 2.0 vraća se kao 2 nakon što prođe kroz standardni format podataka. Za čovjeka je to isto; za fiksnu notaciju, to je drugačija vrijednost. U našem sistemu svaka se vrijednost pohranjuje sa svojim tipom, a objavljivanje se zaustavlja čim se pojavi i samo jedan broj bez tipa.
Oznake još ne čine značenje. Svaki naziv polja mora odgovarati jedinstvenom značenju u rječniku; u suprotnom, polje tiho nestaje tokom konverzije i pečat ga ne pokriva. Kod nas se svaki rječnik pohranjuje lokalno i nikada se ne dohvaća putem mreže; ime nepoznatog polja zaustavlja proces potpisivanja, umjesto da tiho vrati prazan rezultat.
Unosi zahtijevaju fiksna imena. Svaki unos u dokumentu ima fiksni identifikator u našem sistemu, tako da notacija ostaje ista pri svakoj izvršnoj verziji, umjesto da se svaki put dodjeljuju nova pomoćna imena.
Najzamršeniji dio leži u vlastitom ključu proizvođača. Za svako izdavanje potreban je dodatni, kratkotrajni ključ, pomoću kojeg se polja koja se mogu otkriti potpisuju pojedinačno. Proizvođač sam generiše i odbacuje ovaj ključ. Da ga posjedujemo, mogli bismo retroaktivno izmišljati pojedinačna polja. Svaki pasoš nosi dva takva pečata: jedan od proizvođača i jedan od Transparea, čak i za jedno pojedinačno polje koje se otkriva.
Za nas se ovaj napor itekako isplati. Uz Transpareo Proofchain svaki pasoš se potpisuje pri objavljivanju i lančano povezuje s prethodnom verzijom, a Transpareo Vault - nepromjenjiva desetogodišnja arhiva - stupa na snagu čim se pasoši registruju u EU DPP registru. Potpisivanje svakog polja umjesto cijelog bloka je proširenje ove osnovne funkcionalnosti, a ne dodatak.
Naš stav
Odlučili smo se za dokaz, za svakog čitaoca, jer pečat treba da znači jednu stvar, bez obzira ko ga gleda. Za one koji žele da to vide u akciji: dva uzorka pasoša povezana iznad mogu se provjeriti direktno u pregledniku, bez upita serveru.
Pitanja o ovoj objavi
Da li standard specificira potpis polje po polje?
Ne. EN 18239, evropski standard za prava pristupa u DPP-u, zahtijeva da se pristup kontroliše na nivou svakog polja, a filter na serveru u potpunosti ispunjava ovaj zahtjev. To što učinimo objavljena polja dodatno provjerljivim (auditable) je naša odluka i ne predstavlja obavezu koju nam bilo koji regulator nameće. Smatramo da je taj napor opravdan jer je cijela poenta potpisanog pasoša u tome da nitko ne mora vjerovati platformi. Status ovih standarda naveden je u našem članku o harmoniziranim standardima.
Objavljujemo samo javne podatke. Trebamo li to raditi?
Vjerovatno ne, i mi smo prilično otvoreni po tom pitanju. Potpis koji pokriva cijeli dokument obuhvata pasoš, sva njegova polja su javna, a znatno je jeftinije za uspostavljanje i korištenje. Potpisivanje polje po polje postaje isplativo čim se uključi druga ciljna grupa, poput servisne mreže, reciklera ili javnog tijela kojem biste inače dostavljali izvatke bez pečata. Obje metode su otvoreni W3C standardi (ecdsa-sd-2023 za potpisivanje polje po polje); svaki alat koji podržava standard može ih provjeriti, a obje trenutno rade u Transpareo Time Machineu, na “putovnici” majice i na “putovnici” baterije.
Mogu li se lični podaci izbrisati naknadno, a da pasoš ne bude poništen?
Da, i ovaj aspekt je zapravo propisan evropskim pravom. Opća uredba o zaštiti podataka daje ljudima pravo da im se izbrišu lični podaci, a zapis podataka označen kao blok ne može ispuniti taj zahtjev bez uništavanja vlastitog potpisa. Budući da su ovdje svaka polja definirana zasebno, jedno polje se može ukloniti dok sve ostalo ostaje važeće, bez potrebe za ponovnim izdavanjem i bez narušavanja historije verzija. Polja koja zakon zahtijeva da se zadrže ostaju na mjestu.
Ko drži ključ za potpis?
Svaki paso nosi dva pečata, a jedan od njih može biti tvoj. Svako izdavanje također zahtijeva kratkotrajni ključ koji pojedinačno potpisuje polja koja se trebaju otkriti; proizvođač sam generiše i odbacuje taj ključ, jer da ga mi držimo, mogli bismo naknadno izmišljati pojedinačna polja. Provjeravamo vraćeni pečat pomoću pohranjenog javnog ključa prije nego što mu povjerujemo. Svaki pasoš stoga nosi dva pečata od dvije nezavisne instance, jedan za pojedinačno otkriveno polje i jedan za čitav skup podataka.
Hoće li pasoš i za deset godina biti važeći?
Upravo tu leži napor. Potpis po polju izračunava se na osnovu pojedinačnih detalja dokumenta, a ne njegovih bajtova; stoga se ista fiksna reprezentacija mora reproducirati znak po znak deset godina kasnije. Tri stvari to potkopavaju, a mi smo sve tri ugušili u začetku. Svaka vrijednost se pohranjuje sa svojom vrstom, svaki rječnik je smješten na našim serverima i nikada se ne dohvaća putem interneta, a svaki unos ima fiksni identifikator. Nepromjenjivi desetogodišnji arhiv je uspostavljen i stupit će na snagu čim pasoši budu registrirani u registru EU. Više o tome pročitajte u našoj analizi Uredbe o registru.




