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

Замислете дека држите производ во рака и го скенирате 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 не може да го генерира.

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

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

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

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

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

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

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

Датотеката README објаснува како да ја интегрирате апликацијата, било со една единствена линија код на страница, како пакет во вашата сопствена апликација или целосно хостирана од вас. Исто така, ќе ја најдете и сестринската компонента само за верификација на потписи, која е достапна на Верификација на ДПП.

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

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

  • Крајните потрошувачи можат да скенираат, прегледуваат, пребаруваат и споделуваат. Без најава, без трагачи.
  • Телата за пазарна надзор и регулаторните тела можат да го прегледуваат пасошот на производот во софтвер чиј изворен код е јавно достапен за ревизија.
  • Сервисите и рециклирачите можат да ја видат составот на материјалот и упатствата за расклопување директно на производот.
  • Брендовите и операторите на вилушкари можат да го приспособат пакетот за да одговара на нивниот сопствен бренд - 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

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