En tidsmaskin for DPP-er

Tenk deg at du holder et produkt i hånden og skanner QR-koden på det. I stedet for en PDF-fil åpnes en liten app. Du ser produktet akkurat nå: hva det består av, hvor det kommer fra, hva du må være oppmerksom på. Med en sveipebevegelse blar du tilbake i tiden - du kan se alle versjoner som noensinne har blitt publisert.

Nettopp dette kan du prøve nå: Demoen⁠ viser et fullstendig produktpass med eksempeldata.

Dette er Transpareo Time Machine, vår åpenkildekode-app for forbrukere for alle digitale produktpass. Koden er tilgjengelig under GPL v3 på GitHub⁠.

Vi utvikler den fordi EU-forordningen om det digitale produktpasset ble skrevet for forbrukerne - for den som holder produktet i hånden. De fleste leverandører gjør det om til et samsvarsskjema som ingen skanner to ganger. Vi gjør det om til en app som forbrukeren faktisk åpner.

Hva appen gjør

Fire berøringspunkter sett fra perspektivet til den som holder produktet i hånden. Ingen pålogging, ingen app-installasjon.

1

Skanning

Skann QR-koden med smarttelefonens kamera. Appen åpnes i nettleseren.

2

Se nyheter

Produktet i nåtiden - komponenter, materialer, opprinnelse, vedlikehold, gjenvinning.

3

Bla gjennom historien

En sveipebevegelse blar tilbake i tiden. Hver tidligere versjon med dato og årsak til endringen.

4

Del

Hver versjon har sin egen lenke. En person deler en bestemt versjon med venner eller myndigheter.

Hvorfor i det hele tatt?

EU-forordningen om det digitale produktpasset er det største skrittet mot produktgjennomsiktighet på flere tiår. Hvis man leser de underliggende tekstene nøye, ser man at den er uttrykkelig skrevet for forbrukerne. Myndighetene, gjenvinningsbedriftene og verkstedene følger med, men den primære mottakeren er den som holder produktet i hånden.

Tallmessig er saken entydig. En gjennomsnittlig europeisk privatperson vil ved slutten av tiåret kunne skanne dusinvis til hundrevis av produktpass per år. Beregnet på 200 millioner husholdninger utgjør dette milliarder av forbrukerinteraksjoner årlig. Myndighets- og gjenvinningsverdenen er i sammenligning numerisk ubetydelig liten.

Hvis forordningen skal nå frem til forbrukerne, må forbrukersiden være godt utformet - rask, pen og logisk. Ellers vil den ikke oppfylle sitt formål. Vi har valgt å utvikle denne forbrukersiden som åpen kildekode, slik at den ikke er avhengig av en enkelt leverandør.

Testet i nettleseren, ikke på vår server

Øverst i hvert produktpass vises et merke: «Verifisert av Transpareo». Det viser resultatet av en kontroll som ikke foregår på vår server, men i besøkerens nettleser - basert på de innlastede byteene og produsentens offentlige nøkler.

To uavhengige instanser signerer hver DPP-versjon: produsenten og Transpareo. Begge signaturene må kunne verifiseres for at merket skal bli grønt. Med «Bring Your Own Key» (BYOK) driver produsenten sin egen signaturendepunkt - Transpareo oppbevarer aldri den private nøkkelen og legger bare til den uavhengige motsignaturen. Slik oppstår en utstillersignatur som Transpareo selv ikke kan generere. En kompromittert server kan ikke forfalske haken, fordi verifiseringen skjer hos besøkende selv.

Den som vil vite nøyaktig, klikker på merket. Der ser du signaturkjeden, hashene og den sammenkjedede versjonshistorikken. De som bare ønsker informasjonen, kan ganske enkelt ignorere dette og lese videre i produktpasset.

Den samme kontrollen finnes også som en egen side: På DPP-verifiseringen legger du inn manifest-URL-en til et hvilket som helst produktpass og ser det fullstendige kontrollresultatet - uten å åpne passet selv.

Vi gjør koden tilgjengelig

Transpareo Time Machine er lisensiert under GPL v3 på GitHub⁠. Kloning, forking, egen hosting - alt er tillatt. Publiserte modifikasjoner må på sin side være lisensiert under GPL v3, slik at all videreutvikling kommer allmennheten til gode.

Tre måter å integrere pakken på:

  • Via script-tag: legg inn <script> og <transpareo-time-machine src="…"> på siden, ferdig - ingen kompileringsprosess.
  • Via npm: npm install transpareo-time-machine i din egen app.
  • Selvhosting: Bygg pakken, bruk din egen infrastruktur, ingen avhengigheter av tredjeparter ved kjøring.

De som bare trenger signaturkontrollen uten full produktvisning, importerer søsterelementet <dpp-verifier> - ideelt for revisjonsverktøy. Kan sees live på DPP-verifiseringen.

Hvem som bruker appen på en fornuftig måte

Appen er først og fremst utviklet for forbrukere. Den fungerer imidlertid for alle som ønsker å se eller verifisere produktdata uavhengig.

  • Sluttforbrukere skanner, ser, blar og deler. Ingen pålogging, ingen sporingsverktøy.
  • Markedstilsyn og myndigheter ser produktpasset i en programvare hvis kildekode kan kontrolleres offentlig.
  • Verksteder og gjenvinningsbedrifter ser materialsammensetning og demonteringsanvisninger direkte på produktet.
  • Merkevarer og fork-operatører tilpasser pakken til sitt eget merke - CSS-tokens, egne komponenter, egen hosting.

Hva skjer hvis Transpareo ikke lenger finnes?

EU krever at et registrert produktpass skal være tilgjengelig i minst ti år - også etter at produsenten har gått konkurs eller blitt avviklet. En SaaS-leverandør holder sjelden så lenge. Derfor bygger vi plattformen fra starten av slik at produktpassene forblir brukbare uavhengig av oss:

  • Hver signert DPP-versjon ligger i et offentlig lesbart lager. Bytene pluss de publiserte offentlige nøklene er tilstrekkelig for senere verifisering.
  • Så snart produktpassene er registrert i EU-registeret, speiler et annet, skrivebeskyttet lagringssted hver DPP-versjon og hendelsesloggen i ytterligere ti år. Ingen - heller ikke vi - kan endre disse speilkopiene i etterkant.
  • Etter en oppsigelse forblir de korte produktpass-URL-ene tilgjengelige via en viderekobling på Transpareo-plattformen.
  • Transpareo Time Machine fungerer uendret også med arkiverte data. Pakken trenger ikke å hente data fra oss under kjøring; den trenger bare byteene og nøklene.

Selv om Transpareo-plattformen skulle forsvinne i morgen, ville DPP-versjonene og den åpne kildekode-rendereren forbli.

For de som er nysgjerrige på teknologi

Her er hva som skjer «under panseret». Hvis du ikke trenger å vite dette i detalj, kan du hoppe over dette avsnittet - appen fungerer uansett.

  • GS1 Digital Link (ISO/IEC 18975): Produktpass-URL-en inneholder produktidentifikasjonen i en standardisert form - resolver-nøytral og utskiftbar mellom leverandører.
  • JSON Canonicalization Scheme (RFC 8785): En deterministisk serialisering. På denne måten forblir hashen reproduserbar uavhengig av feltrekkefølge eller mellomrom - alle kan beregne den selv.
  • W3C Data Integrity Proofs (eddsa-jcs-2022): Ed25519-signatur over den kanoniserte formen (JCS).
  • /.well-known/dpp-keys/ (RFC 8615): Utstederens offentlige nøkler ligger under en standardisert bane - ingen henvendelse til Transpareo er nødvendig, hver verifikator finner dem selv.

Alt er dokumentert i README på GitHub⁠ - inkludert frontend-arkitekturen (egen reaktiv kjerne, ingen eksterne rammeverk) og byggeveiledningen for egen hosting.

Se koden på GitHub

Den fullstendige kildekoden, alle utgivelser og diskusjonen rundt feilen finner du i det offentlige repositoriet.