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.

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 skaneeri. Meie teeme sellest rakenduse, mida tarbija ka avab.

Vaadake ise

Demo näitab täielikke tootepasse näiteandmetega: sirvige versioonide ajalugu ja avage kontrollmärgis - otse brauseris, ilma kontota.

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 suurim samm toote läbipaistvuse suunas viimaste aastakümnete jooksul. Kui lugeda selle aluseks olevaid tekste tähelepanelikult, on see selgesõnaliselt koostatud tarbijate jaoks. Ametiasutused, ringlussevõtjad ja remonditöökodad tulevad kaasa, 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ähtsusetu.

Kui määrus peab jõudma tarbijani, siis 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 pakkujast.

Ajalugu on seadus, manifest on meie oma

Toote pass muutub: remont, uus ringlussevõtu määr, tagasikutsumine. Seetõttu nõuavad standardid, et varasemad versioonid jääksid kättesaadavaks: salvestamisstandard külmutab iga versiooni, liideste standard näeb ette, et iga versiooni saab sihipäraselt lugeda. Standardid jätavad aga lahtiseks selle, mis jääb nende vahele: nimekirja, mis ühendab passi kõik versioonid üheks looks. Transpareo avaldab selle iga passi kohta manifestina, allkirjastatuna, kus iga versioon on sõrmejälje abil oma eelkäijaga seotud. Nii lehitsetakse ajamasinaga toote ajalugu läbi ning lugeja kontrollib mitte ainult versiooni autentsust, vaid ka seda, et tegemist on katkematu jada kõige uuema versiooniga.

Rakendus ei ole aga sellest sõltuv. Kui näidata talle manifesti asemel üksikut passi, nagu iga pakkuja avatud standardite kohaselt avaldab, kuvab ta selle ühe versiooni, kontrollib selle allkirja, kui see on olemas, ja jätab ajajoone lihtsalt välja. Allkirjata pass ei loeta veaks, vaid kuvatakse lihtsalt ilma kontrollmärgita. Nii kuvab sama rakendus ka passe, mis pole kunagi Transpareos olnud.

Teenusepakkuja vahetamine ilma katkestusteta

ELi määrus digitaalse tootepassi kohta nõuab, et tootepassid oleksid koostalitlusvõimelised ja põhineksid avatud standarditel - need peavad olema teenuste ja süsteemide vahel ülekantavad, mitte seotud üheainsa teenusepakkujaga. Sõltumatus teenusepakkujast ei ole seega lisavõimalus, vaid nõude osa.

Transpareo Time Machine on lahendus, mis muudab selle nõude konkreetseks. Kuna iga tootepass tarnitakse avatud standardite alusel - resolverist sõltumatu identifitseerimine, kanoniline serialiseerimine, avalikult avaldatud võtmed - ja renderija on avatud lähtekoodiga GPL v3 litsentsi alusel, ei sõltu passi kuvamine kunagi meie platvormist.

Tootepassi eest vastutab majandussubjekt - tootja, importija või volitatud esindaja. Kui ta otsustab Transpareost lahkuda ja minna üle teise pakkuja juurde, jääb kuvamine stabiilseks: sama avatud lähtekoodiga renderija kuvab juba avaldatud versioone koos ajalooandmetega muutumatult edasi ning uut pakkujat, kes kasutab samu avatud standardeid, kuvab täpselt sama rakendus.

Andmed liiguvad kaasa, tarbijad ei märka üleminekut ja keegi ei pea migratsiooni ootama.

Üleminek ise ei ole projekt. Transpareo Time Machine on staatiline pakett: üks kord koostatud, mis tahes veebiserverisse kopeeritud - valmis. Disain, mille olete Transpareos oma passidele seadistanud, liigub avaldatud stiililehena koos iga passiga. Passi vaade, millega teie kliendid on harjunud, näeb teie enda serveris välja täpselt samamoodi, koos värvide, kirjatüübi ja logoga.

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 väljastaja avalikute võtmete põhjal.

Iga DPP-versiooni allkirjastavad kaks üksteisest sõltumatut osapoolt: väljastaja ja Transpareo. Mõlemad allkirjad peavad olema kontrollitavad, et märgis muutuks roheliseks. „Bring Your Own Key“ (BYOK) süsteemi raames haldab väljastaja omaenda 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 juures.

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: aadressil DPP-kontroll 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. Avaldatud muudatused peavad omakorda olema GPL v3 litsentsi all, et iga edasiarendus teeniks üldsuse huve.

Kloonimine, harukontode loomine, isehostimine - kõik on lubatud.

Kuidas rakendust integreerida - kas ühe rea abil veebilehel, paketina oma rakenduses või täielikult isehostituna - on kirjeldatud seal asuvas README-failis. Sealt leiate ka selle rakenduse sõsarelemendi, mis on mõeldud ainult allkirja kontrollimiseks ja mis töötab veebiaadressil DPP-kontroll.

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 jääks kättesaadavaks vähemalt kümneks aastaks - isegi väljastaja maksejõuetuse või likvideerimise korral. 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 koos avaldatud avalikute võtmetega 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 peegelduskoopiaid 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 vaja käivitamisel meid tagasi kutsuda; tal on vaja ainult baitid ja võtmed.

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

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.