Időgép a DPP-k számára

Képzelje el, hogy egy terméket tart a kezében, és beolvassa a rajta lévő QR-kódot. PDF-fájl helyett egy kis alkalmazás nyílik meg. Láthatja a terméket a jelen pillanatban: miből áll, honnan származik, mire kell figyelni. Egy csúsztatással visszalapozhat az időben - minden valaha kiadott verzió megtekinthető.

Pontosan ezt próbálhatja ki most: a demó⁠ egy teljes termékigazolványt mutat be példaadatokkal.

Ez a Transpareo Time Machine, a nyílt forráskódú fogyasztói alkalmazásunk minden digitális termékigazolványhoz. A kód a GPL v3 licenc alatt elérhető a GitHubon⁠.

Azért fejlesztjük, mert az EU digitális termékigazolványra vonatkozó rendelete a fogyasztók számára készült - azok számára, akik a terméket a kezükben tartják. A legtöbb szolgáltató ezt egy olyan megfelelőségi űrlapká alakítja, amelyet senki sem olvas el kétszer. Mi viszont egy olyan alkalmazást készítünk belőle, amelyet a fogyasztó tényleg megnyit.

Az alkalmazás funkciói

Négy érintési pont a terméket a kezében tartó személy szemszögéből. Nincs bejelentkezés, nincs alkalmazás-telepítés.

1

Beolvasás

Olvassa be a QR-kódot az okostelefon kamerájával. Az alkalmazás megnyílik a böngészőben.

2

Aktuális hírek megtekintése

A termék bemutatása - alkatrészek, anyagok, eredet, ápolás, újrahasznosítás.

3

Történelem lapozgatás

Egy csúsztató mozdulattal visszalapozhatunk az időben. Minden korábbi verzió, a módosítás dátumával és okával együtt.

4

Megosztás

Minden verziónak megvan a saját linkje. Egy személy egy adott verziót oszt meg barátaival vagy a hatóságokkal.

Miért egyáltalán?

A digitális termékigazolványról szóló uniós rendelet az elmúlt évtizedek legnagyobb előrelépése a termékátláthatóság irányába. Ha figyelmesen elolvassuk az alapjául szolgáló szövegeket, látható, hogy kifejezetten a fogyasztók számára készült. A hatóságok, az újrahasznosítók és a szervizek is csatlakoznak ehhez, de az elsődleges címzett az a személy, aki a terméket a kezében tartja.

Számok tekintetében a helyzet egyértelmű. Egy átlagos európai magánszemély a évtized végére évente több tucattól akár több száz termékigazolványt is beolvashat majd. 200 millió háztartásra vetítve ez évente milliárdnyi fogyasztói interakciót jelent. Ehhez képest a hatóságok és az újrahasznosítók világa számbeli szempontból elenyészően kicsi.

Ha azt akarjuk, hogy a rendelet eljusson a fogyasztókhoz, akkor a fogyasztói oldalt jól kell megtervezni - gyorsnak, esztétikusnak és koherensnek kell lennie. Ellenkező esetben nem éri el a célját. Úgy döntöttünk, hogy ezt a fogyasztói oldalt nyílt forráskódúként építjük fel, hogy ne függjön egyetlen szolgáltatótól sem.

A böngészőben ellenőrizve, nem a szerverünkön

Minden termékadatlap tetején megjelenik egy jelvény: „Transpareo által ellenőrzve”. Ez egy olyan ellenőrzés eredményét mutatja, amely nem a szerverünkön, hanem a látogató böngészőjében történik - a betöltött bájtok és a gyártó nyilvános kulcsai alapján.

Minden DPP-verziót két, egymástól független fél ír alá: a gyártó és a Transpareo. Mindkét aláírásnak ellenőrizhetőnek kell lennie ahhoz, hogy a jelvény zöldre váljon. A „Bring Your Own Key” (BYOK) elv alapján a gyártó saját aláírási végpontot üzemeltet - a Transpareo soha nem tárolja a titkos kulcsot, csupán a független ellenaláírást egészíti ki. Így jön létre egy kibocsátói aláírás, amelyet a Transpareo önmagában nem tud létrehozni. Egy feltört szerver nem tudja hamisítani a pipát, mivel az ellenőrzés magánál a látogatónál történik.

Aki pontosan szeretne tájékozódni, kattintson a jelvényre. Mögötte látható az aláírási lánc, a hash-értékek és a láncolt verziótörténet. Aki csak az információt szeretné megkapni, egyszerűen figyelmen kívül hagyja ezt, és továbbolvassa a termékigazolványt.

Ugyanez az ellenőrzés önálló oldalként is elérhető: a DPP-ellenőrzés oldalon beírhatja bármely termékigazolvány manifest-URL-jét, és megtekintheti a teljes ellenőrzési eredményt - anélkül, hogy magát az igazolványt megnyitná.

A kódot nyilvánosságra hozzuk

A Transpareo Time Machine a GPL v3 licenc alatt érhető el a GitHubon⁠. Klónozás, fork, saját szerveren való tárolás - minden megengedett. A közzétett módosításoknak szintén a GPL v3 licenc alatt kell állniuk, hogy minden továbbfejlesztés a közjót szolgálja.

Három módszer a csomag beépítésére:

  • Script-tag segítségével: egy <script> és egy <transpareo-time-machine src="…"> a oldalba, és kész - nincs szükség fordítási lépésre.
  • npm-en keresztül: npm install transpareo-time-machine a saját alkalmazásban.
  • Saját tárhelyen: csomag összeállítása, saját infrastruktúra, futásidőben nincs harmadik féltől származó függőség.

Aki csak az aláírás-ellenőrzésre van szüksége a teljes terméknézet nélkül, az importálja a testvér elemet <dpp-verifier> - ideális auditáló eszközökhöz. Élőben megtekinthető a DPP-ellenőrzésen.

Ki használja az alkalmazást ésszerűen

Az alkalmazást elsősorban a fogyasztók számára fejlesztették ki. Ugyanakkor mindenki számára használható, aki önállóan szeretné megtekinteni vagy ellenőrizni a termékadatokat.

  • A végfelhasználók beolvashatják, megtekinthetik, lapozgathatják és megoszthatják az adatokat. Nincs bejelentkezés, nincsenek nyomkövetők.
  • A piacfelügyeleti szervek és a hatóságok egy olyan szoftverben tekinthetik meg a termékigazolványt, amelynek forráskódja nyilvánosan ellenőrizhető.
  • A szervizek és az újrahasznosítók közvetlenül a terméken láthatják az anyagösszetételt és a szétszerelési útmutatásokat.
  • A márkák és a fork-üzemeltetők saját márkájukhoz igazíthatják a csomagot - CSS-tokenek, saját komponensek, saját szerver.

Mi történik, ha a Transpareo már nem létezik?

Az EU előírja, hogy a regisztrált termékútlevélnek legalább tíz évig elérhetőnek kell maradnia - még a gyártó csődje vagy felszámolása után is. Egy SaaS-szolgáltató ritkán működik ilyen hosszú ideig. Ezért a platformot a kezdetektől fogva úgy építjük fel, hogy a termékútlevelek tőlünk függetlenül is használhatók maradjanak:

  • Minden aláírt DPP-verzió egy nyilvánosan olvasható tárhelyen található. A bájtok és a közzétett nyilvános kulcsok elegendőek a későbbi ellenőrzéshez.
  • Amint a termékigazolványokat bejegyzik az EU-nyilvántartásba, egy második, írásvédett tárhely minden DPP-verziót és az eseménynaplót további tíz évig tükrözi. Senki - mi sem - nem módosíthatja utólag ezeket a tükrözött másolatokat.
  • A szerződés felmondása után a rövid termékigazolvány-URL-ek átirányításon keresztül továbbra is elérhetők maradnak a Transpareo-platformon.
  • A Transpareo Time Machine változatlanul fut az archivált állományokon is. A csomag futás közben nem hív vissza minket; csak a bájtokra és a kulcsokra van szüksége.

Ha holnap eltűnne a Transpareo-platform, a DPP-verziók és a nyílt forráskódú renderelő megmaradna.

A technológia iránt érdeklődőknek

Itt olvashatod el, mi zajlik a háttérben. Akinek nincs szüksége a részletekre, kihagyhatja ezt a részt - az alkalmazás így is működik.

  • GS1 Digital Link (ISO/IEC 18975): A termékigazolvány URL-je a termékazonosítót szabványos formában tartalmazza - resolver-semleges, szolgáltatók között cserélhető.
  • JSON Canonicalization Scheme (RFC 8785): Determinisztikus sorosítás. Így a hash a mezők sorrendjétől és a szóközöktől függetlenül reprodukálható marad - mindenki saját maga is kiszámíthatja.
  • W3C Data Integrity Proofs (eddsa-jcs-2022): Ed25519-aláírás a kanonizált formán (JCS) keresztül.
  • /.well-known/dpp-keys/ (RFC 8615): A kibocsátók nyilvános kulcsai egy szabványosított elérési út alatt találhatók - nincs szükség a Transpareo-hoz való fordulásra, minden hitelesítő saját maga megtalálja őket.

Minden dokumentálva van a GitHub-on található README-ben⁠ - beleértve a frontend-architektúrát (saját reaktív mag, nulla külső keretrendszer) és az önálló üzemeltetéshez szükséges összeállítási útmutatót is.

A kód megtekintése a GitHubon

A teljes forráskód, az összes kiadás és a hibajelentéssel kapcsolatos vita a nyilvános repositoryban található.