Zverejniť bez straty podpisu

Zverejniť bez straty podpisu

Transpareo podpisuje každé pole v pase výrobku samostatne, aby bolo možné overiť aj chránené polia. Čitateľ nemusí platforme dôverovať.

Digitálny pas výrobku neukazuje všetkým to isté. Kupujúca vidí verejne dostupné údaje. Opravovňa alebo recyklačná firma vidí viac. Orgán dohľadu nad trhom vidí všetko. To je jasné a európske normy to medzičasom výslovne stanovujú.

Zaujímavá otázka znie skôr takto: Ak niekto vidí okrem verejných údajov aj chránené polia, môže potom preukázať, že práve tieto polia sú autentické? Alebo musí veriť, že platforma ich správne vybrala a odovzdala bez zmien?

Predstavte si notára, ktorý neoveruje list ako celok, ale každý odsek zvlášť. Verejný list dostane každý. Kto má nárok na viac, dostane k nemu dodatočné odseky, a každý z nich naďalej nesie pečiatku toho istého notára. Takto sme vybudovali našu platformu. Pri väčšine platforiem je úprimná odpoveď na vyššie uvedenú otázku: dôvera. U nás znie: dôkaz pre každé pole, ktoré sa pridá až pri zverejnení. Tento článok vysvetľuje, prečo je tento rozdiel dôležitý a prečo sme sa rozhodli pre náročnejšiu cestu.

Pravidlo prístupu spĺňajú všetci rovnako

NormaEN 18239, európska norma pre prístupové práva, bezpečnosť a dôvernosť v DPP, vyžaduje, aby bol prístup riadený pre každé pole: pre každé pole existuje pravidlo, kto ho smie vidieť. To je správna požiadavka a nie je ťažké ju splniť. Aký status majú tieto normy vôbec, sme podrobne rozobral v našom príspevku o harmonizovaných normách.

Bežným spôsobom, ako to dosiahnuť, je filter na serveri. Server vie, kto posiela žiadosť, overí, čo táto osoba smie vidieť, a vráti presne tento výrez. Norma nevyžaduje nič viac. Čitateľ musí veriť, že server vybral údaje čestne a počas prenosu nič nezmenil. Pre verejný informačný leták je to v poriadku. V prípade hodnoty, na základe ktorej spracovateľ stanovuje cenu použitej batérie, je to však veľká dôvera.

Je tu však jeden háčik, ktorým sa norma nezaoberá: výber prichádza bez pečate.

Zrejmé riešenie je podpísať údaje. Na oboch koncoch škály funguje bežný podpis dobre: podpísať verejný náhľad, podpísať kompletný súbor údajov. Ako to prebieha v detailoch, je uvedené v časti „Podpisy a certifikáty“ v DPP. V strede to však zlyháva. Podpis na celom dokumente pokrýva presne tie polia, ktoré tam boli v čase podpisu. Ak oprávnenému čitateľovi dodatočne sprístupníte chránené pole, toto pole sa nachádza mimo podpísaného súboru a k nemu sa dostane nepodpísané. Nikto vopred nepodpisuje každú možnú kombináciu toho, kto čo vidí, pretože počet kombinácií by sa exponenciálne zvýšil. Vracáme sa k filtru bez pečate a stredná úroveň opäť spočíva na dôvere.

Podpisovanie každého poľa jednotlivo

Existuje lepšia konštrukcia a na nej budujeme našu platformu. Namiesto podpísania hotového dokumentu ako jedného bloku sa tvorca v jednom kroku vyjadruje ku každému poľu jednotlivo (pre znalcov noriem: postup W3C ecdsa-sd-2023).

Každé zobrazenie začína s tými istými verejnými poľami. To, čo čitateľ uvidí navyše, sa pridáva pole po poli, a každé z týchto polí naďalej vedie k verejnému kľúču výrobcu, offline, bez opätovného podpisovania a bez dôvery v subjekt, ktorý zobrazenie zostavil. Pole bez nároku jednoducho chýbajú. Nie sú začiernené, ale vôbec tam nie sú a nič o nich neprezradí.

Jeden cyklus: opravovňa

Opravovňa prejavila oprávnený záujem o batériu, čo je jedna z úrovní prístupu, ktorú nariadenie o batériách výslovne stanovuje. Jej servisný systém sa prihlási pomocou svojho kľúča na našom rozhraní a vyžiada si pas. Odpoveďou je ten istý verejný pas, ktorý vidí aj kupujúca, avšak o jedno pole bohatší: návod na demontáž, ktorý je sprístupnený len oprávneným čitateľom. Žiaden druhý dokument, žiadna špeciálna verzia.

Než sa prevádzka spolieha na toto pole, jej softvér overí dodanú pečať pomocou verejného kľúča výrobcu. Ak je overenie podpisu úspešné, a to aj v prípade dodatočného poľa, vie, že tento návod pochádza presne od výrobcu a nikto počas prenosu ho nezmenil. Ak overenie neprebehne úspešne, celú stránku odloží stranou. To, aby dostal presne tie polia, na ktoré má nárok, zostáva úlohou nášho systému riadenia prístupu. Novinkou je nasledujúci krok: či je doručený obsah autentický, overuje si sám, bez toho, aby sa nás pýtal.

Prečo je „neporušená“ pečať kľúčová

Neporušená pečať neznamená, že obsah je pravdivý. Hovorí: Presne toto napísal výrobca a odvtedy na tom nikto nezmenil ani znak. Tým sa z otázky dôvery vylučuje každý, kto dokument len posunul ďalej: dočasná pamäť, sieť, archív, my.

Kto vám pas dal, už nehrá žiadnu úlohu.

A pečať je binárna. Buď drží, alebo nedrží, pololomená pečať neexistuje. Preto nie je žiadny postupný rozdiel v tom, či sa k vám dodatočné polia dostanú s pečaťou alebo bez nej: bez pečate nie sú vyplnené o niečo menej, nie sú vyplnené vôbec.

Oba postupy na prezretie

To si môže každý overiť sám. Transpareo Time Machine je naša aplikácia s otvoreným zdrojovým kódom na zobrazovanie pasov výrobku: prechádza históriou verzií pasu a pritom prepočítava každý podpis v prehliadači používateľa bez toho, aby sa obracala na náš server. Certifikát trička obsahuje podpis pre celý dokument, certifikát batérie obsahuje schválenie po jednotlivých poliach.

Obe sú otvorené štandardy W3C, ktoré môže implementovať ktokoľvek. Vytvorenie a prevádzka podpisu pre celý dokument je výrazne lacnejšie a stačí to tým, ktorí poskytujú iba verejné údaje. Skutočnosť, že Transpareo Time Machine ovláda oba postupy, je zámerná: pas zostáva bežným štandardným formátom, ktorý dokáže skontrolovať každý vhodný nástroj, nielen ten náš.

Komu to slúži a čo vyžaduje norma

Komu sa vlastne okrem verejných údajov zverejňuje ešte niečo? Nie náhodnej kupujúcej. Sú to spracovatelia, ktorí posudzujú hodnotu použitého akumulátora, poisťovatelia, ktorí oceňujú riziko, recyklačné spoločnosti, ktoré triedia chemikálie, a úrady, ktoré vyšetrujú prípad. Čitatelia, ktorých rozhodnutia závisia od peňazí alebo bezpečnosti. A pri bežnom prístupe práve tí čitatelia, ktorí nedostanú pečať pre polia, na ktorých spočíva ich rozhodnutie. Domnievame sa, že certifikačná pečať by mala pre všetkých znamenať to isté: každé zobrazené pole pochádza od výrobcu a odvtedy sa s ním nikto nemanipuloval. Pečať, ktorá sa vzťahuje len na verejné polia, je polovičná pečať.

Povieme to otvorene: nič z toho nie je predpísané. Norma EN 18239 vyžaduje, aby bol prístup riadený, a filter na serveri to bezchybne zabezpečuje. Zabezpečenie overiteľnosti zverejnených polí robíme navyše, pretože celý zmysel podpísaného pasu spočíva v tom, že nikto nemusí dôverovať platforme. Vylúčenie strednej úrovne ako výnimky práve vráti tú dôveru, ktorú mal podpis odstrániť.

Ten istý princíp umožňuje, aby sa na niektoré pole zabudlo

Zameranie sa na každé pole jednotlivo so sebou prináša druhú vlastnosť, ktorú skutočne vyžaduje európske právo. Všeobecné nariadenie o ochrane údajov dáva ľuďom právo na vymazanie osobných údajov. Záznam údajov podpísaný ako jeden blok nemôže túto požiadavku splniť bez toho, aby zničil vlastný podpis.

Keďže tu každé pole stojí samostatne, je možné odstrániť jedno pole, zatiaľ čo všetko ostatné naďalej spĺňa požiadavky. Ak sa osobné údaje omylom dostanú do pasu, dajú sa z neho bez problémov odstrániť a pas zostane platný: bez potreby vydania nového pasu, bez prerušenia histórie. Polia, ktorých uchovávanie vyžaduje zákon, zostanú zachované; to, čo je možné vymazať, sa dá na požiadanie vymazať aj o roky neskôr.

Prečo je to náročné a ako sme to vyriešili

Tento postup sme nevymysleli my, ide o verejný štandard W3C. Náročné nie je prísť s touto myšlienkou. Náročné je vytvoriť ju tak, aby pas fungoval aj o desať rokov. Bežný podpis sa počíta na základe bajtov dokumentu. Podpis po poliach sa počíta na základe jednotlivých údajov, a preto sa pas pred podpísaním prevedie do pevného formátu, v ktorom každý údaj stojí ako samostatná veta. Tento formát sa musí o desať rokov obnoviť znak po znaku, inak už žiadna pečať nebude pasovať. Stoja tomu v ceste tri nenápadné veci a my sme všetky tri vyriešili pri koreni.

Čísla strácajú svoj typ. Hodnota ako 2,0 sa po prechode bežným dátovým formátom vráti ako 2. Pre človeka je to to isté, pre pevný formát však ide o inú vetu. U nás sa každá hodnota ukladá spolu so svojím typom a zverejnenie sa preruší, hneď ako sa objaví aj len jedno číslo bez typu.

Názvy ešte neznamenajú význam. Každý názov poľa sa musí viazať na jednoznačný význam v slovníku, inak pole pri konverzii ticho zmizne a pečať ho nezakryje. U nás je každý slovník k dispozícii lokálne a nikdy sa nestahuje cez sieť; neznámy názov poľa zastaví podpisovanie namiesto toho, aby ticho vrátil prázdny výsledok.

Záznamy potrebujú pevné názvy. Každý záznam v dokumente má u nás pevný identifikátor, aby sa zápis pri každom prechode nezmenil, namiesto toho, aby sa zakaždým prideľovali nové pomocné názvy.

Najcitlivejšia časť spočíva vo vlastnom kľúči výrobcu. Pre každé vydanie je potrebný dodatočný dočasný kľúč, pomocou ktorého sa jednotlivé zverejniteľné polia podpisujú. Tento kľúč generuje a likviduje samotný výrobca. Ak by bol u nás, mohli by sme dodatočne vymýšľať jednotlivé polia. Každý pas nesie dve takéto pečate, jednu od výrobcu a jednu od spoločnosti Transpareo, a to aj v prípade jedného samostatne zverejneného poľa.

Pre nás je táto námaha oprávnená. Vďaka Transpareo Proofchain sa každý pas pri zverejnení podpíše a prepojí s predchádzajúcou verziou, a Transpareo Vault - nezmeniteľný desaťročný archív - začne fungovať hneď, ako budú pasy zaregistrované v registri EÚ. Podpisovanie každého poľa namiesto celého bloku je rozšírením tohto jadra, nie je to žiadny doplnok.

Kde sa nachádzame

Rozhodli sme sa pre dôkaz pre každého čitateľa, pretože pečať by mala znamenať to isté bez ohľadu na to, kto sa na ňu pozerá. Kto chce vidieť, ako to funguje: Oba pasy uvedené v odkazoch vyššie sa overujú priamo v prehliadači bez nutnosti kontaktovať server.

Otázky k tomuto príspevku

Predpisuje nejaká norma štruktúru po jednotlivých poliach?

Nie. Norma EN 18239, európska norma pre prístupové práva v DPP, vyžaduje, aby bol prístup riadený pre každé pole zvlášť, a filter na serveri túto požiadavku plne spĺňa. To, že zverejnené polia sú navyše overiteľné, je naše rozhodnutie a nie je to žiadna povinnosť, ktorú by niekto vyžadoval v rámci regulácie. Považujeme túto námahu za oprávnenú, pretože celý zmysel podpísaného pasu spočíva v tom, že nikto nemusí dôverovať platforme. Aký status majú tieto normy vôbec, sa dozviete v našom príspevku o harmonizovaných normách.

Zverejňujeme iba verejne dostupné údaje. Je to potrebné?

Pravdepodobne nie, a to aj otvorene priznávame. Podpis na celom dokumente pokrýva pas, ktorého všetky polia sú verejné, a jeho vytvorenie aj prevádzka sú výrazne lacnejšie. Schvaľovanie po jednotlivých poliach sa oplatí hneď, ako pribudne druhá cieľová skupina, napríklad sieť servisov, recyklačná spoločnosť alebo úrad, ktorým by ste inak odovzdávali výpisy bez pečate. Oba postupy sú otvorenými štandardmi W3C (ecdsa-sd-2023 pre podpis po jednotlivých poliach), každý nástroj, ktorý tento štandard podporuje, ich môže overiť, a oba dnes bežia v Transpareo Time Machine - na pase trička aj na pase batérie.

Je možné neskôr vymazať osobné údaje bez zneplatnenia pasu?

Áno, a táto časť je skutočne vyžadovaná európskym právom. Všeobecné nariadenie o ochrane údajov dáva ľuďom právo na vymazanie osobných údajov, a dátový záznam podpísaný ako blok nemôže túto požiadavku splniť bez toho, aby sa zničila jeho vlastná signatúra. Keďže je tu každé pole definované samostatne, je možné odstrániť jedno pole, pričom všetko ostatné naďalej spĺňa požiadavky, bez nutnosti opätovného vystavenia a bez narušenia histórie verzií. Polia, ktorých uchovávanie vyžaduje zákon, zostávajú zachované.

Kto má podpisový kľúč?

Každý pas nesie dve pečate a jedna z nich môže byť vaša. Každé vydanie navyše vyžaduje dočasný kľúč, ktorý jednotlivo podpisuje polia, ktoré sa môžu zverejniť; tento kľúč generuje a následne likviduje samotný výrobca, pretože keby bol u nás, mohli by sme jednotlivé polia dodatočne vymyslieť. Vracajúcu sa pečiatku overíme pomocou uloženého verejného kľúča, než jej uveríme. Každý pas tak nesie dve pečiatky od dvoch nezávislých inštitúcií, a to tak pre jednotlivé zverejnené polia, ako aj pre celý súbor údajov.

Bude pas platný aj o desať rokov?

Práve v tom spočíva náročnosť. Políčková signatúra počíta na základe jednotlivých údajov dokumentu, nie na základe jeho bajtov, takže rovnaký pevný zápis sa musí o desať rokov neskôr obnoviť znak po znaku. Tri veci tento proces narúšajú a my sme všetky tri vyriešili priamo pri zdroji. Každá hodnota sa ukladá spolu so svojím typom, každý slovník máme k dispozícii a nikdy sa nestahuje cez sieť a každý záznam má pevný identifikátor. Nezmeniteľný desaťročný archív je vytvorený a začne fungovať hneď, ako budú pasy zaregistrované v registri EÚ. Viac o tom nájdete v našej analýze nariadenia o registri.

Aktualizácie týkajúce sa úrovní prístupu a dokladov

Selektívne zverejňovanie, podpisy a vývoj noriem DPP - každý mesiac v stručnej forme vo vašej e-mailovej schránke.