Stroj času pre DPP

Predstavte si, že držíte v ruke nejaký výrobok a naskenujete QR kód, ktorý je na ňom. Namiesto súboru PDF sa otvorí malá aplikácia. Uvidíte informácie o výrobku v reálnom čase: z čoho sa skladá, odkiaľ pochádza, na čo je potrebné dávať pozor. Jedným potiahnutím prsta sa vrátite späť v čase - môžete si prezrieť každú verziu, ktorá kedy bola vydaná.

Toto je Transpareo Time Machine, naša open-source spotrebiteľská aplikácia pre každý digitálny pas výrobku. Kód je k dispozícii pod licenciou GPL v3 na GitHub.

Vytvárame ju, pretože nariadenie EÚ o digitálnom pase výrobku bolo napísané pre spotrebiteľov - pre človeka, ktorý má výrobok v rukách. Väčšina poskytovateľov z neho robí formulár na splnenie požiadaviek, ktorý si nikto neprečíta ani dvakrát. My z neho robíme aplikáciu, ktorú si spotrebiteľ aj otvorí.

Presvedčte sa sami

Vzorové pasy výrobku sú kompletné a obsahujú fiktívne údaje: prejdite si históriu verzií a otvorte kontrolnú nálepku - priamo v prehliadači, bez nutnosti registrácie.

Čo táto aplikácia robí

Štyri kontaktné body z pohľadu osoby, ktorá drží produkt v ruke. Bez prihlásenia, bez inštalácie aplikácie.

1
Skenovanie

Naskenujte QR kód pomocou fotoaparátu v smartfóne. Aplikácia sa otvorí v prehliadači.

2
Zobraziť novinky

Produkt sa objavuje v prítomnosti - zložky, materiály, pôvod, údržba, recyklácia.

3
Prehliadať históriu

Jedným potiahnutím prsta sa vrátite späť v čase. Každá predchádzajúca verzia s dátumom a dôvodom zmeny.

4
Zdieľať

Každá verzia má svoj vlastný odkaz. Používateľ zdieľa konkrétnu verziu s priateľmi alebo úradmi.

Prečo vlastne

Nariadenie EÚ o digitálnom pase výrobku predstavuje najväčší posun smerom k transparentnosti výrobkov za posledné desaťročia. Ak si pozorne prečítate príslušné texty, zistíte, že je výslovne určené spotrebiteľom. Úrady, recyklačné spoločnosti a servisné dielne sa k tomu prispôsobujú, ale primárnym adresátom je osoba, ktorá má výrobok v rukách.

Z hľadiska čísel je situácia jednoznačná. Priemerný európsky občan bude na konci tohto desaťročia môcť ročne naskenovať desiatky až stovky pasov výrobku. Pri 200 miliónoch domácností to predstavuje miliardy interakcií so spotrebiteľmi ročne. V porovnaní s tým je počet interakcií zo strany úradov a recyklačných spoločností zanedbateľne malý.

Ak má nariadenie osloviť spotrebiteľa, musí byť spotrebiteľská stránka dobre navrhnutá - rýchla, pekná a prehľadná. Inak nesplní svoj účel.

Rozhodli sme sa vytvoriť túto spotrebiteľskú stránku ako open source, aby nebola závislá od jediného poskytovateľa.

Postup je predpísaný, manifest je náš

Údaje v pase výrobku sa menia: oprava, nový podiel recyklovaného materiálu, stiahnutie z trhu. Predpisy preto vyžadujú, aby boli predchádzajúce verzie naďalej dostupné: norma týkajúca sa ukladania údajov zmrazuje každú verziu, norma týkajúca sa rozhraní stanovuje, že každú verziu je možné cielene prečítať. Čo predpisy neriešia, je to, čo je medzi tým: zoznam, ktorý spája všetky verzie pasu do jedného príbehu. Spoločnosť Transpareo ho k každému pasu zverejňuje ako manifest, podpísaný, pričom každá verzia je prostredníctvom „odtlačku“ prepojená so svojou predchádzajúcou verziou. Takto sa „stroj času“ prechádza históriou produktu a čitateľ si overí nielen to, že verzia je autentická, ale aj to, že ide o aktuálnu verziu v nepretržitej postupnosti.

Aplikácia však na tom netrvá. Ak jej namiesto manifestu ukážete jediný pas, aký zverejňuje každý poskytovateľ podľa otvorených štandardov, zobrazí túto jednu verziu, overí jej podpis, ak ho má, a časovú os jednoducho vynechá. Certifikát bez podpisu sa nepovažuje za chybu, ale jednoducho sa zobrazí bez pečate overenia. Takto tá istá aplikácia zobrazuje aj certifikáty, ktoré nikdy neboli zaregistrované v Transpareo.

Zmena poskytovateľa bez prerušenia

Nariadenie EÚ o digitálnom pase výrobku - prenosné medzi službami a systémami, a nie viazané na jedného poskytovateľa služieb. Nezávislosť od poskytovateľa služieb teda nie je doplnkom, ale súčasťou požiadavky.

Transpareo Time Machine je modul, ktorý túto požiadavku konkretizuje. Keďže každý pas výrobku sa dodáva v otvorených štandardoch - identifikácia nezávislá od resolvera, kanonická serializácia, verejne zverejnené kľúče - a renderer je open source pod licenciou GPL v3, zobrazenie pasu nikdy nezávisí od našej platformy.

Za pas výrobku zodpovedá hospodársky subjekt - výrobca, dovozca alebo splnomocnený zástupca. Ak sa rozhodne opustiť Transpareo a prejsť k inému poskytovateľovi, zobrazenie zostane nezmenené: už zverejnené verzie vrátane histórie bude ten istý renderer s otvoreným zdrojovým kódom naďalej zobrazovať bez zmien a nový poskytovateľ, ktorý používa tie isté otvorené štandardy, bude zobrazený presne tou istou aplikáciou.

Údaje sa prenesú spolu s ním, spotrebitelia nezaznamenajú žiadnu zmenu a nikto nemusí čakať na migráciu.

Samotný presun nie je projekt. Transpareo Time Machine je statický balík: stačí ho raz vytvoriť, skopírovať na ľubovoľný webový server a hotovo. Dizajn, ktorý ste v Transpareo nastavili pre svoje pasy, sa prenáša ako zverejnený štýlový list spolu s každým pasom. Zobrazenie pasu, na ktoré si vaši zákazníci zvykli, teda vyzerá na vašom vlastnom serveri presne rovnako, vrátane farieb, písma a loga.

Overené v prehliadači, nie na našom serveri

V hornej časti každého pasu výrobku sa zobrazuje nálepka: Overené spoločnosťou Transpareo. Ukazuje výsledok overenia, ktoré neprebieha na našom serveri, ale v prehliadači návštevníka - na základe načítaných bajtov a verejných kľúčov vydavateľa.

Každú verziu DPP podpisujú dve navzájom nezávislé strany: vydavateľ a Transpareo. Oba podpisy musia byť overiteľné, aby sa štítok zmenil na zelený. V rámci systému „Bring Your Own Key“ (BYOK) prevádzkuje vydavateľ vlastný podpisový koncový bod - spoločnosť Transpareo nikdy neuchováva súkromný kľúč a dopĺňa iba nezávislý protipodpis. Tak vzniká podpis vydavateľa, ktorý samotná spoločnosť Transpareo nedokáže vygenerovať.

Napadnutý server nemôže sfalšovať zaškrtnutie, pretože overenie prebieha priamo u návštevníka.

Kto chce vedieť presné podrobnosti, nech klikne na štítok. Za ním uvidíte reťazec podpisov, hashové hodnoty a reťazovú históriu verzií. Kto chce len základné informácie, nech to jednoducho ignoruje a pokračuje v čítaní pasu výrobku.

Toto overenie je k dispozícii aj ako samostatná stránka: Na stránke Overenie DPP stačí vložiť URL manifestu ľubovoľného pasu výrobku a zobrazí sa vám kompletný výsledok overenia - bez toho, aby ste museli samotný pas výrobku otvárať.

Kód zverejňujeme

Transpareo Time Machine je k dispozícii pod licenciou GPL v3 na GitHub. Zverejnené úpravy musia byť tiež pod licenciou GPL v3, aby každý ďalší vývoj slúžil verejnosti.

Klonovanie, fork, vlastné hosťovanie - všetko je povolené.

Ako aplikáciu integrovať - či už pomocou jedného riadku na stránke, ako balík vo vlastnej aplikácii alebo úplne vlastným hosťovaním - nájdete v súbore README na uvedenej stránke. Nájdete tam aj sesterský prvok určený výlučne na overovanie podpisov, ktorý beží naživo na adrese Overenie DPP.

Kto túto aplikáciu využíva zmysluplne

Aplikácia je primárne určená pre spotrebiteľov. Funguje však pre všetkých, ktorí si chcú nezávisle prezrieť alebo overiť údaje o produkte.

  • Koneční spotrebitelia skenujú, prezerajú, listujú a zdieľajú. Bez prihlásenia, bez sledovacích nástrojov.
  • Orgány dohľadu nad trhom a príslušné úrady považujú pas výrobku za softvér, ktorého zdrojový kód je verejne kontrolovateľný.
  • Servisy a recyklačné spoločnosti vidia zloženie materiálu a pokyny na demontáž priamo na produkte.
  • Značky a prevádzkovatelia forkov prispôsobujú balík svojej vlastnej značke - CSS tokeny, vlastné komponenty, vlastné hosťovanie.

Čo sa stane, ak Transpareo už nebude existovať

EÚ vyžaduje, aby . Pri mnohých produktoch je to desať rokov a viac, a poskytovateľ služieb SaaS zriedka vydrží tak dlho. Preto platformu od začiatku budujeme tak, aby boli pasy výrobku použiteľné nezávisle od nás:

  • Každá podpísaná verzia DPP je uložená vo verejne prístupnom úložisku. Bajtové údaje spolu so zverejnenými verejnými kľúčmi stačia na neskoršiu verifikáciu.
  • Hneď ako sú pasy výrobku zaregistrované v registri EÚ, druhá pamäť chránená proti zápisu uchováva každú verziu DPP a protokol udalostí navyše po dobu desiatich rokov. Nikto - ani my - nemôže tieto kópie dodatočne meniť.
  • Po vypovedaní zmluvy zostanú krátke URL adresy pasov výrobku dostupné prostredníctvom presmerovania na platforme Transpareo.
  • Transpareo Time Machine funguje bez zmien aj s archivovanými dátami. Tento balík nás počas behu nevolá späť; potrebuje len bajty a kľúče.

Ak by platforma Transpareo zajtra zmizla, zostali by verzie DPP a renderer s otvoreným zdrojovým kódom.

Pre tých, ktorí sa zaujímajú o techniku

Tu je vysvetlenie toho, čo sa deje „pod kapotou“. Ak to nemusíte vedieť podrobne, môžete túto časť preskočiť - aplikácia bude fungovať aj tak.

  • GS1 Digital Link (ISO/IEC 18975): URL adresa pasu výrobku obsahuje identifikáciu produktu v štandardizovanej forme - nezávislá od resolvera, zameniteľná medzi dodávateľmi.
  • JSON Canonicalization Scheme (RFC 8785): Deterministická serializácia. Vďaka tomu zostáva hash reprodukovateľný nezávisle od poradia polí alebo medzier - každý si ho môže sám prepočítať.
  • W3C Data Integrity Proofs (eddsa-jcs-2022): Ed25519 podpis nad kanonizovanou formou (JCS).
  • /.well-known/dpp-keys/ (RFC 8615): Verejné kľúče vydavateľov sa nachádzajú na štandardizovanej ceste - nie je potrebné kontaktovať Transpareo, každý overovateľ si ich nájde sám.

Všetko je zdokumentované v README na GitHub - vrátane architektúry frontendu (vlastné reaktívne jadro, žiadne externé frameworky) a návodu na kompiláciu pre vlastné hosťovanie.

Zobraziť kód na GitHub-e

Úplný zdrojový kód, všetky verzie a diskusiu o probléme nájdete vo verejnom repozitári.