Otkriti, a da se ne izgubi potpis

Otkriti, a da se ne izgubi potpis

Svatko čija su zaštićena polja izložena obično mora vjerovati platformi. Potpisujemo svako polje pojedinačno kako bi se moglo neovisno provjeriti.

Digitalni pasoš proizvoda ne prikazuje svima iste informacije. Kupac vidi javne podatke. Servis ili obnavljač vidi više. Tijelo za nadzor tržišta vidi sve. To je razjašnjeno, a europski standardi to sada izričito propisuju.

Zanimljivije je pitanje suptilnije: ako se nekome prikažu zaštićena polja uz javne podatke, može li provjeriti jesu li ta specifična polja autentična? Ili mora vjerovati da ih je platforma ispravno odabrala i prenijela nepromijenjena?

Za većinu platformi, iskren odgovor je: povjerenje. Svoju smo 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 ta razlika važna i zašto smo odabrali zahtjevniji put.

Svi se pridržavaju pravila o pristupu na isti način

EN 18239, europski standard za prava pristupa, sigurnost i povjerljivost u DPP-u, zahtijeva kontrolu pristupa na razini svakog pojedinog elementa podataka: za svako polje postoji pravilo koje uređuje tko je ovlašten vidjeti ga. To je ispravan zahtjev i nije ga teško ispuniti. Status ovih standarda detaljno smo opisali pod harmonizirani standardi.

Uobičajen način za postizanje toga je filtriranje na strani poslužitelja. Poslužitelj zna tko upućuje zahtjev, provjerava što 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. Čitatelj prima prikaz posebno prilagođen njemu i mora vjerovati da ga je poslužitelj odabrao pošteno i da ništa nije izmijenjeno usput. Za javni informativni list, to je u redu. Za vrijednost na temelju koje recikler određuje cijenu rabljene baterije, to zahtijeva veliko povjerenje.

Gdje pojedinačni potpis doseže svoje granice

Očito rješenje jest potpisati podatke. Za oba kraja lanca, standardni potpis dobro funkcionira: potpisati javni prikaz, potpisati cjelokupni skup podataka i provjeriti oba pomoću javnog ključa bez posredovanja poslužitelja. Kako to detaljno funkcionira objašnjeno je u Potpisi i certifikati u DPP-u.

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

Stoga se međukoraci propuštaju: servis, osiguravatelj, reciklažna tvrtka. Da bi se unaprijed potpisala svaka moguća kombinacija “tko što vidi”, za svaku bi kombinaciju bio potreban zaseban potpisani dokument, a broj kombinacija naglo raste sa svakom dodatnom grupom pristupa. Nitko to ne radi. Vraća se na nepotpisani filtar poslužitelja, a srednja faza ponovno se oslanja na povjerenje.

Potpisivanje svakog polja pojedinačno

Postoji bolji pristup i upravo na njemu gradimo platformu. Umjesto potpisivanja gotovog dokumenta kao jednog bloka, izdavatelj pojedinačno specificira svako polje u jednom potpisivanju (za one upoznate sa standardima: W3C specifikacija ecdsa-sd-2023 za selektivno otkrivanje).

Svaki prikaz započinje javnim jezgrom

Svaki prikaz stoga započinje istim javnim poljima. Sve što čitatelj vidi nakon toga dodaje se polje po polje, a svako od tih polja i dalje se može pratiti do javnog ključa izdavatelja - izvan mreže, bez ponovnog potpisivanja 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 prozvuka.

Vodič kroz postupak: servisna radionica

Vodič kroz postupak ilustrira kako to funkcionira u praksi. Radionica je registrirala legitimni interes za bateriju, jednu od razina pristupa izričito predviđenih Uredbom o baterijama. Njezin sustav radionice prijavljuje se na naše sučelje koristeći svoj API ključ i dohvaća propusnicu.

Odgovor je isti javni pasoš koji kupac vidi, ali s točno jednim dodatnim poljem: uputama za rastavljanje, koje su dostupne samo ovlaštenim čitateljima. Nema drugog dokumenta, nema posebne verzije - samo isti pasoš s jednim dodatnim poljem.

Prije nego što se tvrtka oslanja na ovo polje, njezin softver provjerava dostavljeni dokaz pomoću javnog ključa izdavatelja. Ako je provjera uspješna - uključujući i dodatno polje - ona zna: ove upute potječu izravno od proizvođača i ni mi ni itko drugi na tom putu ih nije na bilo koji način mijenjao. Ako provjera ne uspije, to zna jednako sigurno i u potpunosti odbacuje dokument.

Naša je uloga u tome namjerno minimalna. Osiguravanje da prima točno ona polja na koja ima pravo ostaje zadatak naše kontrole pristupa; svaki poslužiteljski filtar radi točno isto. Ono što je novo jest korak koji slijedi: on sam provjerava je li ono što je stiglo autentično, a da nas ne pita.

Zašto je “neokrznutost” ključna

Zamislite javnog bilježnika koji ne ovjerava pismo u cjelini, već svaki odlomak pojedinačno. Svi dobivaju javno pismo. Svatko tko ima pravo na više dobiva dodatne odlomke, a svaki od njih i dalje nosi pečat istog notara.

Zašto je “neprekinutost” cijela poanta

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

U njemu piše: “To je točno ono što je izdavač napisao i nitko nije izmijenio ni jedan znak od tada.” To znači da je svatko tko je samo proslijedio dokument - keš, mreža, arhiva, mi - isključen iz toga.

Svatko tko ima pravo na više dobiva dodatne odlomke, a svaki od njih i dalje nosi pečat istog notara.

Zašto je “neprekinutost” toliko važna vrijedi objasniti malo detaljnije. Netaknut pečat ne znači da je sadržaj istinit. To znači: ovo je točno ono što je izdavatelj napisao i nitko nije izmijenio ni jedan znak od tada. To znači da je svatko tko je samo proslijedio dokument - posrednik, mreža, arhiv, mi - isključen iz pitanja povjerenja. Više nije važno tko vam je dao putovnicu.

A pečat je binaran. Ili je neoštećen ili nije; ne postoji polurobren pečat. Ako se ošteti, nećete znati koja je rečenica izmijenjena, samo da više ne možete vjerovati cijelom dokumentu. Zato nije stvar stupnja dolaze li dodatna polja 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

Svatko to može sam provjeriti. Transpareo Time Machine je naša aplikacija otvorenog koda za pregled putovnica proizvoda: Prikazuje povijest verzija putovnice, preračunavajući svaki potpis u pregledniku korisnika bez upita na jednom od naših poslužitelja. Unutar njega javno su dostupne dvije primjernice putovnica. Putovnica za majicu sadrži potpis koji pokriva cijeli dokument, dok putovnica za bateriju prikazuje otkrivanje podataka po poljima.

Obje su otvorene W3C specifikacije: eddsa-jcs-2022 za potpis koji pokriva cijeli dokument i ecdsa-sd-2023 za otkrivanje podataka polje po polje. Svatko tko želi može ih implementirati. Trud koji je potreban razlog je zašto to mnogi neće učiniti: potpis za cijeli dokument znatno je jeftiniji za postavljanje i korištenje, i svatko tko pruža samo javne podatke može se njime zadovoljiti.

Činjenica da Time Machine podržava obje metode je namjerna i ostat će takva. Ne pripada nijednoj platformi. Verifikator koji prihvaća samo skuplju metodu bio bi alat samo za nas i nikoga drugoga.

Kome se otkrivaju zaštićena polja

Vrijedi se zapitati kome se, osim javnih podataka, uopće išta otkriva. Ne obični kupac - on dobiva javni certifikat. To je obrađivač koji procjenjuje vrijednost iskorištenog paketa baterija, osiguravatelj koji određuje cijenu rizika, recikler koji razvrstava kemikalije i tijelo nadležno za vođenje postupka. To su čitatelji čije odluke ovise o novcu ili sigurnosti.

I upravo su to polja koja ostaju neotkrivena prema standardnom pristupu. Oni koji imaju najveći razlog za željeti kriptografsku provjeru ne dobivaju je, od svih stvari, upravo za ona polja koja su temelj njihove odluke.

Vjerujemo da bi oznaka certifikata trebala značiti isto svima. “Verificirano od strane Transparea” znači isto u detaljnom izvješću centra za popravke kao i na javnom certifikatu kupca: svako prikazano polje potječe od izdavatelja i od tada nije bilo mijenjano. Pečat koji pokriva samo javne polja samo je 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 filtar na strani poslužitelja savršeno dobro kontrolira pristup. Kriptografska provjera objavljenih polja također je nešto što radimo uz to; to nije obveza koju nam propis nalaže.

Upravo zato vrijedi to zapisati. Cijela je poanta potpisanog propusnice u tome da nitko ne mora vjerovati platformi. Uklanjanje posrednika kao iznimke vraća upravo ono povjerenje koje je potpis trebao eliminirati.

Isti princip omogućuje zaboravljanje polja

Pojedinačno navođenje svakog polja uvodi drugu značajku, a to je zapravo i zahtjev europskog prava. Opća uredba o zaštiti podataka daje ljudima pravo na brisanje svojih osobnih podataka. Zapis podataka potpisan kao jedan blok ne može to ispuniti bez uništenja vlastitog potpisa.

Budući da je ovdje svako polje samostalno, jedno se polje može ukloniti, a da sve ostalo ostane provjerljivo. Ako se osobni podaci slučajno nađu u putovnici, mogu se čisto ukloniti, a putovnica ostaje važeća: nema potrebe za ponovnim izdavanjem, nema prekida povijesti. Regulatorna polja koja zakon nalaže zadržati ostaju na snazi; sve što se može izbrisati može se ukloniti na zahtjev, čak i godinama kasnije.

Ipak, to je posve običan putovnica

Ništa od toga ne pretvara putovnicu u poseban objekt koji mogu otvoriti samo naši alati. Ona ostaje provjerljiva iskaznica (Verifiable Credential) u formatu JSON-LD, formatu prema kojem se kreće svijet web standarda, i istom formatu koji koriste Protokol o transparentnosti UN-a i širi W3C ekosustav.

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

Zašto je ovo tehnički izazovno

Prije svega, kako bismo izbjegli bilo kakvo nerazumijevanje: mi nismo izmislili ovaj proces. ecdsa-sd-2023 je javna specifikacija W3C-a; kriptografija koja stoji iza toga nije naša i svatko tko je želi implementirati može o njoj pročitati. Nije teško doći na ideju. Teškoća leži u izradi rješenja na takav način da će potpis i za deset godina ostati valjan. U tome je posao, a o tome se može reći nešto korisno.

Razlika se može činiti neznatnom, ali mijenja temeljni pristup: standardni potpis vrši izračune na bajtovima dokumenta. Selektivno otkrivanje izračunava se na temelju svojih izjava. Prije potpisivanja, putovnica 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.

To uvodi problem koji potpis temeljen na bajtovima nema: isti standardizirani oblik mora se točno reproducirati za deset godina. Ne približno, već znak po znak; inače dokaz više neće biti valjan. Tri stvari stoje na putu tome, i sve su tri neupadljive.

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

Oznake još ne čine značenje. Da bi se stvorio standardizirani oblik, naziv svakog polja mora odgovarati jedinstvenom značenju. Ako jedan nedostaje, polje se tiho gubi tijekom pretvorbe. Zatim se pojavljuje u putovnici, ali dokaz to ne pokriva i nitko ne primjećuje.

Značenja se obično pronalaze na internetu. Ovo mapiranje sadržano je u rječniku koji većina alata preuzima s weba tijekom validacije. Svako tko to radi čini provjerljivost svog putovnice ovisnom o adresi treće strane koja će i za deset godina još uvijek odgovarati - i ostati nepromijenjena.

Kako smo to riješili

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

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

Rječnici. Svaki rječnik na koji se poziva lozinka pohranjuje se lokalno na našem sustavu i nikada se ne dohvaća putem interneta. Nepoznata adresa dovodi do prisilnog prekida tijekom potpisivanja, a ne do tihog prebacivanja na prazan rezultat.

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

Najzahtjevniji dio leži u načelu “Ponesi svoj ključ”. Za svako izdavanje potreban je dodatni, kratkotrajni ključ pomoću kojeg se pojedinačno potpisuju polja koja se otkrivaju. Izdavatelj sam generira i odbacuje taj ključ. Da ga mi posjedujemo, mogli bismo retroaktivno izmišljati pojedinačna polja, a neovisnost potpisa izdavatelja bila bi samo tvrdnja. Provjeravamo vraćeni dokaz pomoću pohranjenog javnog ključa prije nego što mu vjerujemo.

Svaki putovnica sadrži dva takva dokaza: jedan od izdavatelja i jedan od Transparea, a svaki se neovisno izračunava za pregled čitatelja. Dva potpisa, dva neovisna autoriteta - čak i za jedno jedino objavljeno polje.

Za nas se ovaj napor itekako isplati. Provjerljivost nismo dodali naknadno; platforma je izgrađena na ovom principu od prve verzije. Svaki se putovnica potpisuje prilikom objave i povezuje s prethodnom verzijom. Nepovratni desetogodišnji arhiv uspostavlja se i stupa na snagu čim se putovnice registriraju u [EU DPP registru].(/de/blog/dpp-register-ist-gesetz). Potpisivanje svakog polja, a ne cijelog bloka, proširenje je ove temeljne 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 čitatelja, jer pečat bi trebao značiti jedno te isto, bez obzira na to tko ga gleda. Za one koji to žele vidjeti u akciji: dvije demo verzije na gornjim poveznicama mogu se provjeriti izravno u pregledniku, bez upita poslužitelju.

Pitanja o ovoj objavi

Određuje li standard potpis polje po polje?

Ne. EN 18239 zahtijeva da se pristup kontrolira na razini svakog pojedinog elementa podataka, a filtar na strani poslužitelja u potpunosti je u skladu s tim. To da su objavljena polja provjerljiva izvan toga naša je odluka i nije obveza koju propis nameće. Smatramo da je taj napor opravdan jer je cijela poanta potpisanog putovnice u tome da nitko ne mora vjerovati platformi - uklanjanje posrednika upravo vraća to povjerenje. Status tih standarda naveden je u našem članku o harmoniziranim standardima.

Što točno razlikuje od filtra poslužitelja?

Nije važno tko što vidi, nego što zapravo stigne. Obje metode čitatelju točno pokazuju koja polja mu pripadaju. Kod filtriranja na poslužitelju, isječak stiže nepotpisan, pa se čitatelj mora pouzdati da je poslužitelj odabran u dobroj vjeri i da na putu nije ništa izmijenjeno. Uz provjeru polje po polje, isti isječak stiže s provjerom koja se može pratiti izvan mreže sve do javnog ključa izdavatelja, a da nitko ne mora ništa tražiti od nas. Za javnu informativnu brošuru razlika je čisto akademska; ali za vrijednost na kojoj recikler temelji cijenu rabljene baterije, to je cijelo pitanje.

Trebaju li čitatelji za ovo poseban softver?

Ne. Token ostaje provjerljiva vjerodajnica u JSON-LD-u, a dokaz je javna W3C kriptosuite ecdsa-sd-2023, pa ga svaki provjeritelj usklađen sa standardom može provjeriti. Naša aplikacija otvorenog koda za pregled, Transpareo Time Machine, provjerava svaki potpis u pregledniku čitatelja bez upita na jedan od naših poslužitelja i namjerno je dizajnirana za obradu jednostavnih potpisa u cijelom dokumentu. Provjeritelj koji bi prihvaćao samo našu metodu bio bi alat samo za nas i nikoga drugog.

Kome se zaštićena polja zapravo otkrivaju?

Ne obična kupkinja - njoj je izdan javni propusnik. To je servis s registriranim legitimnim interesom, rekondicioner koji procjenjuje vrijednost rabljenog paketa baterija, recikler koji razvrstava kemijske komponente, osiguravatelj koji određuje cijenu rizika i tijelo koje gradi slučaj - dionici čije odluke ovise o novcu ili sigurnosti. Uredba EU o baterijama obuhvaća upravo te faze. Istovremeno su to upravo dionici koji, 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?

Vjerojatno ne, i prilično smo otvoreni po tom pitanju. Potpis koji pokriva cijeli dokument, koristeći kriptosuit eddsa-jcs-2022, pokriva prolaz čija su polja sva javna, a znatno je jeftinije postaviti i koristiti. Otkrivanje polja po polju postaje isplativo čim se uključi druga ciljana skupina, poput servisne mreže, reciklera ili javnog tijela kojem biste inače dostavili nepotpisane isječke. Obje metode su otvorene W3C specifikacije i obje se trenutačno koriste u Time Machineu, na “putovnici” majice i na “putovnici” baterije.

Mogu li se osobni podaci kasnije izbrisati bez poništavanja putovnice?

Da, i ovaj je aspekt zapravo zahtjevan prema europskom pravu. Opća uredba o zaštiti podataka daje ljudima pravo na brisanje svojih osobnih podataka, a zapis podataka označen kao blok ne može to ispuniti bez uništenja vlastitog potpisa. Budući da su ovdje svaka polja definirana zasebno, može se ukloniti pojedinačno polje, a da sve ostalo ostane provjerljivo - bez ponovnog izdavanja, bez fragmentirane povijesti verzija. Regulatorna polja koja zakon zahtijeva da se zadrže ostaju na snazi.

Tko drži ključ za potpis?

Svaki prolaz prati dva dokaza, od kojih jedan može biti tvoj. Svako izdavanje također zahtijeva kratkotrajni ključ koji pojedinačno potpisuje polja koja se otkrivaju; izdavatelj sam generira i odbacuje taj ključ, jer da ga mi posjedujemo, mogli bismo naknadno izmišljati pojedinačna polja, a neovisnost potpisa izdavatelja bila bi samo tvrdnja. Provjeravamo vraćeni dokaz pomoću pohranjenog javnog ključa prije nego što mu povjerujemo. Svaki putovnica stoga sadrži dva dokaza od dviju neovisnih vlasti, i za pojedinačno otkriveno polje i za cjelokupni skup podataka.

Hoće li putovnica i za deset godina biti važeća?

Upravo tu leži napor. Selektivno otkrivanje temelji se na sadržaju dokumenta, a ne na njegovim bajtovima; stoga se isti standardizirani format mora reproducirati znak po znak deset godina kasnije. Tri stvari narušavaju ovaj sustav, a mi smo sve tri ugušili u začetku - svaka se vrijednost zapisuje sa svojom vrstom, a objava se prekida ako se naiđe na broj bez vrste; svaki se rječnik 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. Uspostavljen je nepromjenjivi desetogodišnji arhiv koji stupa na snagu čim se putovnice registriraju u EU registru, koji je operativan od 20. srpnja 2026. prema Provedbenoj uredbi (EU) 2026/1778. Pročitajte više u našoj analizi Uredbe o registru.

Novosti o razinama pristupa i dokazima

Selektivno otkrivanje, potpisi i razvoj DPP standarda - mjesečni pregled izravno u vaš sandučić.