Aegmasin DPP-dele

Kujutage ette, et hoiate toodet käes ja skannite sellel olevat QR-koodi. PDF-faili asemel avaneb väike rakendus. Näete toodet just praegu: millest see koosneb, kust see pärineb, mida tuleb silmas pidada. Ühe pühkimisliigutusega saate ajas tagasi liikuda - vaadata saab iga versiooni, mis kunagi avaldatud on.

Just seda saate nüüd proovida: demo⁠ näitab täielikku tootepassi näiteandmetega.

See on Transpareo Time Machine, meie avatud lähtekoodiga tarbijarakendus iga digitaalse tootepassi jaoks. Kood on GPL v3 litsentsi alusel kättesaadav GitHubis⁠.

Me arendame seda, sest ELi määrus digitaalse tootepassi kohta on kirjutatud tarbijate jaoks - selle inimese jaoks, kes toodet käes hoiab. Enamik pakkujaid teeb sellest nõuetele vastavuse vormi, mida keegi teist korda ei vaata. Meie teeme sellest rakenduse, mida tarbija ka avab.

Rakenduse funktsioonid

Neli puutepunkti toodet käes hoidva inimese vaatenurgast. Ei ole vaja sisse logida ega rakendust installida.

1

Skaneerimine

Skaneeri QR-kood nutitelefoni kaameraga. Rakendus avaneb brauseris.

2

Vaata uudiseid

Toode ilmub praegu - komponendid, materjalid, päritolu, hooldus, ringlussevõtt.

3

Lehekülgi sirvida

Ühe pühkimisliigutusega saab ajas tagasi kerida. Iga varasem versioon koos muudatuse kuupäeva ja põhjusega.

4

Jaga

Igal versioonil on oma link. Kasutaja jagab konkreetset versiooni sõpradele või ametiasutustele.

Miks üldse

ELi määrus digitaalse tootepassi kohta on viimaste aastakümnete suurim samm toote läbipaistvuse suunas. Kui lugeda selle aluseks olevaid tekste tähelepanelikult, on see selgesõnaliselt kirjutatud tarbijate jaoks. Ametiasutused, ringlussevõtjad ja remonditöökojad on kaasatud, kuid peamine sihtrühm on inimene, kes toodet käes hoiab.

Arvuliselt on asi selge. Keskmine Euroopa eraisik saab selle kümnendi lõpuks skaneerida aastas kümneid kuni sadu tootepasse. 200 miljoni leibkonna puhul tähendab see aastas miljardeid tarbijate interaktsioone. Ametiasutuste ja ringlussevõtjate maailm on selle kõrval arvuliselt täiesti tühine.

Kui määrus peab jõudma tarbijani, peab tarbijale suunatud veebileht olema hästi üles ehitatud - kiire, ilus ja loogiline. Muidu ei täida see oma eesmärki. Oleme otsustanud luua selle tarbijale suunatud veebilehe avatud lähtekoodiga, et see ei sõltuks ühestki konkreetsest teenusepakkujast.

Kontrollitud veebibrauseris, mitte meie serveris

Iga tootepassi ülaosas kuvatakse märgis: „Verified by Transpareo”. See näitab kontrolli tulemust, mis ei toimu meie serveris, vaid külastaja brauseris - laaditud baitide ja tootja avalikute võtmete põhjal.

Iga DPP-versiooni allkirjastavad kaks üksteisest sõltumatut osapoolt: tootja ja Transpareo. Mõlemad allkirjad peavad olema kontrollitavad, et märgis muutuks roheliseks. „Bring Your Own Key“ (BYOK) süsteemi abil haldab tootja oma allkirjastamispunkti - Transpareo ei hoia kunagi privaatset võtit, vaid lisab ainult sõltumatu vastallkirja. Nii tekib väljastaja allkiri, mida Transpareo ise luua ei saa. Kompromiteeritud server ei saa märget võltsida, sest kontroll toimub külastaja enda poolt.

Kes soovib täpsemat teavet, klõpsab märgile. Selle taga näete allkirjade ahelat, hash-väärtusi ja versioonide ajalugu. Kes soovib vaid teavet, võib selle lihtsalt ignoreerida ja jätkata tootepassi lugemist.

Sama kontroll on saadaval ka eraldi leheküljena: DPP-verifitseerimise lehel sisestage mis tahes tootepassi manifesti URL ja näete täielikku kontrollitulemust - ilma passi ise avamata.

Me avaldame selle koodi

Transpareo Time Machine on avaldatud GPL v3 litsentsi alusel GitHubis⁠. Kloonimine, harukontode loomine, isehostimine - kõik on lubatud. Avaldatud muudatused peavad omakorda olema litsentseeritud GPL v3 alusel, et iga edasiarendus teeniks üldsuse huve.

Kolm viisi paketi integreerimiseks:

  • Skriptimärgise abil: lisage lehele <script> ja <transpareo-time-machine src="…"> - valmis, ilma kompileerimiseta.
  • npm-i kaudu: npm install transpareo-time-machine oma rakenduses.
  • Ise hostimine: koondpaketi koostamine, oma infrastruktuur, null kolmandate osapoolte sõltuvusi käitamise ajal.

Kes vajab ainult allkirja kontrollimist ilma täieliku tootevaateta, importib selle sõsarelemendi <dpp-verifier> - ideaalne auditeerimistööriistadele. Saab vaadata reaalajas DPP-verifitseerimisel.

Kes kasutab rakendust mõistlikult

Rakendus on loodud eelkõige tarbijatele. Siiski sobib see kõigile, kes soovivad tooteandmeid iseseisvalt vaadata või kontrollida.

  • Lõpptarbijad skannivad, vaatavad, sirvivad ja jagavad. Ilma sisselogimiseta, ilma jälgimisseadmeteta.
  • Turujärelevalveasutused ja ametivõimud näevad tootepassi tarkvaras, mille lähtekood on avalikult auditeeritav.
  • Remonditöökodad ja ringlussevõtjad näevad materjalikoostist ja demonteerimisjuhiseid otse toote peal.
  • Kaubamärgid ja Forki haldajad kohandavad paketti oma kaubamärgile - CSS-tokenid, oma komponendid, isehosting.

Mis juhtub, kui Transpareo enam ei ole

EL nõuab, et registreeritud tootepass oleks kättesaadav vähemalt kümme aastat - isegi pärast tootja maksejõuetuks muutumist või likvideerimist. SaaS-teenusepakkuja tegutseb harva nii kaua. Seetõttu ehitame platvormi algusest peale nii, et tootepasse saaks kasutada meist sõltumatult:

  • Iga allkirjastatud DPP-versioon asub avalikult loetavas salvestusruumis. Baitid ja avaldatud avalikud võtmed on piisavad hilisemaks kontrollimiseks.
  • Niipea kui tootepassid on ELi registris registreeritud, peegeldab teine, kirjutamiskaitsega mälu iga DPP-versiooni ja sündmuste protokolli veel kümne aasta jooksul. Keegi - ka mitte meie - ei saa neid peegelduskopiasid hiljem muuta.
  • Lepingust loobumise järel jäävad lühikesed tootepassi URL-id Transpareo platvormil ümbersuunamise kaudu kättesaadavaks.
  • Transpareo Time Machine töötab muutumatult ka arhiveeritud andmestikega. Pakett ei pöördu käivitamisel meie poole tagasi; see vajab ainult baiti ja võtmeid.

Kui Transpareo platvorm homme kaoks, jääksid alles DPP-versioonid ja avatud lähtekoodiga renderer.

Tehnoloogiahuvilistele

Siin on kirjeldatud, mis toimub „kapoti all”. Kes ei pea seda üksikasjalikult teadma, võib selle osa vahele jätta - rakendus töötab ka niisama.

  • GS1 Digital Link (ISO/IEC 18975): tootepassi URL sisaldab toote identifikaatorit standardiseeritud vormis - resolverist sõltumatu, pakkujate vahel vahetatav.
  • JSON Canonicalization Scheme (RFC 8785): deterministlik serialiseerimine. Nii jääb hash-väärtus taasesitavaks sõltumata väljade järjestusest või tühikutest - igaüks saab selle ise üle arvutada.
  • W3C Data Integrity Proofs (eddsa-jcs-2022): Ed25519-allkiri kanoniseeritud vormi (JCS) kaudu.
  • /.well-known/dpp-keys/ (RFC 8615): väljastajate avalikud võtmed asuvad standardiseeritud kataloogiteel - Transpareole pole vaja pöörduda, iga kontrollija leiab need ise.

Kõik on dokumenteeritud GitHubi README-failis⁠ - sealhulgas frontendi arhitektuur (oma reaktiivne tuum, null välist raamistikku) ja ehitamisjuhend isehostimiseks.

Vaata koodi GitHubis

Täieliku lähtekoodi, kõik väljalasked ja probleemi arutelu leiate avalikust repositooriumist.