Otkrijte, a da ne izgubite potpis

Otkrijte, a da ne izgubite potpis

Svako čija su zaštićena polja izložena obično mora vjerovati platformi. Mi potpisujemo svako polje pojedinačno kako bi se moglo nezavisno provjeriti.

Digitalni pasoš proizvoda ne prikazuje svima iste informacije. Kupac vidi javne podatke. Servis ili obnovitelj 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 pitanje suptilnije prirode: ako se nekoj osobi prikažu zaštićena polja uz javne podatke, može li ona provjeriti da su ta konkretna polja autentična? Ili mora vjerovati da ih je platforma ispravno odabrala i prenijela nepromijenjene?

Za većinu platformi, iskren odgovor je: povjerenje. Mi smo svoju izgradili tako da je odgovor ‘dokaz’ - ne samo za javna polja, već i za svako polje koje se dodaje tek u trenutku otkrivanja. Zašto je ova razlika važna i zašto smo odabrali zahtjevniji put.

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 kontrolu pristupa na nivou svakog elementa podataka: 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. Status ovih standarda detaljno smo opisali pod harmonizirani standardi.

Uobičajen način da se to postigne je filtriranjem na strani servera. Server zna ko je uputio zahtjev, provjerava šta ta osoba smije vidjeti i vraća upravo taj dio. Kontrola pristupa: riješena. Standard ne zahtijeva ništa više.

Međutim, postoji jedna caka koju standard ne rješava: Odjeljak stiže nepotpisan. Čitaoc dobija prikaz posebno prilagođen za njega i mora vjerovati da ga je server iskreno odabrao i da ništa nije izmijenjeno usput. Za javni informativni list, to je u redu. Za vrijednost na osnovu koje recikler određuje cijenu polovne baterije, to zahtijeva veliko povjerenje.

Gdje pojedinačni potpis doseže svoje granice

Očigledno rješenje je potpisati podatke. Za oba kraja skale, standardni potpis dobro funkcionira: potpisati javni prikaz, potpisati kompletan skup podataka i provjeriti oba pomoću javnog ključa bez posredovanja servera. Kako ovo detaljno funkcioniše objašnjeno je u Potpisi i certifikati u DPP-u.

Problem nastaje u sredini. Potpis koji pokriva cijeli dokument pokriva tačno jedan skup polja, naime ona koja su bila prisutna u trenutku potpisivanja. Ako ovlaštenom čitaocu bude odobren pristup dodatnom zaštićenom polju, to polje se nalazi izvan potpisanog skupa i stiže do njega nepotisano. Ako se, s druge strane, cijeli skup podataka potpiše od samog početka, potpis zaista pokriva sve, ali bi se onda sve moralo pokazati svima.

Stoga se međufaze previde: servis, osiguravač, recikler. Da bi se unaprijed potpisala svaka moguća kombinacija ‘ko-šta-vidi’, bio bi potreban zaseban potpisani dokument za svaku kombinaciju, a broj kombinacija vrtoglavo raste sa svakom dodatnom grupom pristupa. Niko to ne radi. Povlači se na nepotpisani filter servera, a srednja faza se ponovo oslanja na povjerenje.

Potpisivanje svakog polja pojedinačno

Postoji bolji pristup, i to je onaj na kojem gradimo platformu. Umjesto da potpisuje gotov dokument kao jedan blok, izdavalac pojedinačno specificira svako polje u jednom potpisivanju (za one upoznate sa standardima: W3C specifikacija ecdsa-sd-2023 za selektivno otkrivanje).

Svaki prikaz počinje javnim jezgrom

Svaki prikaz stoga počinje istim javnim poljima. Sve što čitalac vidi izvan toga dodaje se polje po polje, a svako od tih polja i dalje se može pratiti do javnog ključa izdavatelja - offline, bez potrebe za ponovnim potpisivanjem i bez oslanjanja na entitet koji je sastavio prikaz. Polja bez tvrdnji jednostavno nedostaju. Nisu cenzurirana, već ih uopće nema, i ništa o njima ne proističe.

Primjer: servis

Primjer ilustrira kako ovo funkcioniše u praksi. Radionica je registrovala legitimni interes za bateriju, jedan od nivoa pristupa izričito predviđenih Uredbom o baterijama. Njen sistem radionice se prijavljuje na naš interfejs koristeći svoj API ključ i preuzima pasoš.

Odgovor je isti javni pasoš koji kupac vidi, ali sa tačno jednim dodatnim poljem: uputstvima za rastavljanje, koja su dostupna samo ovlaštenim čitaocima. Nema drugog dokumenta, nema posebne verzije - samo isti pasoš sa jednim dodatnim poljem.

Prije nego što se preduzeće oslanja na ovo polje, njegov softver provjerava priloženi certifikat pomoću javnog ključa izdavatelja. Ako je provjera uspješna - uključujući i dodatno polje - zna se: ove upute potiču tačno od proizvođača i niti mi niti bilo ko drugi duž lanca ih nije na bilo koji način mijenjao. Ako provjera ne uspije, to zna jednako sigurno i u potpunosti odbacuje dokument.

Naša uloga u ovome je namjerno minimalna. Osiguravanje da dobije upravo one polja na koja ima pravo ostaje zadatak naše kontrole pristupa; svaki server filter radi potpuno isto. Ono što je novo je korak koji slijedi: on sam provjerava da li je ono što stigne autentično, a da nas ne pita.

Zašto je “neotvorenost” suština

Zamislite notara koji ne ovjerava pismo u cjelini, već svaki odlomak pojedinačno. Svi dobiju javno pismo. Svako ko ima pravo na više dobija dodatne odlomke, a svaki od njih i dalje nosi pečat istog notara.

Zašto je ‘neprekinutost’ ključna

Zamislite notara koji ne ovjerava pismo u cjelini, već ovjerava svaki odlomak pojedinačno. Svi dobijaju javno pismo.

U njemu piše: ‘To je upravo ono što je izdavaoc napisao i niko nije izmijenio ni jedan znak od tada.’ To znači da je svako ko je samo proslijedio dokument - keš, mreža, arhiva, mi - isključen iz toga. To znači: ovo je tačno ono što je izdavaoc napisao, i niko nije izmijenio ni jedan znak od tada. To znači da je svako ko je samo proslijedio dokument - posrednik, mreža, arhiv, mi - izuzet iz pitanja povjerenja. Više nije važno ko vam je dao pasoš.

A pečat je binaran. Ili je čitav ili nije; ne postoji poluprelomljeni pečat. Ako se prekine, nećete znati koja je rečenica izmijenjena, samo da više ne možete vjerovati cijelom dokumentu. Zato nije stvar stepena da li dodatna polja stižu sa svojim pečatom ili bez njega: Bez pečata, oni nisu samo nešto manje provjerljivi; oni se uopće ne mogu provjeriti.

Obje metode za pregled

Svako to može provjeriti za sebe. Transpareo Time Machine je naša aplikacija otvorenog koda za pregled pasoša proizvoda: On listuje historiju verzija pasoša, preračunavajući svaki potpis u pregledniku korisnika bez upita na jedan od naših servera. Unutar njega su javno dostupna dva primjera pasoša. Pasoš za majicu sadrži potpis koji pokriva cijeli dokument, dok pasoš za bateriju prikazuje otkrivanje podataka po poljima.

Obje su W3C specifikacije otvorenog koda: eddsa-jcs-2022 za potpis koji pokriva cijeli dokument i ecdsa-sd-2023 za otkrivanje podataka polje po polje. Svako ko želi može ih implementirati. Trud koji je potreban je razlog zašto to mnogi neće učiniti: potpis na nivou cijelog dokumenta je znatno jeftiniji za postavljanje i korištenje, i svako ko pruža samo javne podatke može se zadovoljiti time.

Činjenica da Time Machine podržava obje metode je namjerna i tako će i ostati. Ne pripada nijednoj platformi. Verifikator koji prihvata samo skuplju metodu bio bi alat samo za nas i ni za koga drugog.

Kome se otkrivaju zaštićena polja

Vrijedi se zapitati kome se, pored javnih podataka, uopće išta otkriva. Ne obični kupac - on dobija javni certifikat. To je procesor koji procjenjuje vrijednost iskorištenog paketa baterija, osiguravatelj koji određuje cijenu rizika, recikler koji razvrstava hemikalije i nadležni organ koji vodi postupak. To su čitaoci čije odluke ovise o novcu ili sigurnosti.

I upravo su to polja koja ostaju neotkrivena prema standardnom pristupu. Oni koji bi imali najveći razlog da žele kriptografsku verifikaciju, ne dobijaju je, od svih stvari, upravo za ona polja koja su temelj njihove odluke.

Vjerujemo da znak certifikacije treba značiti isto za sve. “Verified by Transpareo” znači isto u detaljnom izvještaju centra za popravke kao i na javnom certifikatu kupca: svako prikazano polje potiče od izdavatelja i od tada nije bilo mijenjano. Pečat koji pokriva samo javne polja je samo pola pečata.

Više od onoga što standard zahtijeva

Da budemo jasni: ništa od ovoga nije obavezno. EN 18239 zahtijeva kontrolu pristupa, a filter na strani servera savršeno dobro kontroliše pristup. Kriptografska provjera objavljenih polja je također nešto što radimo dodatno; to nije obaveza koju propisi nalažu.

Upravo zato se isplati to zapisati. Cijela poenta potpisanog prolaza je u tome da niko ne mora vjerovati platformi. Uklanjanje posrednika kao izuzetka vraća upravo ono povjerenje koje je potpis trebao eliminirati.

Isti princip omogućava da se polje zaboravi

Pojedinačno navođenje svakog polja uvodi drugu karakteristiku, a to je zapravo i zahtjev evropskog zakona. 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 zahtjev, a da pritom ne uništi vlastiti potpis.

Budući da je svako polje ovdje samostalno, jedno polje se može ukloniti, dok sve ostalo ostaje provjerljivo. Ako se lični podaci slučajno nađu u pasošu, mogu se uredno ukloniti, a pasoš ostaje važeći: nema potrebe za izdavanjem novog pasoša, nema prekida historije. Regulatorna polja koja zakon nalaže da se zadrže ostaju na mjestu; sve što se može izbrisati može se ukloniti na zahtjev, čak i godinama kasnije.

Ipak, to je potpuno običan pasoš

Ništa od ovoga ne pretvara pasoš u poseban objekt koji mogu otvoriti samo naši alati. On ostaje provjerljiva iskaznica (Verifiable Credential) u JSON-LD formatu, formatu prema kojem se kreću web standardi, te istom formatu koji koriste UN-ov Protokol o transparentnosti i širi W3C ekosistem.

Putovnica koju kupac skenira u svom pregledniku stoga je isti objekt koji partner za podatkovnu sobu može pročitati, a koji svaki verifikator usklađen sa standardima može provjeriti, ne samo naš. Dodatna sigurnost čitaoca ne košta ništa i nikoga ne veže za nas.

Zašto je ovo tehnički izazovno

Prije svega, da izbjegnemo bilo kakvo nerazumijevanje: mi nismo izmislili ovaj proces. ecdsa-sd-2023 je javna W3C specifikacija; kriptografija koja stoji iza toga nije naša, i svako ko želi da je implementira može o njoj pročitati. Nije teško doći do ideje. Izazov je u tome da se izgradi na takav način da će potpis i za deset godina ostati važeći. U tome je teži dio posla, i o tome se može reći nešto korisno.

Razlika može zvučati neznatno, ali mijenja osnovni pristup: standardni potpis vrši proračune na bajtovima dokumenta. Selektivno otkrivanje se obračunava na osnovu svojih izjava. Prije potpisivanja, pasoš se pretvara u standardizirani oblik u kojem je svaki dio informacije predstavljen kao zasebna, samostalna izjava. Tek tada je moguće izostaviti izjavu, a da se ne ugrozi ostatak.

Ovo uvodi problem koji potpis zasnovan na bajtovima nema: isti standardizirani oblik mora biti tačno reproduciran za deset godina. Ne približno, već znak po znak; u suprotnom, dokaz više neće biti važeći. Tri stvari stoje na putu tome, i sve tri su neupadljive.

Brojevi gube svoj tip. Ako napišete broj kao običan JSON, informacija o tome o kakvom se broju radi se izgubi usput. Vrijednost poput 2.0 se nakon obrade JSON-om vraća kao 2. Za čovjeka je to isto, ali za standardizirani oblik to je drugačija izjava, te validacija ne uspijeva.

Oznake još uvijek ne predstavljaju značenje. Da bi se pojavila standardizirana forma, naziv svakog polja mora odgovarati jedinstvenom značenju. Ako neko nedostaje, polje tiho nestaje tokom konverzije. Zatim se pojavljuje u pasošu, ali dokaz to ne pokriva i niko ne primjećuje.

Značenja se obično pronalaze na internetu. Ovo mapiranje je sadržano u rječniku koji većina alata preuzima s weba tokom validacije. Svako ko to radi čini validabilnost svog pasoša zavisnom od adrese treće strane koja će i za deset godina i dalje odgovarati - i ostati nepromijenjena.

Kako smo to riješili

Riješili smo tri problema u korijenu, umjesto da ih otkrivamo naknadno.

Tipovi. Svaka vrijednost je zapisana sa svojim tipom, a objavljivanje se zaustavlja čim se u standardizovanom obliku pojavi i samo jedan broj bez tipa. Greška se time otkriva tamo gdje košta samo jednu liniju koda, a ne godinama kasnije kao neobjašnjeni neuspjeh validacije.

Rječnici. Svaki rječnik na koji se poziva lozinka pohranjuje se lokalno na našem sistemu i nikada se ne preuzima putem interneta. Nepoznata adresa rezultira prisilnim prekidom tokom potpisivanja, umjesto tihog preusmjeravanja na prazan rezultat.

Identifikatori. Svaki čvor u dokumentu ima stabilan identifikator, što osigurava da standardizirani obrazac ostane reproducibilan, umjesto da se pri svakom izvršavanju dodjeljuju nova pomoćna imena.

Najzamršeniji dio leži u konceptu ‘Ponesi svoj ključ’. Za svako izdavanje potreban je dodatni, kratkotrajni ključ, pomoću kojeg se polja koja se otkrivaju potpisuju pojedinačno. Izdavatelj sam generiše i odbacuje ovaj ključ. Da ga mi posjedujemo, mogli bismo retroaktivno izmišljati pojedinačna polja, a nezavisnost potpisa izdavatelja bila bi samo tvrdnja. Provjeravamo vraćeni dokaz pomoću pohranjenog javnog ključa prije nego što mu povjerujemo.

Svaki pasoš sadrži dva takva dokaza: jedan od izdavatelja i jedan od Transparea, a svaki je nezavisno izveden za pregled čitaoca. Dva potpisa, dvije nezavisne vlasti - čak i za jedno otkriveno polje.

Za nas se ovaj napor itekako isplati. Provjerljivost nismo dodali naknadno; platforma je izgrađena na ovom principu od prve verzije. Svaki pasoš se potpisuje prilikom objavljivanja i lančano povezuje s prethodnom verzijom. Nepovratna desetogodišnja arhiva se uspostavlja i stupa na snagu čim se pasoši registruju u [EU DPP registar].(/de/blog/dpp-register-ist-gesetz). Potpisivanje svakog polja, a ne cijelog bloka, proširenje je ove osnovne funkcionalnosti, a ne dodatak nečemu što nikada nije bilo namijenjeno za tu svrhu.

Naš trenutni položaj

Odlučili smo se za dokaz, za svakog čitaoca, jer pečat treba da znači jedno, bez obzira ko ga gleda. Za one koji žele da to vide u akciji: dvije demo verzije na koje se linkuje 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 zahtijeva da se pristup kontroliše na nivou svakog pojedinačnog elementa podataka, a filter na strani servera u potpunosti ispunjava ovaj zahtjev. To da su objavljena polja provjerljiva izvan toga je naša odluka i ne predstavlja obavezu koju propis nalaže. Smatramo da je taj napor opravdan jer je cijela poenta potpisanog pasoša u tome da nitko ne mora vjerovati platformi - uklanjanje posrednika upravo vraća to povjerenje. Status ovih standarda izložen je u našem članku o harmoniziranim standardima.

Šta je tačno drugačije u odnosu na filter servera?

Nije važno ko šta vidi, već šta je primljeno. Oba pristupa pokazuju čitaocu tačno koja polja mu pripadaju. Kod filtriranja na serveru, isječak stiže nepotpisan, pa čitalac mora vjerovati da je server odabran u dobroj vjeri i da nije mijenjao ništa usput. Uz verifikaciju polje po polje, isti isječak stiže s verifikacijom koja se može pratiti offline sve do javnog ključa izdavatelja, a da nas nitko ne mora ništa pitati. Za javni informativni letak razlika je čisto akademska; ali za vrijednost na kojoj recikler temelji cijenu rabljene baterije, to je čitavo pitanje.

Da li čitaocima treba poseban softver za ovo?

Ne. Prolaz ostaje provjerljiva vjerodajnica u JSON-LD-u, a dokaz je javni W3C kriptosuit ecdsa-sd-2023, tako da ga svaki verifikator usklađen sa standardima može provjeriti. Naša aplikacija otvorenog koda za pregled, Transpareo Time Machine, provjerava svaki potpis u pregledniku korisnika bez upita na jedan od naših servera, i namjerno je dizajnirana da obrađuje jednostavne potpise kroz cijeli dokument. Provjerivač koji bi prihvatao samo našu metodu bio bi alat samo za nas i ni za koga drugog.

Kome su zaštićena polja prvenstveno otkrivena?

Ne obična kupkinja - ona dobija javnu propusnicu. To je servis s registriranim legitimnim interesom, obnavljač koji procjenjuje vrijednost rabljenog paketa baterija, recikler koji razvrstava hemikalije, osiguravatelj koji određuje cijenu rizika i vlast koja gradi slučaj - dionici čije odluke ovise o novcu ili sigurnosti. Uredba EU o baterijama predviđa upravo ove faze. Istovremeno, upravo ti dionici, prema uobičajenom pristupu, ne dobivaju nikakve dokaze o samim područjima na kojima se temelje njihove odluke.

Objavljujemo samo javne podatke. Trebamo li to raditi?

Vjerovatno ne, i u vezi s tim smo prilično otvoreni. Potpis koji pokriva cijeli dokument, koristeći kriptosuit eddsa-jcs-2022, pokriva prolaz čija su polja sva javna, i znatno je jeftinije za postavljanje i korištenje. Otkrivanje polja po polju postaje isplativo čim se uključi druga ciljna grupa, kao što je servisna mreža, recikler ili javna vlast kojoj biste inače dostavili nepotpisane izvatke. Obje metode su otvorene W3C specifikacije i obje se trenutno koriste u 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 zahtjevan prema evropskom pravu. Opća uredba o zaštiti podataka daje ljudima pravo da im se izbrišu lični podaci, a zapis podataka označen kao blokiran ne može ispuniti taj zahtjev bez uništavanja vlastitog potpisa. Budući da je svako polje ovdje definirano zasebno, može se ukloniti samo jedno polje dok sve ostalo ostaje provjerljivo - bez ponovnog izdavanja, bez fragmentirane historije verzija. Regulatorna polja koja zakon zahtijeva da se zadrže ostaju na snazi.

Ko drži ključ za potpis?

Svaki prolaz je praćen dvjema potvrdama, od kojih jedna može biti vaša. Svako izdavanje također zahtijeva kratkotrajni ključ koji pojedinačno potpisuje polja koja se trebaju otkriti; izdavatelj sam generira i odbacuje ovaj ključ, jer da ga mi posjedujemo, mogli bismo naknadno izmišljati pojedinačna polja, a neovisnost potpisa izdavatelja bila bi samo deklarativna. Provjeravamo vraćeni dokaz pomoću pohranjenog javnog ključa prije nego što mu povjerujemo. Svaki prolaz stoga sadrži dva dokaza od dvije nezavisne vlasti, i za pojedinačno otkriveno polje i za čitav skup podataka.

Hoće li pasoš i za deset godina biti važeći?

Upravo tu leži napor. Selektivno otkrivanje se zasniva na sadržaju dokumenta, a ne na njegovim bajtovima; to znači da isti standardizirani format mora biti reproduciran znak po znak deset godina kasnije. Tri stvari krše ovo pravilo, i sve smo ih riješili u samom izvoru - svaka vrijednost se zapisuje sa svojom vrstom, i objavljivanje se prekida ako se naiđe na broj bez tipa; svaki rječnik se pohranjuje lokalno i nikada se ne dohvaća putem mreže; i svaki čvor nosi stabilni identifikator kako bi se osiguralo da standardizirani oblik ostane reproducibilan. Uspostavljena je nepromjenjiva desetogodišnja arhiva koja će stupiti na snagu čim pasoši budu registrovani u EU registru, koji je operativan od 20. jula 2026. godine u skladu s Izvršnom uredbom (EU) 2026/1778. Pročitajte više o tome u našoj analizi Uredbe o registru.

Novosti o nivoima pristupa i dokazima

Selektivno otkrivanje, potpisi i razvoj DPP standarda - mjesečni pregled poslan direktno u vaš inbox.