Vremenska mašina za DPP-ove

Zamislite da držite proizvod u ruci i skenirate QR kod na njemu. Umjesto PDF-a, otvara se mala aplikacija. Vidite proizvod onakav kakav je sada: od čega je napravljen, odakle dolazi i na šta trebate obratiti pažnju. Potezom prsta vraćate se kroz vrijeme - možete pregledati svaku verziju koja je ikada objavljena.

Ovo je Transpareo Time Machinenaša open-source aplikacija za krajnje korisnike za bilo koji digitalni pasoš proizvoda. Kod je dostupan pod licencom GPL v3 na GitHub. Projekat CIRPASS-2, finansiran od strane EU, navodi Transpareo Time Machine u svom OpenDPP Katalogu softvera otvorenog koda za DPP.

Gradimo ga jer je Uredba EU o pasošu digitalnog proizvoda napisana za potrošače - za osobu koja drži proizvod u rukama. Većina pružatelja usluga ga pretvara u obrazac za usklađenost koji niko nikada ne skenira dvaput. Mi ga pretvaramo u aplikaciju koju će potrošači zaista otvoriti.

Uvjerite se sami

Primjeri pasoša proizvoda su potpuni i sadrže izmišljene podatke: pregledajte historiju verzija i otvorite naljepnicu za pregled - direktno u vašem pregledniku, bez potrebe za računom.

Šta aplikacija radi

Četiri tačke dodira iz perspektive osobe koja drži proizvod. Bez prijave, bez instalacije aplikacije.

1
Skeniraj

Skenirajte QR kod kamerom vašeg pametnog telefona. Aplikacija će se otvoriti u vašem pregledniku.

2
Pogledajte najnovije vijesti

Proizvod u ovdje i sada - komponente, materijali, porijeklo, održavanje, reciklaža.

3
Pregledajte historiju

Potegom se vraćate kroz vrijeme. Svaka prethodna verzija, s datumom i razlogom promjene.

4
Podijeli

Svaka verzija ima svoj link. Osoba dijeli određenu verziju s prijateljima ili vlastima.

Zašto uopće?

Uredba EU o digitalnoj kartici proizvoda predstavlja najveći pomak ka transparentnosti proizvoda u posljednjih nekoliko decenija. Ako se pažljivo pročitaju temeljni tekstovi, jasno je da je ona eksplicitno osmišljena za potrošače. Nadležni organi, reciklaže i servisi za popravku su uključeni; ali primarni korisnik je osoba koja drži proizvod u svojim rukama.

Što se tiče brojki, situacija je jasna. Do kraja decenije, prosječni evropski potrošač će moći skenirati desetine do stotine pasoša proizvoda godišnje. Na osnovu 200 miliona domaćinstava, to iznosi milijarde interakcija potrošača godišnje. Za usporedbu, svijet vlasti i reciklera je numerički zanemariv.

Ako regulativa treba doprijeti do potrošača, platforma namijenjena potrošačima mora biti dobro dizajnirana - brza, privlačna i koherentna. U suprotnom, neće ispuniti svoju svrhu.

Odlučili smo izgraditi ovu platformu namijenjenu potrošačima kao softver otvorenog koda kako ne bi zavisila od jednog pružaoca usluga.

Tok događaja je utvrđen; manifest je naš

Putovnica proizvoda se mijenja: popravak, novi cilj udjela recikliranog sadržaja, opoziv. Specifikacije stoga zahtijevaju da prethodne verzije ostanu dostupne: standard za pohranu zamrzava svaku verziju, dok standard za sučelja osigurava da se svaka verzija može selektivno čitati. Ono što specifikacije ostavljaju otvorenim je poveznica između njih: popis koji povezuje sve verzije pasoša u jednu cjelovitu historiju. Transpareo objavljuje ovo za svaki pasoš kao manifest, potpisan, pri čemu je svaka verzija lančano povezana sa svojom prethodnicom putem digitalnog otiska. Na taj način, “vremenska mašina” prolazi kroz historiju proizvoda, a čitalac može provjeriti ne samo da je verzija autentična, već i da je najnovija u neprekinutom nizu.

Međutim, aplikacija nije vezana za ovo. Ako joj, umjesto manifesta, pokažete pojedinačni pasoš - kao što ih objavljuje svaki pružatelj usluga u skladu s otvorenim standardima - ona prikazuje tu pojedinačnu verziju, provjerava njen potpis (ako ga ima) i jednostavno izostavlja vremensku crtu. Pass bez potpisa se ne tretira kao greška, već se jednostavno prikazuje bez pečata odobrenja. Na taj način , ista aplikacija prikazuje i passove koji nikada nisu registrovani kod Transparea.

Promjena pružatelja usluga bez prekida

Uredba EU o digitalnoj propusnici za proizvod - prenosive između usluga i sustava, a ne vezane za jednog pružatelja usluga. Neovisnost o pružatelju usluga stoga nije neobavezna dodatna mogućnost, već dio zahtjeva.

Transpareo Time Machine je alat koji ovu zahtjevu provodi u praksi. Budući da se svaki pasoš proizvoda isporučuje koristeći otvorene standarde - identifikaciju neovisnu o resolveru, kanoničku serijalizaciju, javno objavljene ključeve - a renderer je otvorenog koda pod GPL v3 licencom, prikaz pasoša nikada ne ovisi o našoj platformi.

Odgovornost za pasoš proizvoda leži na poslovnom subjektu - proizvođaču, uvozniku ili ovlaštenom zastupniku. Ako odluče napustiti Transpareo i preći na drugog pružaoca usluga, prikaz ostaje stabilan: isti renderer otvorenog koda nastavlja prikazivati prethodno objavljene verzije, uključujući historiju, bez promjena, a novi pružalac usluga koji podržava iste otvorene standarde bit će prikazan pomoću potpuno iste aplikacije.

Podaci se prenose zajedno s njim; potrošači ne primjećuju prekid, a niko ne mora čekati migraciju.

Sam proces migracije nije projekt. Transpareo Time Machine je statički paket: kad ga izgradite, kopirajte ga na bilo koji web server i gotovi ste. Dizajn koji ste postavili za svoje propusnice u Transpareo uključen je uz svaku propusnicu kao objavljeni stilski list. Prikaz propusnice na koji su vaši kupci navikli stoga će izgledati potpuno isto na vašem serveru, sa svim bojama, fontovima i logotipom.

Testirano u pregledniku, a ne na našem serveru.

Na vrhu svakog pasoša proizvoda pojavljuje se bedž: ‘Verified by Transpareo’. On prikazuje rezultat procesa verifikacije koji se ne odvija na našem serveru, već u pregledniku posjetitelja - na osnovu učitani bajtova i javnih ključeva izdavatelja.

Dvije nezavisne strane potpisuju svaku verziju DPP-a: izdavač i Transpareo. Oba potpisa moraju biti provjerljiva da bi oznaka postala zelena. Sa konceptom Bring Your Own Key (BYOK), izdavač upravlja vlastitim krajnjim mjestom za potpis - Transpareo nikada ne posjeduje privatni ključ i samo dodaje nezavisni su-potpis. To rezultira izdavačevim potpisom koji Transpareo sam ne može generirati.

Kompromitovani server ne može falsifikovati potvrdu, jer se provjera odvija na uređaju posjetioca.

Ako želite saznati sve detalje, kliknite na bedž. Iza njega vidjet ćete lanac potpisa, haševe i historiju verzija u lancu. Ako vam trebaju samo informacije, jednostavno ga zanemarite i nastavite čitati pasoš proizvoda.

Ovaj alat za verifikaciju je također dostupan kao samostalna stranica: na Verifikacija DPP možete unijeti URL manifesta bilo kojeg pasoša proizvoda i pregledati cjelokupni rezultat verifikacije - bez potrebe da otvarate sam pasoš.

Objavljujemo kod

Transpareo Time Machine je licenciran pod GPL v3 na GitHubu. Sve objavljene izmjene moraju biti licencirane pod GPL v3, kako bi daljnji razvoj koristio široj zajednici. Kloniranje, forkiranje, samostalno hostovanje - sve je dozvoljeno.

Datoteka README objašnjava kako integrisati aplikaciju, bilo jednom linijom koda na stranici, kao paket unutar vlastite aplikacije ili u potpunosti hostovanu od strane vas. Također ćete pronaći i sestrinsku komponentu samo za verifikaciju potpisa, koja je dostupna na Verifikacija DPP.

Oni koji efikasno koriste aplikaciju

Aplikacija je prvenstveno namijenjena potrošačima. Međutim, može je koristiti svako ko želi samostalno pregledati ili provjeriti podatke o proizvodu.

  • Krajnji potrošači mogu skenirati, pregledati, pretraživati i dijeliti. Bez prijave, bez praćenja.
  • Tijela za nadzor tržišta i regulatorna tijela mogu pregledati pasoš proizvoda u softveru čiji je izvorni kod javno provjerljiv.
  • Servisi za popravku i reciklere mogu pregledati sastav materijala i upute za rastavljanje direktno na proizvodu.
  • Brendovi i operateri viljuškara mogu prilagoditi paket kako bi odgovarao njihovom brendu - CSS tokeni, prilagođene komponente, samostalno hostiranje.

Šta se dešava ako Transpareo više ne postoji?

EU zahtijeva da proizvodni pasoš . Za mnoge proizvode to je deset godina ili više, a SaaS pružatelj rijetko posluje toliko dugo. Stoga platformu od samog početka gradimo na način da pasoši proizvoda ostanu upotrebljivi neovisno o nama:

  • Svaka potpisana verzija DPP-a pohranjuje se u javno dostupnom repozitoriju. Podaci, zajedno s objavljenim javnim ključevima, dovoljni su za naknadnu provjeru.
  • Čim se pasoši proizvoda registruju u EU registru, drugi sistem pohrane samo za čitanje duplira svaku verziju DPP-a i dnevnik događaja na dodatnih deset godina. Niko - čak ni mi - ne može retroaktivno mijenjati ove duplirane kopije.
  • Nakon prestanka važenja, kratki URL-ovi za pasoše proizvoda ostaju dostupni putem preusmjeravanja na platformi Transpareo.
  • Funkcija ` Transpareo Time Machine ` radi normalno, čak i na arhiviranim podacima. Bundle nas ne poziva nazad tokom izvođenja; treba mu samo bajtovi i ključevi.

Da bi platforma Transpareo sutra nestala, verzije DPP-a i renderer otvorenog koda bi ostali.

Za one koje zanima tehnologija

Evo šta se dešava iza kulisa. Ako ne trebate znati detalje, možete preskočiti ovaj odjeljak - aplikacija će i dalje raditi.

  • GS1 Digital Link (ISO/IEC 18975): URL pasoša proizvoda nosi identifikator proizvoda u standardiziranom formatu - neutralan u odnosu na resolver i zamjenjiv između pružatelja usluga.
  • Shema kanonizacije JSON-a (RFC 8785): Deterministička serijalizacija. Ovo osigurava da hash ostane reproducibilan bez obzira na redoslijed polja ili praznih znakova - svako ga može samostalno provjeriti.
  • W3C dokazi o integritetu podataka (eddsa-jcs-2022): Ed25519 potpis nad kanoniziranim oblikom (JCS).
  • /.well-known/dpp-keys/ (RFC 8615): Javni ključevi izdavatelja nalaze se na standardiziranom putu - nema potrebe kontaktirati Transpareo; svaki provjeritelj ih može sam pronaći.

Sve je dokumentovano u README fajlu na GitHubu - uključujući arhitekturu front-enda (naš vlastiti reaktivni core, bez vanjskih frameworkova) i upute za kompajliranje za samostalno hostovanje.

Pogledajte kod na GitHubu

Možete pronaći potpuni izvorni kod, sve verzije i raspravu o problemu u javnom repozitoriju.