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átja a terméket a jelenben: miből áll, honnan származik, mire kell figyelni. Egy csúsztató mozdulattal visszalapozhat az időben - minden valaha kiadott verzió megtekinthető.

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

Azért fejlesztjük ki, mert az EU digitális termékútlevélre 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 be kétszer. Mi viszont egy olyan alkalmazást készítünk belőle, amelyet a fogyasztó valóban megnyit.

Győződjön meg róla saját szemével!

A minta termékútlevél teljes és fiktív adatokkal van kitöltve: lapozzon végig a verziótörténeten, és nyissa meg az ellenőrző matricát - közvetlenül a böngészőben, fiók létrehozása nélkül.

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ékútlevélrő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ékútlevélig 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, vonzónak é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 menetrend kötelező, a kiáltvány pedig a miénk

A termékútlevél változhat: javítás, új újrahasznosítási arány, visszahívás. A előírások ezért megkövetelik, hogy a korábbi állapotok továbbra is elérhetők maradjanak: a tárolásra vonatkozó szabvány minden verziót rögzít, az interfészekre vonatkozó szabvány pedig előírja, hogy minden verzió célzottan olvasható legyen. Amit az előírások nyitva hagynak, az a kettő közötti rész: egy lista, amely az igazolvány összes verzióját egy történetté köti össze. A Transpareo minden igazolványhoz manifesztként teszi közzé ezt a listát, aláírva, minden verziót ujjlenyomattal láncolva az elődjéhez. Így a „időgép” végiglapozza a termék történetét, és az olvasó nemcsak azt ellenőrzi, hogy egy verzió hiteles-e, hanem azt is, hogy az egy hiánytalan sorozat legfrissebb része-e.

Az alkalmazás azonban nem ragaszkodik ehhez. Ha a manifeszt helyett egy egyetlen igazolványt mutatunk neki - amilyet minden szolgáltató a nyílt szabványok szerint tesz közzé -, akkor az alkalmazás ezt az egy verziót jeleníti meg, ellenőrzi az aláírását, ha van ilyen, és egyszerűen kihagyja az idővonalat. Az aláírás nélküli igazolvány nem minősül hibának, hanem egyszerűen ellenőrző pecsét nélkül jelenik meg. Így ugyanaz az alkalmazás azokat az igazolványokat is megjeleníti , amelyek soha nem szerepeltek a Transpareo rendszerében.

Szolgáltatóváltás zökkenőmentesen

A digitális termékútlevélről szóló uniós rendelet olyan termékútlevéleket ír elő, amelyek interoperábilisak és nyílt szabványokon alapulnak - azaz szolgáltatások és rendszerek között átvihetők, nem pedig egy adott szolgáltatóhoz kötődnek. A szolgáltatótól való függetlenség tehát nem kiegészítő elem, hanem a követelmény része.

Transpareo Time Machine ez az a modul, amely ezt a követelményt konkrét formába önti. Mivel minden termékútlevél nyílt szabványok szerint kerül kiadásra - resolver-semleges azonosítás, kanonikus sorosítás, nyilvánosan közzétett kulcsok -, és a megjelenítő program forráskódja GPL v3 licenc alatt nyílt forráskódú, az útlevél megjelenítése soha nem függ a mi platformunktól.

A termékútlevélért egy gazdasági szereplő - a gyártó, az importőr vagy egy meghatalmazott - felel. Ha úgy dönt, hogy elhagyja a Transpareo-t, és átáll egy másik szolgáltatóhoz, a megjelenítés változatlan marad: a már közzétett verziókat és azok történetét ugyanaz a nyílt forráskódú renderelő változatlanul továbbra is megjeleníti, és egy új szolgáltatót, amely ugyanazokat a nyílt szabványokat alkalmazza, pontosan ugyanaz az alkalmazás jeleníti meg.

Az adatok is átkerülnek, a fogyasztók nem vesznek észre semmilyen megszakítást, és senkinek sem kell várnia a migrációra.

Maga az áthelyezés nem minősül projektnek. A Transpareo Time Machine egy statikus csomag: egyszer elkészítve, bármely webszerverre másolva, és kész. A Transpareo-ban az Ön által a passzokhoz beállított megjelenés közzétett stíluslapként minden passzal együtt kerül át. Az a passz-nézet, amelyhez az ügyfelei hozzászoktak, így a saját szerverén is pontosan ugyanúgy fog kinézni, a színekkel, a betűtípussal és a logóval együtt.

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

Minden termékútlevél tetején megjelenik egy jelvény: „Transpareo által ellenőrzött”. Ez egy olyan ellenőrzés eredményét jelzi, 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 kibocsátó nyilvános kulcsai alapján.

Minden DPP-verziót két, egymástól független fél ír alá: a kibocsátó é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 kibocsátó 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 olyan kibocsátói aláírás, amelyet a Transpareo önmagában nem tud létrehozni.

Egy kompromittált 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 szeretné tudni, kattintson a címkére. Ott láthatja a szignatúra-láncot, a hash-értékeket és a láncolt verziótörténetet. Aki csak az információra kíváncsi, egyszerűen hagyja figyelmen kívül, és olvassa tovább a termékútlevélt.

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

A kódot nyilvánosságra hozzuk

A Transpareo Time Machine a GitHubon a GPL v3 licenc alatt érhető el. 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.

Klónozás, fork, saját tárhely - minden megengedett.

Hogyan integrálhatja az alkalmazást - akár egy sor kóddal a weboldalon, akár csomagként a saját alkalmazásában, akár teljesen saját tárhelyen -, azt a README-fájl tartalmazza. Ott megtalálja a puszta aláírás-ellenőrzésre szolgáló testvéralkalmazást is, amely az DPP-ellenőrzés oldalon működik.

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ügyelet és a hatóságok úgy tekintenek a termékútlevélre, mint egy olyan szoftverre, 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 kibocsátó 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ékútlevéleket bejegyezték az EU-nyilvántartásba, egy második, írásvédett tároló tíz éven át tárolja minden DPP-verziót és az eseménynaplót. Senki - mi sem - nem módosíthatja utólag ezeket a másolatokat.
  • A szerződés felmondását követően a rövid termékútlevél-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ásidőben 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ő megmaradnának.

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ékútlevél URL-je a termékazonosítót szabványos formában tartalmazza - feloldó-semleges módon, a szolgáltatók között cserélhető formában.
  • 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-fájlban - beleértve a frontend-architektúrát (saját reaktív mag, külső keretrendszerek nélkül) é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ó.