Временска машина за ДПП

Замислите да држите производ у руци и скенирате QR код на њему. Уместо PDF-а, отвара се мала апликација. Видите производ онаквим какав јесте: од чега је направљен, одакле потиче и шта треба да имате на уму. Повлачењем прста уназад путујете кроз време - можете да видите сваку верзију која је икада објављена.

Ово је Transpareo Time Machine, наша апликација отвореног кода за потрошаче за било који Пасош дигиталног производа. Код је доступан под GPL v3 лиценцом на GitHub.

Развојимо га јер је Уредба ЕУ о пасошу дигиталног производа написана за потрошаче - за особу која држи производ у рукама. Већина пружалаца услуга претвара га у образац за усаглашеност који нико никада не скенира два пута. Ми га претварамо у апликацију коју ће потрошачи заиста отворити.

Уверите се сами

демо приказује потпуне пасоше производа са примерним подацима: прегледајте историју верзија и отворите налепницу о инспекцији - директно у вашем прегледачу, без потребе за налозом.

Шта апликација ради

Четири додирне тачке из перспективе особе која држи производ. Без пријаве, без инсталације апликације.

1

Скенирај

Скенирајте QR код помоћу камере вашег паметног телефона. Апликација ће се отворити у вашем прегледачу.

2

Погледајте најновије вести

Производ овде и сада - компоненте, материјали, порекло, одржавање, рециклирање.

3

Прегледајте историју

Повлачењем се враћате кроз време. Сва претходна издања, са датумом и разлогом промене.

4

Подели

Свака верзија има свој линк. Особа дели одређену верзију са пријатељима или властима.

Зашто уопште?

Уредба ЕУ о Пасошу дигиталног производа представља највећи помак ка транспарентности производа у последњих неколико деценија. Ако се пажљиво прочитају основни текстови, јасно је да је она експлицитно осмишљена за потрошаче. Власти, рециклажери и сервиси су укључени; али примарни прималац је особа која држи производ у рукама.

Што се тиче бројева, ситуација је јасна. До краја деценије, просечно европско домаћинство ће моћи да скенира десетине до стотине пасоша производа годишње. На основу 200 милиона домаћинстава, то износи милијарде интеракција са потрошачима годишње. За поређење, свет власти и рециклаже је бројчано занемарљив.

Ако регулатива треба да допре до потрошача, тада страна окренута ка потрошачу мора бити добро осмишљена - брза, атрактивна и кохерентна. У супротном, неће испунити своју сврху.

Одлучили смо да ову платформу окренуту ка потрошачу изградимо као софтвер отвореног кода како не би зависила од једног провајдера.

Ток догађаја је уписан у камен; манифест је наш

Производни пасош се мења: поправка, нови циљ у погледу рециклираног садржаја, повука. Спецификације стога захтевају да претходне верзије остану доступне: стандард за складиштење закључава сваку верзију, док стандард интерфејса обезбеђује да се свака верзија може посебно читати. Оно што спецификације остављају отвореним јесте веза између њих: листа која повезује све верзије пасоша у једну историју. Transpareo објављује ово за сваки пасош као манифест, потписан и са сваком верзијом ланцираном за претходну путем дигиталног отиска. Ово омогућава “временској машини” да прегледа историју производа, а читаоцу да провери не само да је верзија аутентична, већ и да је најновија у непрекинутом низу.

Међутим, апликација није везана за ово. Ако јој, уместо манифеста, покажете појединачни пасош - као што их објављују сви провајдери у складу са отвореним стандардима - она приказује ту једину верзију, проверава њен потпис (ако га има) и једноставно прескаче временску линију. Пасс без потписа се не третира као грешка, већ се једноставно приказује без печата одобрења. На овај начин , иста апликација такође приказује пасове који никада нису били регистровани код Transpareo.

Прелазак провајдера без прекида

Уредба ЕУ о дигиталним пасошима производа захтева пасоше производа који су интероперабилни и засновани на отвореним стандардима - преносиви између услуга и система, уместо да буду везани за једног провајдера. Независност од провајдера услуга стога није опционални додатак, већ део захтева.

Transpareo Time Machine је решење које ово захтевање спроводи у пракси. Пошто се сваки пасош производа испоручује коришћењем отворених стандарда - резолутерски неутралне идентификације, каноничке серијске обраде и јавно објављених кључева - а рендерер је отвореног кода под GPL v3 лиценцом, приказ пасоша никада не зависи од наше платформе.

Одговорност за пасош производа лежи на пословном ентитету - произвођачу, увознику или овлашћеном представнику. Ако одлуче да напусте Transpareo и пређу на другог провајдера, приказ остаје стабилан: исти рендерер отвореног кода наставља да приказује већ објављене верзије, укључујући и историју, непромењено, а нови провајдер који подржава исте отворене стандарде биће приказан помоћу потпуно исте апликације.

Подаци се преносе заједно са њим, потрошачи не примећују прекид у раду и нико не мора да чека миграцију.

Само пресељење није пројекат. Transpareo Time Machine је статички пакет: изградите га једном, копирајте на било који веб сервер и готови сте. Дизајн који сте подесили у Transpareo-у за своје пасоше путује са сваким пасошем као објављени стилски лист. Приказ пасоша на који су ваши клијенти навикли стога изгледа потпуно исто на вашем сопственом серверу, са свим бојама, фонтом и логотипом.

Тестирано у прегледачу, а не на нашем серверу.

На врху сваког пасоша производа појављује се ознака: “Verified by Transpareo”. Она показује резултат процеса верификације који се не одвија на нашем серверу, већ у прегледачу посетиоца - на основу учитаних бајтова и јавних кључева издаваоца.

Две независне стране потписују сваку верзију DPP-а: издавач и Transpareo. Оба потписа морају бити проверљива да би ознака постала зелена. Коришћењем опције “Донесите свој кључ” (BYOK), издавач користи сопствени ендпоинт за потписивање - Transpareo никада не поседује приватни кључ и само додаје независни контрапотпис. То резултује издавачком потписом који сам Transpareo не може да генерише.

Компромитовани сервер не може да фалсификује ознаку, јер се верификација одвија на уређају самог посетиоца.

Ако желите да сазнате тачно шта се дешава, кликните на ознаку. Иза ње ћете видети ланац потписа, хешове и повезану историју верзија. Ако желите само информације, једноставно игноришите ово и наставите са читањем пасоша производа.

Иста верификација је такође доступна као самостална страница: на Верификација DPP унесите URL манифеста било ког пасоша производа и погледајте пун резултат верификације - без отварања самог пасоша.

Објављујемо код

Transpareo Time Machine је лиценциран под GPL v3 на GitHub-у. Све објављене измене морају бити лиценциране под GPL v3, како би даљи развој користио широј заједници.

Клонирање, форковање, самостално хостовање - све је дозвољено.

README фајл објашњава како да интегришете апликацију, било једном линијом на страници, као пакет унутар ваше сопствене апликације или у потпуности хостовано од ваше стране. Такође ћете пронаћи и пратећу компоненту само за верификацију потписа, која је доступна на адреси Верификација DPP.

Они који ефикасно користе апликацију

Апликација је првенствено намењена потрошачима. Међутим, може да је користи свако ко жели самостално да прегледа или провери податке о производу.

  • Крајњи потрошачи могу да скенирају, прегледају, претражују и деле. Без пријаве, без трагача.
  • Тела за надзор тржишта и регулаторна тела могу да прегледају пасош производа у софтверу чији је изворни код јавно проверљив.
  • Сервиси за поправку и рециклажери могу да прегледају састав материјала и упутства за растављање директно на производу.
  • Брендови и оператери виљушкара могу да прилагоде пакет свом бренду - CSS токени, прилагођене компоненте, самостално хостовање.

Шта ће се догодити ако Transpareo више не постоји?

ЕУ захтева да регистровани пасош производа остане доступан најмање десет година - чак и након стечаја или ликвидације издаваоца. Провајдер SaaS услуга ретко опстане толико дуго. Стога платформу градимо од самог почетка на такав начин да пасоши производа остану употребљиви независно од нас:

  • Свака потписана верзија DPP-а чува се у јавно доступном репозиторијуму. Подаци, заједно са објављеним јавним кључевима, довољни су за накнадну верификацију.
  • Чим се пасоши производа региструју у ЕУ регистру, друга локација за складиштење само за читање дуплира сваку верзију ДПП-а и дневник догађаја још десет година. Нико - чак ни ми - не може ретроактивно да измени ове огледалне копије.
  • Након престанка важења, кратки URL-ови за пасоше производа остају доступни преко преусмеравања на платформи Transpareo.
  • Transpareo Time Machine наставља да ради непромењено, чак и на архивираним подацима. Пакет нас не позива назад током извршавања; потребни су му само бајтови и кључеви.

Ако би платформа Transpareo нестала сутра, верзије DPP-а и рендерер отвореног кода би остали.

За оне који су знатижељни о технологији

Ево шта се дешава у позадини. Ако вам детаљи нису потребни, можете прескочити овај одељак - апликација ће и даље радити.

  • GS1 Digital Link (ISO/IEC 18975): URL производног пасоша садржи идентификатор производа у стандардизованом формату - неутралан у односу на резолутор и заменљив између провајдера.
  • Шема канонизације JSON-а (RFC 8785): Детерминистичка сериализација. Ово осигурава да хеш остане репродуцибилан без обзира на редослед поља или празних знакова - свако може сам да га провери.
  • W3C докази интегритета података (eddsa-jcs-2022): Ed25519 потпис над канонизованим обликом (JCS).
  • /.well-known/dpp-keys/ (RFC 8615): Јавни кључеви издаваоца налазе се на стандардизованој путањи - није потребно контактирати Transpareo; сваки верификатор може сам да их пронађе.

Све је документовано у README на GitHub-у - укључујући архитектуру фронтенда (наш сопствени реактивни језгро, без спољних фрејмворкова) и упутства за изградњу за самостално хостирање.

Погледајте код на GitHub-у

Можете пронаћи цео изворни код, све верзије и дискусију о проблему у јавном репозиторијуму.