Laika mašīna DPP

Iedomājieties, ka turat rokā kādu produktu un nolasāt uz tā esošo QR kodu. Tā vietā, lai atvērtos PDF fails, atveras neliela lietotne. Jūs redzat produktu šajā brīdī: no kā tas sastāv, no kurienes tas nāk, kas jāņem vērā. Ar vienu pavelcienu varat pārvietoties atpakaļ laikā - varat apskatīt katru versiju, kas jebkad ir publicēta.

Tas ir Transpareo Time Machinemūsu atvērtā koda lietotāju lietotne jebkurai produkta digitālajai pasei. Kods ir pieejams saskaņā ar GPL v3 licencē GitHub.

Mēs to izstrādājam, jo ES regula par produkta digitālo pasi tika izstrādāta patērētāju vajadzībām - tieši tām personām, kuras produktu tur rokās. Lielākā daļa pakalpojumu sniedzēju to pārvērš par atbilstības veidlapu, kuru neviens neieskenē divreiz. Mēs to pārvēršam par lietotni, kuru patērētājs patiešām atver.

Pārliecinieties paši

Produkta pase ir pilnīga un aizpildīta ar izdomātiem datiem: pārlūkojiet versiju vēsturi un atveriet pārbaudes plāksnīti - tieši pārlūkprogrammā, bez konta.

Kā darbojas šī lietotne

Četri saskares punkti no tā cilvēka viedokļa, kurš tur produktu rokās. Nav nepieciešama pieteikšanās, nav jāinstalē lietotne.

1
Skenēšana

Nolasiet QR kodu ar viedtālruņa kameru. Lietotne atvērsies pārlūkprogrammā.

2
Apskatīt jaunumus

Produkts parādās tagad - sastāvdaļas, materiāli, izcelsme, kopšana, pārstrāde.

3
Pārlapot vēsturi

Ar vienu pavelcienu var pārlūkot iepriekšējās versijas. Katra iepriekšējā versija ir norādīta ar datumu un izmaiņu iemeslu.

4
Dalīties

Katrai versijai ir sava saite. Lietotājs dalās ar konkrētu versiju ar draugiem vai iestādēm.

Kāpēc vispār

ES regula par produkta digitālo pasi ir lielākā virzība produktu pārredzamības virzienā pēdējo desmitgažu laikā. Ja uzmanīgi izlasa tās pamattekstus, redzams, ka tā ir skaidri paredzēta patērētājiem. Iestādes, pārstrādātāji un darbnīcas iesaistās šajā procesā, taču galvenais adresāts ir persona, kas tur produktu rokās.

Skaitļos izsakoties, situācija ir nepārprotama. Vidusmēra Eiropas iedzīvotājs šīs desmitgades beigās varēs skenēt no desmitiem līdz simtiem produkta pasu gadā. Aprēķinot uz 200 miljoniem mājsaimniecību, tas nozīmē miljardiem patērētāju mijiedarbību gadā. Salīdzinājumā ar to iestāžu un pārstrādātāju darbība skaitliski ir niecīga.

Ja regula ir jāievieš patērētāju vidū, tad patērētāju portālam jābūt labi izstrādātam - ātram, pievilcīgam un loģiskam. Pretējā gadījumā tā neizpildīs savu mērķi.

Mēs esam nolēmuši izveidot šo patērētāju portālu kā atvērtā koda risinājumu, lai tas nebūtu atkarīgs no viena konkrēta pakalpojuma sniedzēja.

Vēsture ir likums, manifests ir mūsu

Produkta pase mainās: remonts, jauna pārstrādes kvota, atsaukšana. Tāpēc prasības nosaka, ka iepriekšējās versijas jābūt pieejamām: uzglabāšanas standarts fiksē katru versiju, savukārt saskarnes standarts paredz, ka katru versiju var mērķtiecīgi izlasīt. Tas, ko prasības atstāj atklātu, ir posms starp tām: saraksts, kas visas pases versijas apvieno vienā vēsturē. „Transpareo“ to publicē kā manifestu katrai pasē, parakstītu, katru versiju ar pirksta nospieduma palīdzību saistot ar tās priekšteci. Tādējādi „laika mašīna“ pārlapo produkta vēsturi, un lasītājs pārbauda ne tikai to, vai versija ir autentiska, bet arī to, vai tā ir aktuālā versija nepārtrauktā secībā.

Tomēr lietotne nav no tā atkarīga. Ja tai vietā manifestam parāda atsevišķu pasi, kādu katrs pakalpojuma sniedzējs publicē saskaņā ar atvērtajiem standartiem, tā parāda šo vienu versiju, pārbauda tās parakstu, ja tāds ir, un vienkārši neparāda laika skalu. Pase bez paraksta netiek uzskatīta par kļūdu, bet vienkārši tiek parādīta bez pārbaudes zīmoga. Tādējādi šī pati lietotne attēlo arī pases, kas nekad nav bijušas reģistrētas Transpareo.

Pāreja uz citu pakalpojumu sniedzēju bez pārtraukuma

ES regula par produkta digitālo pasi paredz, ka produkta pasēm jābūt savietojamām un balstītām uz atvērtām standartizācijām - tām jābūt pārnesamām starp pakalpojumiem un sistēmām, nevis piesaistītām vienam konkrētam pakalpojumu sniedzējam. Tātad neatkarība no pakalpojumu sniedzēja nav papildu nosacījums, bet gan daļa no prasībām.

„Transpareo Time Machine“ ir risinājums, kas šo prasību īsteno praksē. Tā kā katra produkta pase tiek piegādāta atbilstoši atvērtiem standartiem - risinātājam neitrāla identifikācija, kanoniska serializācija, publiski pieejamas atslēgas - un renderētājs ir atvērtā koda saskaņā ar GPL v3, pases attēlošana nekad nav atkarīga no mūsu platformas.

Par produkta pasi atbildīgs ir ekonomikas operators - ražotājs, importētājs vai pilnvarotais pārstāvis. Ja viņš nolemj pamest „Transpareo“ un pāriet pie cita pakalpojuma sniedzēja, attēlojums paliek nemainīgs: jau publicētās versijas kopā ar vēsturi turpina nemainīgi attēlot tas pats atvērtā koda renderētājs, un jauno pakalpojuma sniedzēju, kas izmanto tos pašus atvērtos standartus, attēlo tieši tā pati lietotne.

Dati tiek pārnesti līdzi, patērētāji neredz nekādas pārtraukums, un nevienam nav jāgaida migrācija.

Pāreja pati par sevi nav projekts. „ Transpareo Time Machine “ ir statisks pakotnes kopums: vienreiz izveidots, nokopēts uz jebkuru tīmekļa serveri - un viss ir gatavs. Dizains, ko esat izveidojuši Transpareo saviem pasēm, tiek pārnests kopā ar katru pasi kā publicēts stilu lapa. Tātad pases skats, pie kura jūsu klienti ir pieraduši, izskatās tieši tāpat arī uz jūsu paša servera - ar tām pašām krāsām, fontu un logotipu.

Pārbaudīts pārlūkprogrammā, nevis mūsu serverī

Katras produkta pases augšdaļā parādās uzlīme: „Pārbaudīts ar Transpareo”. Tā atspoguļo pārbaudes rezultātu, kas netiek veikta mūsu serverī, bet gan apmeklētāja pārlūkprogrammā - pamatojoties uz lejupielādētajiem baitiem un izdevēja publiskajiem atslēgām.

Katru DPP versiju paraksta divas savstarpēji neatkarīgas puses: izdevējs un „Transpareo“. Abiem parakstiem jābūt pārbaudāmiem, lai plāksnīte kļūtu zaļa. Izmantojot „Bring Your Own Key“ (BYOK) principu, izdevējs uztur savu paraksta galapunktu - „Transpareo“ nekad neuzglabā privāto atslēgu un pievieno tikai neatkarīgo pretparakstu. Tādējādi rodas izdevēja paraksts, ko „Transpareo“ pats nevar ģenerēt.

Kompromitēts serveris nevar viltot atzīmi, jo pārbaude notiek pie paša apmeklētāja.

Ja vēlaties uzzināt sīkāku informāciju, noklikšķiniet uz plāksnītes. Aiz tās redzēsiet paraksta ķēdi, hašus un versiju vēsturi. Ja vēlaties tikai informāciju, vienkārši ignorējiet to un turpiniet lasīt produkta pasi.

Šī pati pārbaude ir pieejama arī kā atsevišķa lapa: vietnē DPP pārbaude ievadiet jebkuras produkta pases manifestu URL un redzēsiet pilnus pārbaudes rezultātus - neatraujot pašu pasi.

Mēs publiskojam kodu

„Transpareo Time Machine“ ir pieejams saskaņā ar GPL v3 GitHub vietnē. Publicētās modifikācijas savukārt jāizplata saskaņā ar GPL v3, lai ikviens turpmākais uzlabojums būtu pieejams plašākai sabiedrībai.

Klonēšana, atzarojumi, pašhostēšana - viss ir atļauts.

Kā integrēt lietotni - vai nu ar vienu rindu lapā, kā paketi savā lietojumprogrammā vai pilnībā pašhostējot - ir aprakstīts tur esošajā README failā. Tajā atradīsiet arī līdzīgu elementu, kas paredzēts tikai paraksta pārbaudei un darbojas tiešsaistē vietnē DPP pārbaude.

Kas šo lietotni izmanto lietderīgi

Lietotne sākotnēji ir izstrādāta patērētājiem. Tomēr tā ir piemērota ikvienam, kurš vēlas neatkarīgi apskatīt vai pārbaudīt produktu datus.

  • Galapatērētāji skenē, apskata, pārlapo un dalās. Nav nepieciešama pieteikšanās, nav izsekošanas mehānismu.
  • Tirgus uzraudzības iestādes un valsts iestādes uzskata, ka produkta pase ir programmatūra, kuras avota kods ir publiski pārbaudāms.
  • Remonta darbnīcas un pārstrādātāji var redzēt materiālu sastāvu un demontāžas norādījumus tieši uz paša produkta.
  • Zīmoli un velosipēdu nomas uzņēmumi var pielāgot šo pakalpojumu savam zīmolam - CSS simboli, pašu komponenti, pašhostings.

Kas notiks, ja „Transpareo“ vairs nebūs?

ES prasa, lai reģistrētais produkta pases dokuments būtu pieejams vismaz desmit gadus - arī pēc izdevēja maksātnespējas vai likvidācijas. SaaS pakalpojumu sniedzējs reti darbojas tik ilgi. Tāpēc mēs no paša sākuma veidojam platformu tā, lai produktu pases būtu izmantojamas neatkarīgi no mums:

  • Katra parakstītā DPP versija atrodas publiski pieejamā krātuvē. Baiti un publicētie publiskie atslēgas ir pietiekami, lai vēlāk veiktu verifikāciju.
  • Tiklīdz produkta pases ir reģistrētas ES reģistrā, otra, pret rakstīšanu aizsargāta atmiņa desmit gadus glabā katru DPP versiju un notikumu žurnālu. Neviens - arī mēs ne - nevar šīs kopijas vēlāk mainīt.
  • Pēc līguma izbeigšanas īsās produkta pases URL adreses joprojām ir pieejamas, izmantojot pāradresāciju uz „Transpareo“ platformu.
  • „Transpareo Time Machine” darbojas nemainīgi arī ar arhivētiem datiem. Pakete mums izpildes laikā neizsauc atgriezenisko izsaukumu; tai nepieciešami tikai baiti un atslēgas.

Ja rīt „Transpareo” platforma pazustu, paliktu DPP versijas un atvērtā koda renderētājs.

Tiem, kurus interesē tehnoloģijas

Šeit ir izklāstīts, kas notiek „zem motora pārsega“. Ja jums nav nepieciešams to zināt sīkāk, varat izlaist šo sadaļu - lietotne darbosies arī tāpat.

  • GS1 Digital Link (ISO/IEC 18975): Produkta pases URL satur produkta identifikāciju standartizētā formā - neatkarīgi no risinātāja, un to var izmantot dažādi piegādātāji.
  • JSON kanonizācijas shēma (RFC 8785): deterministiska serializācija. Tādējādi hash ir reproducējams neatkarīgi no lauku secības vai atstarpēm - ikviens to var pats pārrēķināt.
  • W3C Data Integrity Proofs (eddsa-jcs-2022): Ed25519 paraksts, kas piemērots kanonizētajai formai (JCS).
  • /.well-known/dpp-keys/ (RFC 8615): izdevēju publiskie atslēgas atrodas standartizētā ceļā - nav nepieciešams sazināties ar Transpareo, katrs verificētājs tās var atrast pats.

Viss ir dokumentēts README failā GitHub vietnē - ieskaitot frontend arhitektūru (paša izstrādāts reaktīvais kodols, bez ārējiem frameworkiem) un izveides instrukcijas pašhostēšanai.

Apskatīt kodu GitHub vietnē

Pilnu avota kodu, visus izlaidumus un diskusiju par problēmu varat atrast publiskajā repozitorijā.