Zveřejnit, aniž by došlo ke ztrátě podpisu

Zveřejnit, aniž by došlo ke ztrátě podpisu

Transpareo podepisuje každé pole v pasu výrobku samostatně, aby bylo možné ověřit i chráněná pole. Čtenář nemusí platformě důvěřovat.

Digitální pas výrobku neukazuje všem stejné informace. Kupující vidí veřejně dostupné údaje. Opravna nebo recyklační podnik vidí více. Orgán dozoru nad trhem vidí vše. To je jasné a evropské normy to nyní výslovně stanovují.

Zajímavá otázka zní poněkud jinak: Pokud někdo kromě veřejných údajů vidí i chráněná pole, může pak prokázat, že právě tato pole jsou autentická? Nebo musí věřit, že je platforma správně vybrala a předala beze změn?

Představte si notáře, který neověřuje dopis jako celek, ale každý odstavec zvlášť. Veřejný dopis dostane každý. Kdo má nárok na více, dostane k němu další odstavce, a každý z nich nese pečeť téhož notáře. Tak jsme vybudovali naši platformu. U většiny platforem zní upřímná odpověď na výše uvedenou otázku: důvěra. U nás zní: důkaz, a to pro každé pole, které se přidá až při zveřejnění. Tento článek vysvětluje, proč na tomto rozdílu záleží a proč jsme se vydali tou náročnější cestou.

Pravidlo přístupu splňují všichni stejně

NormaEN 18239, evropská norma pro přístupová práva, bezpečnost a důvěrnost v DPP, vyžaduje, aby byl přístup řízen pro každé pole zvlášť: pro každé pole existuje pravidlo, kdo ho smí vidět. To je správný požadavek a není těžké jej splnit. Jaký status tyto normy vlastně mají, jsme rozebrali v našem příspěvku o harmonizovaných normách.

Obvyklým způsobem, jak toho dosáhnout, je filtr na serveru. Server ví, kdo se dotazuje, ověří, co tato osoba smí vidět, a vrátí přesně tento výřez. Norma nic víc nevyžaduje. Čtenář musí věřit, že server provedl výběr poctivě a po cestě nic nezměnil. Pro veřejný informační leták je to v pořádku. U hodnoty, na které zpracovatel okamžitě zakládá cenu použité baterie, je to však velká důvěra.

Je tu jeden háček, o který se norma nestará: výňatek dorazí bez pečetě.

Zřejmým řešením je podepsat data. Na obou koncích škály funguje běžný podpis dobře: podepsat veřejný náhled, podepsat kompletní datový soubor. Jak to funguje v detailu, je popsáno v části Podpisy a certifikáty v DPP. Uprostřed to však selhává. Podpis celého dokumentu pokrývá přesně ta pole, která při podepisování existovala. Pokud oprávněnému čtenáři dodatečně zpřístupníte chráněné pole, leží toto pole mimo podepsanou množinu a dostane se k němu nepodepsané. Nikdo nepodepisuje předem všechny možné kombinace toho, kdo co vidí, protože počet kombinací exponenciálně roste. Vrátíme se tedy k filtru bez pečetě a střední úroveň opět závisí na důvěře.

Podepisování každého pole zvlášť

Existuje lepší konstrukce a na ní stavíme naši platformu. Místo podpisu hotového dokumentu jako jednoho bloku se tvůrce v jediném kroku vyjádří ke každému poli jednotlivě (pro znalce standardů: postup W3C ecdsa-sd-2023).

Každý náhled tedy začíná u stejných veřejných polí. To, co čtenář uvidí navíc, se přidává pole po poli, a každé z těchto polí dále odkazuje na veřejný klíč výrobce - offline, bez opětovného podepisování a bez důvěry v subjekt, který náhled sestavil. Pole bez nároku prostě chybí. Nejsou začerněná, ale vůbec tam nejsou a nic o nich neprosakuje.

Jeden průchod: opravna

Opravna přihlásila oprávněný zájem o baterii, což je jedna z úrovní přístupu, kterou nařízení o bateriích výslovně stanoví. Jeho servisní systém se přihlásí pomocí svého klíče k našemu rozhraní a vyžádá si pas. Odpovědí je stejný veřejný pas, jaký vidí i kupující, ale o přesně jedno pole bohatší: návod na demontáž, který je zpřístupněn pouze oprávněným čtenářům. Žádný druhý dokument, žádná speciální verze.

Než se podnik spolehne na toto pole, jeho software ověří přiloženou pečeť pomocí veřejného klíče výrobce. Pokud ověření podpisu proběhne úspěšně, a to i včetně dodatečného pole, ví, že tento návod pochází přesně od výrobce a nikdo na cestě jej nijak neupravil. Pokud ověření selže, odloží celý záznam stranou. To, že obdrží přesně ta pole, na která má nárok, zůstává úkolem našeho systému řízení přístupu. Novinkou je následující krok: zda je doručený obsah autentický, ověřuje sám, aniž by se nás ptal.

Proč je „neporušenost“ tím podstatným

Nezničené pečeť neříká, že obsah je pravdivý. Znamená: Přesně toto napsal výrobce a od té doby nikdo nezměnil ani jediné znaménko. Tím pádem z otázky důvěry vypadává každý, kdo dokument pouze předal dál: mezipaměť, síť, archiv, my.

Kdo vám ten pas dal, už nehraje žádnou roli.

A pečeť je binární. Buď drží, nebo nedrží, nic takového jako napůl porušená pečeť neexistuje. Proto není žádný postupný rozdíl v tom, zda k vám dodatečná pole dorazí s pečetí, nebo bez ní: bez pečetě nejsou jen o něco méně podložená, nejsou podložená vůbec.

Oba způsoby prohlížení

To si může každý ověřit sám. Transpareo Time Machine je naše aplikace s otevřeným zdrojovým kódem pro prohlížení pasů výrobků: listuje v historii verzí pasu a přitom přepočítává každý podpis v prohlížeči uživatele, aniž by se dotazovala na náš server. Certifikát trička obsahuje podpis pro celý dokument, certifikát baterie pak schválení jednotlivých polí.

Oba jsou otevřené standardy W3C, které může implementovat kdokoli. Vytvoření a provozování podpisu pro celý dokument je výrazně levnější a pro ty, kdo poskytují pouze veřejná data, to zcela postačuje. To, že Transpareo Time Machine ovládá oba postupy, je záměrné: pas zůstává běžným standardním formátem, který dokáže zkontrolovat jakýkoli vhodný nástroj, nejen ten náš.

Komu to prospívá a co norma vyžaduje

Komu se vlastně kromě veřejných údajů ještě něco zveřejňuje? Ne náhodné kupující. Jsou to zpracovatelé, kteří posuzují, jakou má použitá baterie hodnotu, pojišťovny, které oceňují riziko, recyklační firmy, které třídí chemikálie, a úřady, které sestavují spis. Čtenáři, jejichž rozhodnutí závisí na penězích nebo bezpečnosti. A při běžném přístupu právě ti čtenáři, kteří pro pole, na nichž spočívá jejich rozhodnutí, nedostanou žádné pečeť. Domníváme se, že pečeť by měla pro všechny znamenat totéž: každé zobrazené pole pochází od výrobce a od té doby s ním nikdo nemanipuloval. Pečeť, která se vztahuje pouze na veřejná pole, je poloviční pečeť.

Říkáme to otevřeně: nic z toho není předepsáno. Norma EN 18239 vyžaduje, aby byl přístup řízen, a filtr na serveru to zvládá bezchybně. Zpřístupnění zveřejněných polí k ověření děláme navíc, protože smyslem podepsaného pasu je právě to, že nikdo nemusí platformě důvěřovat. Vyjmutí střední úrovně jako výjimky vrací přesně tu důvěru, kterou měl podpis odstranit.

Stejný princip umožňuje, aby bylo pole zapomenuto

Zaměření se na každé ## polezvlášť s sebou nese druhou vlastnost, kterou evropské právo skutečně vyžaduje. Obecné nařízení o ochraně osobních údajů dává lidem právo na výmaz osobních údajů. Datový záznam podepsaný jako jeden blok nemůže tuto povinnost splnit, aniž by zničil vlastní podpis.

Protože zde každé pole stojí samostatně, lze odstranit jednotlivé pole, zatímco vše ostatní zůstává nadále ověřitelné. Pokud se do pasu omylem dostanou osobní údaje, lze je z něj čistě odstranit a pas zůstane platný: není třeba vydávat nový, nedochází k přerušení historie. Pole, jejichž uchování zákon vyžaduje, zůstanou zachována; to, co lze vymazat, lze na požádání vymazat, a to i o několik let později.

Proč je to obtížné a jak jsme to vyřešili

Tento postup jsme nevymysleli my, jedná se o veřejný standard W3C. Obtížné není přijít s touto myšlenkou. Obtížné je ji zrealizovat tak, aby pas fungoval i za deset let. Běžný podpis se počítá na základě bajtů dokumentu. Podpis po jednotlivých polích se počítá na základě jednotlivých údajů, a proto se pas před podepsáním převede do pevného zápisu, ve kterém každý údaj stojí jako samostatná věta. Tento formát se musí za deset let znovu objevit znak po znaku, jinak už pečeť nebude sedět. Brání tomu tři nenápadné věci a my jsme všechny tři vyřešili u kořene.

Čísla ztrácejí svůj typ. Hodnota jako 2,0 se po průchodu běžným datovým formátem vrátí jako 2. Pro člověka je to totéž, pro pevný zápis však jde o jinou větu. U nás se každá hodnota ukládá se svým typem a zveřejnění se přeruší, jakmile se objeví byť jen jedno číslo bez typu.

Názvy ještě neznamenají význam. Každý název pole musí odkazovat na jednoznačný význam ve slovníku, jinak pole při převodu tiše zmizí a pečeť ho nezahrne. U nás je každý slovník k dispozici lokálně a nikdy se nestahuje přes síť; neznámý název pole zastaví podepisování, místo aby tiše vrátilo prázdný výsledek.

Záznamy potřebují pevné názvy. Každý záznam v dokumentu u nás nese pevný identifikátor, aby zápis zůstal při každém průchodu stejný, místo aby se pokaždé přidělovaly nové pomocné názvy.

Nejchoulostivější část spočívá ve vlastním klíči výrobce. Pro každé vydání je zapotřebí dodatečný, krátkodobý klíč, pomocí kterého se jednotlivá zveřejnitelná pole podepisují. Tento klíč generuje a ruší samotný výrobce. Kdyby byl u nás, mohli bychom jednotlivá pole dodatečně vymýšlet. Každý pas nese dvě taková pečetě, jednu od výrobce a jednu od Transpareo, a to i v případě jednotlivě zveřejněného pole.

Pro nás je tato námaha oprávněná. Díky Transpareo Proofchain je každý pas při zveřejnění podepsán a propojen s předchozí verzí, a Transpareo Vault - nezměnitelné desetileté archiv - začne fungovat, jakmile budou pasy zaregistrovány v registru EU. Podepisování jednotlivých polí namísto celého bloku je rozšířením tohoto jádra, nikoli nadstavbou.

Kde se nacházíme

Rozhodli jsme se pro důkaz pro každého čtenáře, protože pečeť by měla znamenat jednu věc, bez ohledu na to, kdo se na ni dívá. Kdo chce vidět, jak to funguje: oba výše odkazované vzorové pasy lze ověřit přímo v prohlížeči, aniž by bylo nutné dotazovat se na server.

Dotazy k tomuto příspěvku

Předepisuje nějaká norma podpis po jednotlivých polích?

Ne. Norma EN 18239, evropská norma pro přístupová práva v DPP, vyžaduje, aby byl přístup řízen pro každé pole zvlášť, a filtr na serveru tuto podmínku plně splňuje. To, že zpřístupněná pole jsou navíc ověřitelná, je naše rozhodnutí a nejde o žádnou povinnost, kterou by někdo na základě předpisů vyžadoval. Tuto námahu považujeme za oprávněnou, protože smyslem podepsaného pasu je právě to, že nikdo nemusí platformě důvěřovat. Jaký status tyto normy vůbec mají, se dozvíte v našem příspěvku o harmonizovaných normách.

Zveřejňujeme pouze veřejně dostupné údaje. Je to nutné?

Pravděpodobně ne, a to také otevřeně přiznáváme. Podpis pokrývající celý dokument zahrnuje pas, jehož všechna pole jsou veřejná, a jeho vytvoření i provoz jsou výrazně levnější. Schvalování po jednotlivých polích se vyplatí, jakmile přibude druhá cílová skupina, například síť opraváren, recyklační firma nebo úřad, kterým byste jinak předávali výpisy bez pečetě. Oba postupy jsou otevřené standardy W3C (ecdsa-sd-2023 pro podpis po jednotlivých polích), každý nástroj, který tento standard podporuje, je může ověřit, a oba dnes běží v Transpareo Time Machine, na pasu trička i na pasu baterie.

Je možné osobní údaje později vymazat, aniž by došlo ke znehodnocení pasu?

Ano, a tuto část skutečně vyžaduje evropské právo. Obecné nařízení o ochraně osobních údajů dává lidem právo na výmaz osobních údajů, a datový záznam podepsaný jako blok nemůže tomuto požadavku vyhovět, aniž by zničil svůj vlastní podpis. Jelikož je zde každé pole definováno samostatně, lze odstranit jednotlivé pole, zatímco vše ostatní zůstává platné, a to bez nutnosti vystavení nového dokladu a bez narušení historie verzí. Pole, jejichž uchování zákon vyžaduje, zůstávají zachována.

Kdo má podpisový klíč?

Každý pas nese dvě pečetě a jedna z nich může být vaše. Každé vydání navíc vyžaduje dočasný klíč, který jednotlivě podepisuje pole určená ke zveřejnění; tento klíč generuje a následně ruší samotný výrobce, neboť kdyby byl v našich rukou, mohli bychom jednotlivá pole dodatečně vymyslet. Vrácenou pečeť ověřujeme pomocí uloženého veřejného klíče, než jí uvěříme. Každý pas tak nese dvě pečetě od dvou nezávislých orgánů, a to jak pro jednotlivě zveřejněné pole, tak pro celý datový záznam.

Bude pas platný i za deset let?

Právě v tom spočívá náročnost. Poleová signatura počítá s jednotlivými údaji dokumentu, nikoli s jeho bajty, takže stejný pevně daný zápis se musí o deset let později znovu objevit znak po znaku. Tři věci tento proces narušují a my jsme všechny tři vyřešili u kořene. Každá hodnota se ukládá spolu se svým typem, každý slovník máme k dispozici a nikdy se nestahuje z internetu a každý záznam nese pevný identifikátor. Neměnitelné desetileté archiv je vytvořeno a začne fungovat, jakmile budou pasy zaregistrovány v registru EU. Více o tom najdete v naší analýze nařízení o registru EU.

Aktualizace týkající se úrovní přístupu a dokladů

Selektivní zveřejňování, podpisy a vývoj norem DPP - každý měsíc v přehledném formátu ve vaší e-mailové schránce.