Временска машина за DPP-ови

Замислете дека држите производ во рака и го скенирате QR-кодот на него. Наместо PDF-датотека, се отвора мала апликација. Го гледате производот каков што е во моментов: од што е направен, од каде потекнува и што треба да имате предвид. Со лизгање се враќате низ времето - можете да ја видите секоја верзија што некогаш била објавена.

Можете да го испробате ова веднаш: демонската верзија⁠ прикажува целосен пасош на производот со примероци на податоци.

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

Го создаваме бидејќи регулативата на ЕУ за Паспортот на дигитален производ е напишана за потрошувачите - за лицето што го држи производот во рацете. Повеќето даватели на услуги го претвораат во формулар за усогласеност што никој никогаш не го скенира двапати. Ние го претвораме во апликација што потрошувачите навистина ќе ја отворат.

Што прави апликацијата

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

1

Скенирај

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

2

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

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

3

Прелистај низ историјата

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

4

Сподели

Секоја верзија има своја врска. Лице споделува одредена верзија со пријатели или со властите.

Зошто воопшто?

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

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

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

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

Регулативата на ЕУ за дигиталниот пасош на производи бара пасоши на производи кои се интероперабилни и засновани на отворени стандарди - преносливи помеѓу услуги и системи, наместо да бидат поврзани со еден давател на услуги. Независноста од давателот на услуги затоа не е опционален додаток, туку дел од барањето.

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

Одговорноста за пасошот на производот лежи на деловниот субјект - производителот, увозникот или овластениот претставник. Ако тие одлучат да го напуштат Transpareo и да преминат на друг давател на услуги, прикажувањето останува доследно: Истиот рендерер со отворен код продолжува да ги прикажува претходно објавените верзии, вклучувајќи ја и историјата, без никакви промени, а новиот давател на услуги што ги поддржува истите отворени стандарди ќе биде прикажан со истата апликација. Податоците се пренесуваат заедно со него; потрошувачите не забележуваат прекин, и никој не мора да чека на миграција.

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

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

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

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

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

Го објавуваме кодот

Transpareo Time Machine е лиценциран под GPL v3 на GitHub⁠. Клонирање, форкување, самостојно хостирање - сè е дозволено. Сите објавени измени мора да бидат лиценцирани под GPL v3, за да може понатамошниот развој да ѝ користи на пошироката заедница.

Три начини за интегрирање на пакетот:

  • Преку таг за скрипта: едноставно додајте ги <script> и <transpareo-time-machine src="…"> на вашата страница - тоа е сè; не е потребен чекор за изградба.
  • Преку npm: npm install transpareo-time-machine во вашата сопствена апликација.
  • Самостојно хостирање: изградете го пакетот, користете ја вашата сопствена инфраструктура, нула зависности од трети страни при извршување.

Ако ви треба само верификација на потпис без целосниот приказ на производот, увезете го поврзаниот елемент <dpp-verifier> - идеален за алатки за ревизори. Погледнете го во акција на страницата за верификација на DPP.

Тие што ја користат апликацијата ефикасно

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

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

Што ќе се случи ако Transpareo повеќе не постои?

ЕУ бара регистрираниот пасош на производот да остане достапен најмалку десет години - дури и по неспособноста за плаќање или ликвидацијата на издавачот. Давател на SaaS услуги ретко опстојува толку долго. Затоа, платформата ја градиме уште од самиот почеток на таков начин што пасошите на производот остануваат употребливи независно од нас:

  • Секоја потпишана верзија на ДПП се зачувува во јавно достапен репозиториум. Податоците, заедно со објавените јавни клучеви, се доволни за последователна верификација.
  • Штом пасошите на производот ќе се регистрираат во ЕУ-регистарот, втор систем за складирање со пристап само за читање ги огледалува секоја верзија на ДПП и дневникот на настани уште десет години. Никој - па дури ни ние - не може ретроактивно да ги менува овие огледални копии.
  • По прекинот, кратките 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⁠ - вклучувајќи ја и архитектурата на front-end-от (наше сопствено реактивно јадро, без надворешни рамки) и упатствата за изградба за самостојно хостирање.

Погледнете го кодот на GitHub

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