Atskleisti, neprarandant parašo

Atskleisti, neprarandant parašo

„Transpareo“ kiekvieną gaminio paso laukelį pasirašo atskirai, kad būtų galima patikrinti net ir apsaugotus laukelius. Skaitytojas neprivalo pasitikėti platforma.

Skaitmeninis gaminio pasas ne visiems rodo tą patį. Pirkėja mato viešai prieinamus duomenis. Remonto įmonė ar perdirbėjas mato daugiau. Rinkos priežiūros institucija mato viską. Tai yra aiškiai nustatyta, o Europos standartai dabar tai aiškiai numato.

Įdomus klausimas yra šiek tiek subtilesnis: jei kas nors mato ne tik viešus duomenis, bet ir apsaugotus laukelius, ar jis gali įrodyti, kad būtent šie laukeliai yra autentiški? Arba ar jis turi pasitikėti, kad platforma juos teisingai atrinko ir perdavė nepakeistus?

Įsivaizduokite notarą, kuris patvirtina ne visą laišką, o kiekvieną pastraipą atskirai. Viešą laišką gauna kiekvienas. Kas turi teisę gauti daugiau, gauna papildomas pastraipas, ir kiekviena iš jų toliau yra pažymėta to paties notaro antspaudu. Būtent taip mes sukūrėme savo platformą. Daugumoje platformų sąžiningas atsakymas į aukščiau pateiktą klausimą yra: pasitikėjimas. Pas mus jis yra: įrodymas, kiekvienam laukeliui, kuris pridedamas tik atskleidimo metu. Šiame straipsnyje paaiškinama, kodėl šis skirtumas yra svarbus ir kodėl mes pasirinkome sudėtingesnį kelią.

Prieigos taisyklę visi laikosi vienodai

EN 18239, Europos standartas, reglamentuojantis prieigos teises, saugumą ir konfidencialumą DPP, reikalauja, kad prieiga būtų kontroliuojama pagal kiekvieną laukelį: kiekvienam laukeliui yra nustatyta taisyklė, kas jį gali matyti. Tai teisingas reikalavimas, ir jį įvykdyti nėra sunku. Kokį statusą iš tikrųjų turi šie standartai, išsamiai išdėstėme savo straipsnyje apie suderintus standartus.

Įprastas būdas tai pasiekti - filtras serveryje. Serveris žino, kas teikia užklausą, patikrina, ką šis asmuo gali matyti, ir pateikia būtent tą informacijos dalį. Daugiau norma nereikalauja. Skaitytojas turi tikėti, kad serveris atrinko informaciją sąžiningai ir jos nekeičia perdavimo metu. Viešam informaciniam lapui tai yra priimtina. Tačiau kai kalbama apie vertę, kuria remdamasis perdirbėjas nustato naudotos baterijos kainą, tai reikalauja pernelyg didelio pasitikėjimo.

Yra vienas trūkumas, kurio norma neatsižvelgia: duomenų fragmentas pateikiamas be antspaudo.

Akivaizdus sprendimas - pasirašyti duomenis. Abiem skalės galais gerai tinka įprastas parašas: pasirašyti viešą peržiūrą, pasirašyti visą duomenų rinkinį. Kaip tai vyksta išsamiai, aprašyta skyriuje „Parašai ir sertifikatai“ DPP. Problema kyla viduryje. Parašas, apimantis visą dokumentą, apima būtent tuos laukelius, kurie buvo ten pasirašymo metu. Jei įgaliotam skaitytojui papildomai atskleidžiamas apsaugotas laukelis, šis laukelis lieka už pasirašyto kiekio ribų ir jam pasiekiamas neapsaugotas. Niekas iš anksto nepasirašo visų galimų „kas ką mato“ derinių, nes jų skaičius išauga eksponentiškai. Grįžtama prie filtro be antspaudo, o vidurinis lygis vėl remiasi pasitikėjimu.

Kiekvieno lauko pasirašymas atskirai

Yra geresnė konstrukcija, ir būtent ant jos mes kuriame platformą. Vietoj to, kad pasirašytų gatavą dokumentą kaip vieną bloką, kūrėjas vienu kartu nustato kiekvieną laukelį atskirai (tiems, kurie išmano standartus: W3C procedūra ecdsa-sd-2023).

Kiekvienas vaizdas prasideda nuo tų pačių viešųjų laukelių. Viskas, ką skaitytojas mato papildomai, pridedama laukelis po laukelio, o kiekvienas iš šių laukelių ir toliau veda prie gamintojo viešojo rakto - neprisijungus prie interneto, be pakartotinio pasirašymo ir be pasitikėjimo institucija, kuri sudarė šį vaizdą. Laukeliai, į kuriuos nėra teisių, tiesiog trūksta. Jie nėra užtušuoti, o tiesiog jų nėra, ir apie juos nieko neatsiskleidžia.

Vienas ciklas: remonto įmonė

Remonto įmonė pareiškė teisėtą interesą dėl akumuliatoriaus - tai vienas iš prieigos lygių, kuriuos aiškiai numato baterijų reglamentas. Jos dirbtuvių sistema prisijungia prie mūsų sąsajos naudodama savo raktą ir atsisiunčia pasą. Atsakymas yra tas pats viešasis pasas, kurį mato ir pirkėja, tik su vienu papildomu laukeliu: išmontavimo instrukcija, kuri atskleidžiama tik įgaliotiems skaitytojams. Nėra jokio antro dokumento, jokios specialios versijos.

Prieš įmonei pasikliaujant šiuo laukeliu, jos programinė įranga patikrina pateiktą parašą, lygindama jį su gamintojo viešuoju raktu. Jei parašo patikrinimas pavyksta, įskaitant ir papildomą laukelį, įmonė žino: šios instrukcijos yra tiksliai tokios pačios, kokias pateikė gamintojas, ir niekas jų nekeičė. Jei patikrinimas nepavyksta, jis visą vaizdą atideda į šalį. Tai, kad jis gautų būtent tuos laukelius, kurie jam priklauso, lieka mūsų prieigos kontrolės užduotis. Naujas yra kitas žingsnis: ar gauta informacija yra autentiška, jis patikrina pats, mūsų neklausdamas.

Kodėl „nesulaužytas“ yra esmė

Nesulaužytas antspaudas nereiškia, kad turinys yra teisingas. Ji reiškia: būtent tai parašė gamintojas, ir nuo to laiko niekas nekeičia nė vieno ženklo. Taigi iš pasitikėjimo klausimo iškrenta kiekvienas, kuris tik perdavė dokumentą toliau: tarpinė saugykla, tinklas, archyvas, mes.

Kas jums davė pasą, jau nebeturi reikšmės.

O plomba yra dvejopa. Ji arba laikosi, arba ne - pusiau sulaužytos plombos nėra. Todėl nėra laipsniško skirtumo, ar papildomi laukeliai su plomba pasiekia jus, ar be jos: be plombos jie nėra šiek tiek silpniau užpildyti - jie visai nėra užpildyti.

Abu peržiūros būdai

Tai gali patikrinti kiekvienas pats. Transpareo Time Machine Tai mūsų atviro kodo gaminio pasų peržiūros programa: ji naršo po gaminio paso versijų istoriją ir tuo pačiu perskaičiuoja kiekvieną parašą žiūrovo naršyklėje, nesikreipdama į mūsų serverį. Marškinėlių paso parašas apima visą dokumentą, o baterijos paso - kiekvieną laukelį atskirai.

Abu yra atviri W3C standartai, kuriuos gali įgyvendinti bet kas. Visą dokumentą apimantis parašas yra žymiai pigesnis sukurti ir prižiūrėti, o tiems, kurie teikia tik viešus duomenis, to pakanka. Tai, kad „ Transpareo Time Machine “ palaiko abu metodus, yra sąmoningas sprendimas: pasas išlieka įprasto standartinio formato, kurį gali patikrinti bet kuri tinkama priemonė, ne tik mūsų.

Kam tai naudinga ir ko reikalauja standartas

Kam iš viso atskleidžiama informacija, nesusijusi su viešaisiais duomenimis? Ne atsitiktinei pirkėjai. Tai - perdirbėjas, kuris vertina, kiek vertas naudotas baterijų rinkinys, draudikas, kuris apskaičiuoja rizikos kainą, perdirbėjas, kuris rūšiuoja chemines medžiagas, valdžios institucija, kuri nagrinėja bylą. Skaitytojai, kurių sprendimai susiję su pinigais ar saugumu. O įprastu požiūriu būtent tie skaitytojai, kurių sprendimai grindžiami laukeliais, dėl kurių jie negauna sertifikato. Manome, kad sertifikatas turėtų visiems reikšti tą patį: kiekvienas rodomas laukelis yra gamintojo ir nuo to laiko nebuvo keistas. Sertifikatas, kuris galioja tik viešiesiems laukeliams, yra tik pusė sertifikato.

Sakome atvirai: nė viena iš šių nuostatų nėra privaloma. Standartas EN 18239 reikalauja, kad prieiga būtų kontroliuojama, o serverio filtras tai atlieka nepriekaištingai. Kad atskleistus laukelius būtų galima patikrinti, mes tai darome papildomai, nes pasirašyto paso esmė yra ta, kad niekas neturi pasitikėti platforma. Išimtis, taikoma viduriniam lygiui, sugrąžina būtent tą pasitikėjimą, kurį parašas turėjo panaikinti.

Tas pats principas leidžia pamiršti laukelį

Atsižvelgimas į kiekvieną laukelį atskirai suteikia antrą savybę, o jos iš tikrųjų reikalauja Europos teisė. Bendrasis duomenų apsaugos reglamentas suteikia žmonėms teisę reikalauti, kad asmens duomenys būtų ištrinti. Duomenų rinkinys, pasirašytas kaip vienas blokas, negali to padaryti nesunaikindamas savo paties parašo.

Kadangi čia kiekvienas laukas yra atskiras, galima pašalinti vieną lauką, o visa kita ir toliau lieka patikrinama. Jei asmens duomenys netyčia patenka į pasą, jie gali būti tvarkingai pašalinti, o pasas lieka galiojantis: nereikia išduoti naujo paso, istorija lieka nepertraukta. Laukeliai, kuriuos pagal įstatymą privaloma saugoti, lieka nepaliesti; tai, kas gali būti ištrinta, gali būti ištrinta pagal prašymą net praėjus keleriems metams.

Kodėl tai sudėtinga ir kaip mes tai išsprendėme

Mes nesukūrėme šio metodo - tai viešasis W3C standartas. Sudėtinga ne sugalvoti idėją. Sudėtinga ją įgyvendinti taip, kad pasas veiktų dar po dešimties metų. Įprastas parašas skaičiuojamas pagal dokumento baitus. Laukelių parašas skaičiuojamas pagal atskirus įrašus, todėl prieš pasirašant pasas paverčiamas į fiksuotą formą, kurioje kiekvienas įrašas pateikiamas kaip atskiras sakinys. Ši forma po dešimties metų turi būti atkurta simbolis po simbolio, kitaip antspaudas nebetiks. Tam trukdo trys nepastebimi dalykai, ir mes visus tris pašalinome iš šaknų.

Skaičiai praranda savo tipą. Tokia reikšmė kaip 2,0, praėjusi per įprastą duomenų formatą, grįžta kaip 2. Žmogui tai tas pats, o fiksuotam rašymo būdui - kitoks teiginys. Pas mus kiekviena reikšmė saugoma su savo tipu, o skelbimas nutraukiamas, vos tik pasirodo bent vienas skaičius be tipo.

Pavadinimai dar nereiškia prasmės. Kiekvienas lauko pavadinimas turi būti susietas su aiškia reikšme žodyne, kitaip laukas konvertavimo metu tyliai išnyks, o antspaudas jo nepadengs. Pas mus kiekvienas žodynas yra saugomas lokaliai ir niekada neatsisiunčiamas iš tinklo; nežinomas lauko pavadinimas sustabdo pasirašymą, o ne tyliai pateikia tuščią rezultatą.

Įrašams reikalingi fiksuoti pavadinimai. Kiekvienas įrašas mūsų sistemoje turi fiksuotą identifikatorių, kad rašyba kiekvieno apdorojimo metu išliktų ta pati, o ne kiekvieną kartą būtų priskiriami nauji pagalbiniai pavadinimai.

Sudėtingiausia dalis susijusi su paties gamintojo raktu. Kiekvienam išdavimui reikalingas papildomas, trumpalaikis raktas, kuriuo atskirai pasirašomi atskleidžiami laukai. Šį raktą pats gamintojas sukuria ir sunaikina. Jei jis būtų pas mus, galėtume vėliau išgalvoti atskirus laukus. Kiekviename pase yra du tokie antspaudai: vienas - gamintojo, kitas - „Transpareo“, net ir atskirai atskleidžiamam laukeliui.

Mūsų nuomone, šios pastangos yra pagrįstos. Naudojant „ Transpareo Proofchain “, kiekvienas leidimas pasirašomas jo paskelbimo metu ir susiejamas su ankstesne versija, o „ Transpareo Vault “ - nepakeičiamas dešimties metų archyvas - įsigalioja, kai tik leidimai įregistruojami ES registruose. Kiekvieno lauko, o ne viso bloko, pasirašymas yra šio pagrindinio mechanizmo išplėtimas, o ne papildymas.

Kur esame

Mespasirinkome įrodymą, skirtą kiekvienam skaitytojui, nes antspaudas turėtų reikšti tą patį, nesvarbu, kas jį mato. Kas nori pamatyti, kaip tai veikia: abu aukščiau pateikti pavyzdiniai leidimai patikrinami tiesiogiai naršyklėje, nekreipiantis į serverį.

Klausimai apie šį įrašą

Ar kokia nors norma nustato, kad parašas turi būti pateiktas kiekviename laukelyje?

Ne. EN 18239 - Europos standartas, reglamentuojantis prieigos teises DPP sistemoje - reikalauja, kad prieiga būtų valdoma atskirai kiekvienam laukui, o filtras serveryje šį reikalavimą visiškai atitinka. Tai, kad atskleidžiami laukai yra patikrinami, yra mūsų sprendimas, o ne reikalavimas, kurį nustato kokia nors reguliavimo institucija. Manome, kad šios pastangos yra pateisinamos, nes pasirašyto paso esmė yra ta, kad niekas neturi pasitikėti platforma. Koks iš tikrųjų yra šių standartų statusas, nurodyta mūsų straipsnyje apie suderintus standartus.

Mes skelbiame tik viešus duomenis. Ar mums to reikia?

Tikriausiai ne, ir mes tai atvirai sakome. Visą dokumentą apimantis parašas tinka pasui, kurio visi laukeliai yra vieši, be to, jį sukurti ir naudoti yra žymiai pigiau. Pasirašymas pagal atskirus laukelius tampa naudingas, kai atsiranda antra tikslinė grupė, pavyzdžiui, remonto tinklas, perdirbimo įmonė ar valdžios institucija, kuriai kitaip pateiktumėte išrašus be antspaudo. Abu metodai atitinka atvirus W3C standartus (ecdsa-sd-2023 - laukelių parašui), kiekviena šį standartą palaikanti priemonė gali juos patikrinti, ir abu šiuo metu veikia „Transpareo Time Machine“ sistemoje, marškinėlių pase ir baterijos pase.

Ar vėliau galima ištrinti asmens duomenis, neanuliuojant paso?

Taip, ir tai iš tiesų numatyta Europos Sąjungos teisės aktuose. Bendrasis duomenų apsaugos reglamentas suteikia asmenims teisę reikalauti, kad jų asmens duomenys būtų ištrinti, o kaip blokas pasirašytas duomenų įrašas negali to padaryti nesunaikindamas savo paties parašo. Kadangi čia kiekvienas laukas yra nustatytas atskirai, galima pašalinti vieną lauką, o visa kita ir toliau atitinka reikalavimus - be pakartotinio išdavimo ir be sutrikdytos versijų istorijos. Laukeliai, kuriuos pagal įstatymą privaloma saugoti, lieka nepakitę.

Kas saugo parašo raktą?

Kiekvienas pasas turi du antspaudus, ir vienas iš jų gali būti jūsų. Be to, kiekvienam išdavimui reikalingas trumpalaikis raktas, kuris atskirai pasirašo atskleidžiamus laukelius; jį sukuria ir sunaikina pats gamintojas, nes jei jis būtų pas mus, galėtume vėliau sugalvoti atskirus laukelius. Prieš patikėdami grąžintu antspaudu, jį patikriname pagal saugomą viešąjį raktą. Taigi kiekviename pase yra du nepriklausomų institucijų antspaudai - tiek atskirai atskleidžiamam laukeliui, tiek visam duomenų rinkiniui.

Ar pasas bus galiojantis po dešimties metų?

Būtent čia ir slypi sudėtingumas. Laukelių pagrindu sukurta signatūra skaičiuojama remiantis atskirais dokumento duomenimis, o ne jo baitais, todėl tas pats fiksuotas rašymo būdas po dešimtmečio turi būti atkurtas simbolis po simbolio. Trys dalykai tai trukdo, ir mes visus tris pašalinome iš šaknų. Kiekviena reikšmė saugoma kartu su jos tipu, kiekvienas žodynas yra pas mus ir niekada neatsisiunčiamas iš tinklo, o kiekvienas įrašas turi fiksuotą identifikatorių. Nepakeičiamas dešimties metų archyvas yra sukurtas ir pradeda veikti, kai tik pasai įregistruojami ES registre. Daugiau apie tai - mūsų Registro reglamento analizėje.

Atnaujinimai dėl prieigos lygių ir įrodymų

Selektyvus informacijos atskleidimas, parašai ir DPP standartų plėtra - kas mėnesį trumpai jūsų pašto dėžutėje.