Zbulo, pa humbur nënshkrimin

Zbulo, pa humbur nënshkrimin

Çdo lexues i pasaportës së produktit merr të njëjtat të dhëna publike; disa gjithashtu marrin fusha të kufizuara. Pyetja më delikate është nëse këto fusha shtesë vijnë me provën e tyre. Ne nënshkruajmë secilën fushë veç e veç, në mënyrë që edhe një fushë e zbuluar të mund të verifikohet me një çelës publik - jashtë linje, pa nevojën për të na kontaktuar.

Një pasaportë dixhitale e produktit nuk tregon të njëjtën informacion për të gjithë. Një blerës sheh të dhënat publike. Një punëtori riparimi ose rinovimi sheh më shumë. Një autoritet mbikëqyrjeje tregu sheh gjithçka. Kjo është sqaruar, dhe standardet evropiane tani e përcaktojnë shprehimisht.

Pyetja interesante është më e hollësishme: nëse dikujt i shfaqen fusha të mbrojtura përveç të dhënave publike, a mund të verifikojë ai që këto fusha specifike janë autentike? Apo duhet t’i besojë se platforma i ka zgjedhur saktë dhe i ka përcjellë pa ndryshuar?

Për shumicën e platformave, përgjigjja e sinqertë është: besimi. Ne e kemi ndërtuar tonën në një mënyrë që përgjigjja të jetë ‘prova’ - jo vetëm për fushat publike, por për çdo fushë që shtohet vetëm në momentin e zbulimit. Pse kjo ndryshim ka rëndësi, dhe pse ne kemi zgjedhur rrugën më të lodhshme.

Të gjithë respektojnë rregullën e aksesit në të njëjtën mënyrë

EN 18239, standardi evropian për të drejtat e aksesit, sigurinë dhe konfidencialitetin në DPP, kërkon kontrollin e aksesit për çdo element të të dhënave: për çdo fushë, ekziston një rregull që përcakton se kush është i lejuar ta shikojë atë. Kjo është kërkesa e saktë, dhe nuk është e vështirë ta përmbushësh. Ne kemi paraqitur statusin e këtyre standardeve në detaje nën standardet e harmonizuara.

Mënyra e zakonshme për ta arritur këtë është përmes filtrimit në anën e serverit. Serveri di kush po bën kërkesën, kontrollon se çfarë i lejohet asaj personi të shohë, dhe kthen pikërisht atë pjesë. Kontrolli i aksesit: i zgjidhur. Standardi nuk kërkon asgjë më tepër.

Megjithatë, ekziston një problem, të cilin standarti nuk e trajton: Seksioni vjen i pashkruar. Lexuesi merr një pamje të përshtatur posaçërisht për të dhe duhet t’i besojë që serveri e ka zgjedhur atë me ndershmëri dhe që asgjë nuk është ndryshuar gjatë rrugës. Për një fletë informacioni publik, kjo është në rregull. Për një vlerë në të cilën një riciklist bazon çmimin e një baterie të përdorur, kërkohet shumë besim.

Ku një nënshkrim i vetëm arrin kufijtë e tij

Zgjidhja e dukshme është të nënshkruhet data. Për të dyja skajet, një nënshkrim standard funksionon mirë: nënshkruani pamjen publike, nënshkruani grupin e plotë të të dhënave, dhe verifikoni të dyja kundrejt një çelësi publik pa një server që vepron si ndërmjetës. Si funksionon kjo në detaje shpjegohet në Nënshkrimet dhe Certifikatat në DPP.

Problemi qëndron në mes. Një nënshkrim që mbulon të gjithë dokumentin mbulon saktësisht një grup fushash, domethënë ato që ishin të pranishme në kohën e nënshkrimit. Nëse një lexues i autorizuar i jepet qasje në një fushë të shtuar të mbrojtur, ajo fushë ndodhet jashtë grupit të nënshkruar dhe i arrin atij pa nënshkrim. Nëse, në vend të kësaj, i gjithë grupi i të dhënave nënshkruhet që nga fillimi, nënshkrimi mbulon gjithçka, por atëherë do të duhej t’u tregoje gjithçka të gjithëve.

Prandaj, fazat e ndërmjetme mbeten jashtë: punishtja, siguruesi, ricikuesi. Nëse do të nënshkruhej paraprakisht çdo kombinim i mundshëm i ‘kush-sheh-çfarë’, do të duhej një dokument i veçantë i nënshkruar për çdo kombinim, dhe numri i kombinimeve rritet në mënyrë eksponenciale me çdo grup shtesë aksesimi. Askush nuk e bën këtë. Kthehemi te filtri i pashërbyesit të pashkruar, dhe niveli i ndërmjetëm përsëri mbështetet te besimi.

Nënshkrimi i çdo fushe veç e veç

Ekziston një qasje më e mirë, dhe kjo është ajo mbi të cilën po ndërtojmë platformën. Në vend që të nënshkruajë dokumentin e përfunduar si një bllok të vetëm, lëshuesi specifikon secilën fushë veç e veç në një proces të vetëm nënshkrimi (për ata që janë të njohur me standardet: specifikimi W3C ecdsa-sd-2023 për zbulim selektiv).

Çdo pamje fillon me bërthamën publike

Prandaj, çdo pamje fillon me të njëjtat fusha publike. Çfarëdo që një lexues sheh përtej kësaj shtohet fushë pas fushe, dhe secila prej këtyre fushave ende i referohet çelësit publik të lëshuesit - jashtë linje, pa nevojën për nënshkrim të ri dhe pa i besuar entitit që kompiloji pamjen. Fushat për të cilat nuk ka të drejtë mungojnë thjesht. Jo të redaktuara, por fare aty, dhe asgjë rreth tyre nuk del.

Pse ‘i paprekur’ është thelbi i çështjes

Imagjinoni një noter që nuk e certifikon letrën si një tërësi, por çdo paragraf veç e veç. Të gjithë marrin letrën publike. Çdokush që ka të drejtë për më shumë merr paragrafët shtesë, dhe secili prej tyre vazhdon të mbajë vulën e të njëjtit noter. Në procedurën e zakonshme, platforma shkruan këta paragrafë për ju, dhe ajo që merrni mban vetëm fjalën e saj.

Pse ‘i paprekur’ është kaq i rëndësishëm ia vlen ta shpjegojmë pak më në detaje. Një vulë e paprekur nuk garanton që përmbajtja është e vërtetë. Ajo thotë: ky është saktësisht ajo që ka shkruar lëshuesi, dhe askush nuk ka ndryshuar asnjë karakter që atëherë. Kjo do të thotë që çdo person që ka thjesht përcjellë dokumentin - ndërmjetësi, rrjeti, arkiva, ne - përjashtohet nga çështja e besimit. Nuk ka më rëndësi se kush ju ka dhënë pasaportën.

Dhe një vulë është binare. Ajo qëndron ose nuk qëndron; nuk ekziston një gjysmë-vulë e thyer. Nëse thyhet, nuk do të dini se cila fjali është ndryshuar, vetëm që nuk mund t’i besoni më të gjithë dokumentit. Prandaj, nuk është çështje shkalle nëse fushat shtesë vijnë me ose pa vulën e tyre: pa vulë, ato nuk janë thjesht më pak të verifikuara në mënyrë të sigurt; ato nuk verifikohen fare.

Të dyja metodat e shikimit

Kushdo mund ta kontrollojë këtë vetë. Transpareo Time Machine është aplikacioni ynë me burim të hapur për shikimin e pasaportave të produkteve: ai shfleton historikun e versioneve të një pasaporte dhe verifikon çdo nënshkrim në shfletuesin e shikuesit pa i kërkuar njërit prej serverëve tanë. Në të janë të disponueshme publikisht dy pasaporta shembull. Pasaporta për një fanellë mban një nënshkrim që mbulon të gjithë dokumentin, ndërsa pasaporta për një bateri paraqet zbulim fushë-për-fushë.

Të dyja janë specifikime të hapura të W3C: eddsa-jcs-2022 për nënshkrimin në të gjithë dokumentin, ecdsa-sd-2023 për zbulimin fushë-për-fushë. Çdokush që dëshiron mund t’i zbatojë ato. Përpjekja e përfshirë është arsyeja pse shumëkush nuk do ta bëjë këtë: nënshkrimi në të gjithë dokumentin është dukshëm më i lirë për t’u vendosur dhe për t’u operuar, dhe kushdo që ofron vetëm të dhëna publike mund të mjaftohet me të.

Fakti që Time Machine mbështet të dy metodat është i qëllimshëm dhe do të mbetet kështu. Ai nuk i përket asnjë platforme. Një verifikues që pranon vetëm metodën më të shtrenjtë do të ishte një mjet për ne dhe për askënd tjetër.

Kujt i zbulohen fushat e mbrojtura

Vlen të pyesim kujt, përtej të dhënave publike, i zbulohet fare ndonjë gjë. Jo blerësi i rastësishëm - ajo merr certifikatën publike. Është përpunuesi që vlerëson vlerën e një pakete baterish të përdorura, siguruesi që çmonton një rrezik, ricikluesi që ndan kimikatet dhe autoriteti që ndërton një çështje. Këta janë lexuesit vendimet e të cilëve varen nga paratë ose siguria.

Dhe pikërisht këto janë fushat që mbeten të padeklaruara sipas qasjes standarde. Ata që kanë arsyen më të madhe për të dëshiruar verifikim kriptografik nuk e marrin atë, pikërisht për fushat që janë themeli i vendimit të tyre.

Ne besojmë se një shenjë certifikimi duhet të thotë të njëjtën gjë për të gjithë. ‘Verifikuar nga Transpareo’ do të thotë të njëjtën gjë në raportin e detajuar të një punëtorie riparimi ashtu si në certifikatën publike të një blerësi: çdo fushë e shfaqur vjen nga lëshuesi dhe nuk është manipuluar që atëherë. Një vulë që mbulon vetëm fushat publike është vetëm gjysmë vule.

Më shumë se sa kërkon standardi

Të jemi të qartë: asgjë nga kjo nuk është e detyrueshme. EN 18239 kërkon që qasja të kontrollohet, dhe një filtër në anën e serverit e kontrollon qasjen në mënyrë të shkëlqyer. Bërja e fushave të zbuluara të verifikueshme kriptografikisht është diçka që bëjmë përtej kësaj; nuk është një pikë që duhet shënuar thjesht sepse na e kërkon rregullorja.

Pikërisht për këtë ia vlen ta shkruajmë. Do të ishte e lehtë të përmbushje vetëm shkronjën e standardit, të ofroje filtrin në anën e serverit dhe të shpallje nivelin të plotë. Ne preferojmë angazhimin që të zbatohet kudo që shfaqet vulë. Në fund të fundit, e gjithë qëllimi i një pasaporte të nënshkruar është që askush të mos duhet t’i besojë platformës. Përjashtimi i shtresës së mesme do të rivendoste pikërisht besimin që nënshkrimi kishte për qëllim ta eleminonte.

E njëjta parim do të thotë që një fushë anashkalohet

Angazhimi për secilën fushë veç e veç sjell me vete një kërkesë të dytë, dhe kjo në fakt kërkohet nga ligji evropian. Rregullorja e Përgjithshme për Mbrojtjen e të Dhënave u jep njerëzve të drejtën që të dhënat e tyre personale të fshihen. Një regjistër të dhënash i nënshkruar si një bllok i vetëm nuk mund t’i përmbushë këto kërkesa pa shkatërruar nënshkrimin e vet.

Duke qenë se çdo fushë këtu qëndron e pavarur, një fushë e vetme mund të hiqet ndërsa gjithçka tjetër mbetet e verifikueshme. Nëse të dhëna personale përfundojnë gabimisht në një pasaportë, ato mund të hiqen në mënyrë të pastër, dhe pasaporta mbetet e vlefshme: nuk ka nevojë për lëshimin e një të reje, as për një histori të ndërprerë. Fushat rregullatore që ligji kërkon të ruhen mbeten në vend; çdo gjë që mund të fshihet mund të hiqet me kërkesë, madje edhe pas vitesh.

Megjithatë, është një pasaportë krejtësisht e zakonshme

Asgjë nga kjo nuk e kthen pasaportën në një objekt të veçantë që mund ta hapin vetëm mjetet tona. Ajo mbetet një Kredenciale e Verifikueshme në JSON-LD, formati drejt të cilit po shkon bota e standardeve të uebit, dhe i njëjti format i përdorur nga Protokolli i Transparencës i OKB-së dhe ekosistemi më i gjerë i W3C.

Pasaporta që një blerës skanon në shfletuesin e tij është, prandaj, e njëjta gjë që një partner i dhomës së të dhënave mund ta lexojë, dhe çdo verifikues që i përmbahet standardeve mund ta kontrollojë, jo vetëm ai ynë. Kostoja shtesë e sigurisë nuk i kushton lexuesit asgjë dhe nuk e lidh askënd me ne.

Pse kjo është sfiduese teknikisht

Së pari, për të shmangur çdo keqkuptim: ne nuk e shpikëm këtë proces. ecdsa-sd-2023 është një specifikim publik i W3C; kriptografia pas tij nuk është e jona, dhe çdo person që dëshiron ta zbatojë mund të informohet rreth saj. Nuk është e vështirë të mendosh për idenë. Vështirësia qëndron në ndërtimin e saj në një mënyrë që një nënshkrim të jetë ende i vlefshëm pas dhjetë vjetësh. Këtu qëndron puna, dhe ka diçka të dobishme për t’u thënë rreth saj.

Dallimi mund të tingëllojë i vogël, por ai ndryshon qasjen themelore: një nënshkrim standard kryen llogaritje mbi bajtet e një dokumenti. Zbulimi selektiv llogaritet bazuar në deklaratat e tij. Para nënshkrimit, pasaporta konvertohet në një formë të standardizuar në të cilën çdo copë informacioni paraqitet si një deklaratë e veçantë, e pavarur. Vetëm atëherë është e mundur të lësh jashtë një deklaratë pa kompromentuar pjesën tjetër.

Kjo sjell një problem që një nënshkrim i bazuar në bajtë nuk e ka: e njëjta formë e standardizuar duhet të riprodhohet saktësisht pas dhjetë vjetësh. Jo përafërsisht, por karakter për karakter; përndryshe, prova nuk do të jetë më e vlefshme. Tre gjëra e pengojnë këtë, dhe të treja janë të padukshme.

Numrat humbasin tipin e tyre. Nëse shkruani një numër si JSON të thjeshtë, informacioni për llojin e numrit humbet gjatë rrugës. Një vlerë si 2.0 kthehet si 2 pas kalimit nëpër JSON. Për një njeri, është e njëjta gjë; për formën e standardizuar, është një deklaratë e ndryshme, dhe validimi dështon.

Etiketat ende nuk përbëjnë kuptim. Për t’u shfaqur forma e standardizuar, çdo emër fushe duhet t’i korrespondojë një kuptimi unik. Nëse mungon ndonjë, fusha zhduket në heshtje gjatë konvertimit. Më pas shfaqet në pasaportë, por prova nuk e mbulon dhe askush nuk e vëren.

Kuptimet zakonisht gjenden online. Ky lidhje përmbushet në një fjalor që shumica e mjeteve e marrin nga uebi gjatë validimit. Kushdo që e bën këtë e bën të mundshme verifikimin e pasaportës së tij/saj në varësi të një adrese të palës së tretë që ende përgjigjet pas dhjetë vjetësh - dhe mbetet e pandryshuar.

Si e zgjidhmë

Ne zgjidhmëtre çështjet në burim, në vend që t’i kapnim më vonë.

Llojet. Çdo vlerë shkruhet me llojin e saj, dhe publikimi ndalet sapo të shfaqet edhe një numër i vetëm pa lloj në formularin e standardizuar. Gabimi kështu zbulohet aty ku kushton vetëm një rresht kodi, në vend që të zbulohet pas vitesh si një dështim i pa shpjeguar i verifikimit.

Fjalorët. Çdo fjalor që i referohet një pasaporte ruhet lokalisht në sistemin tonë dhe kurrë nuk merret përmes internetit. Një adresë e panjohur rezulton në një ndërprerje të prerë gjatë nënshkrimit, në vend që të kthehet heshturazi në një rezultat bosh.

Identifikuesit. Çdo nyje në dokument mban një identifikues të qëndrueshëm, duke siguruar që formulari i standardizuar të mbetet i riprodhueshëm, në vend që t’i caktohen emra të rinj ndihmës në çdo ekzekutim.

Pjesa më delikate qëndron te ‘Sillni Çelësin Tuaj’. Për çdo lëshim, kërkohet një çelës shtesë, me jetë të shkurtër, me të cilin fushat që mund të zbulohen nënshkruhen veçmas. Lëshuesi gjeneron dhe hedh vetë këtë çelës. Nëse e mbanim ne, mund të shpiknim fusha individuale me prapavijë, dhe pavarësia e nënshkrimit të lëshuesit do të ishte thjesht një pretendim. Ne verifikojmë provën e kthyer kundrejt çelësit publik të ruajtur para se t’i besojmë asaj.

Çdo pasaportë mban dy prova të tilla: një nga lëshuesi dhe një nga Transpareo, dhe secila gjenerohet në mënyrë të pavarur për shikimin e lexuesit. Dy firma, dy autoritete të pavarura - madje edhe për një fushë të vetme të zbuluar.

Për ne, ky përpjekje ia vlen. Ne nuk e kemi shtuar verifikueshmërinë si një mendim të mëvonshëm; platforma është ndërtuar rreth këtij parimi që nga versioni i parë. Çdo pasaportë nënshkruhet me publikimin dhe lidhet me versionin e mëparshëm. Arkiva e pandryshueshme dhjetëvjeçare krijohet dhe hyn në fuqi sapo pasaportat të regjistrohen në Regjistrin DPP të BE-së. Nënshkrimi i çdo fushe në vend të bllokut të tërë është një zgjerim i këtij funksionaliteti themelor, jo një shtesë për diçka që kurrë nuk është menduar për këtë qëllim.

Ku qëndrojmë

Thjesht, zgjedhja është e qartë. Mund të zbuloni fushat e mbrojtura dhe t’i kërkoni lexuesit t’i besojë filtrit tuaj - kjo i përmbush standardet. Ose mund t’i zbuloni dhe të siguroni provën në të njëjtën kohë - kjo i përmbush standardet më të larta, të cilat besojmë se i meritojnë këto fusha.

Ne kemi zgjedhur provën, për hir të çdo lexuesi, sepse një vulë duhet të nënkuptojë të njëjtën gjë, pavarësisht se kush e shikon. Për ata që duan ta shohin në veprim: dy demonstrimet e lidhura më sipër verifikohen vetë drejtpërdrejt në shfletues, pa lidhje interneti, vetëm me një çelës publik.

Përditësime mbi nivelet e aksesit dhe provat

Zbulimi selektiv, nënshkrimet dhe zhvillimi i standardeve DPP - një përmbledhje mujore e dërguar drejtpërdrejt në kutinë tuaj të postës elektronike.