Julkistaminen menettämättä allekirjoitusta

Julkistaminen menettämättä allekirjoitusta

Transpareo allekirjoittaa jokaisen tuotepassin kentän erikseen, jotta myös suojatut kentät ovat itsenäisesti tarkastettavissa. Lukijan ei tarvitse luottaa alustaan.

Digitaalinen tuotepassi ei näytä kaikille samoja tietoja. Ostaja näkee julkiset tiedot. Korjaamo tai kierrättäjä näkee enemmän. Markkinavalvontaviranomainen näkee kaiken. Tämä on selvitetty, ja eurooppalaisissa standardeissa se on nykyään nimenomaisesti määritelty.

Mielenkiintoisempi kysymys on hieman hienovaraisempi: jos joku pääsee näkemään julkisten tietojen lisäksi suojattuja kenttiä, voiko hän todistaa, että juuri nämä kentät ovat aitoja? Vai onko hänen luotettava siihen, että alusta on valinnut ne oikein ja välittänyt ne eteenpäin muuttamattomina?

Kuvitellaan notaaria, joka ei todista kirjettä kokonaisuudessaan, vaan jokaisen kappaleen erikseen. Julkisen kirjeen saa jokainen. Se, jolla on oikeus saada enemmän, saa lisäosat, ja jokaisessa niistä on edelleen saman notaarin sinetti. Näin olemme rakentaneet alustamme. Useimmilla alustoilla rehellinen vastaus yllä olevaan kysymykseen on: luottamus. Meillä vastaus on: todiste jokaisesta kentästä, joka lisätään vasta julkistamisen yhteydessä. Tässä artikkelissa selitetään, miksi tällä erolla on merkitystä ja miksi olemme valinneet tämän työläämmän tien.

Kaikki täyttävät pääsyoikeussäännön samalla tavalla

EN 18239, eurooppalainen standardi, joka koskee pääsyoikeuksia, turvallisuutta ja luottamuksellisuutta DPP:ssä, vaatii, että pääsyä hallitaan kenttäkohtaisesti: jokaiselle kentälle on sääntö siitä, kuka sen saa nähdä. Tämä on oikea vaatimus, eikä sitä ole vaikea täyttää. Olemme eritellyt näiden standardien aseman artikkelissamme yhdenmukaistetuista standardeista.

Tavallinen tapa toteuttaa tämä on suodatin palvelimella. Palvelin tietää, kuka kysyy, tarkistaa, mitä kyseinen henkilö saa nähdä, ja palauttaa juuri tämän osan. Standardi ei vaadi enempää. Lukijan on uskottava, että palvelin on valinnut tiedot rehellisesti eikä ole muuttanut niitä matkan varrella. Julkisen ohjeen osalta tämä riittää. Arvon osalta, johon kierrättäjä perustaa käytetyn pariston hinnan, se vaatii paljon luottamusta.

Tässä on yksi ongelma, jota standardi ei ota huomioon: otos saapuu ilman varmennetta.

Ilmeisin ratkaisu on allekirjoittaa tiedot. Asteikon molemmissa päissä tavallinen allekirjoitus toimii hyvin: julkisen näkymän allekirjoittaminen, koko tietojoukon allekirjoittaminen. Miten tämä tapahtuu yksityiskohtaisesti, on kuvattu DPP:n kohdassa Allekirjoitukset ja varmenteet. Keskellä järjestelmä pettää. Koko asiakirjan kattava allekirjoitus kattaa tarkalleen ne kentät, jotka olivat olemassa allekirjoitushetkellä. Jos valtuutetulle lukijalle avataan lisäksi suojattu kenttä, tämä kenttä jää allekirjoitetun joukon ulkopuolelle ja saapuu hänelle suojaamattomana. Kukaan ei allekirjoita etukäteen kaikkia mahdollisia ”kuka näkee mitä” -yhdistelmiä, sillä yhdistelmien määrä kasvaa räjähdysmäisesti. Palataan suodattimeen ilman sinettiä, ja keskitaso perustuu jälleen luottamukseen.

Jokaisen kentän allekirjoittaminen erikseen

On olemassa parempi rakenne, ja sen varaan rakennamme alustan. Sen sijaan, että valmis asiakirja allekirjoitettaisiin yhtenä kokonaisuutena, valmistaja määrittelee jokaisen kentän erikseen yhdellä kertaa (standardeihin perehtyneille: W3C:n menetelmä ecdsa-sd-2023).

Jokainen näkymä alkaa siis samoista julkisista kentistä. Se, mitä lukija näkee tämän lisäksi, lisätään kenttä kerrallaan, ja jokainen näistä kentistä johtaa edelleen valmistajan julkiseen avaimeen, offline-tilassa, ilman uutta allekirjoitusta ja ilman luottamusta näkymän kokoajaan. Kentät, joihin ei ole oikeutta, puuttuvat yksinkertaisesti. Niitä ei ole mustattu, vaan niitä ei ole lainkaan, eikä niistä vuoda mitään tietoa.

Yksi kierros: korjaamo

Korjaamo on ilmoittanut akusta oikeutetun edun, joka on yksi akkuasetuksessa nimenomaisesti mainituista käyttöoikeustasoista. Sen korjaamojärjestelmä kirjautuu avaimellaan rajapintaamme ja hakee passin. Vastauksena saadaan sama julkinen passi, jonka myös ostaja näkee, mutta siihen on lisätty yksi kenttä: purkuohjeet, jotka näytetään vain valtuutetuille lukijoille. Ei toista asiakirjaa, ei erikoisversiota.

Ennen kuin yritys luottaa tähän kenttään, sen ohjelmisto tarkistaa mukana toimitetun allekirjoituksen valmistajan julkisen avaimen avulla. Jos allekirjoituksen tarkistus onnistuu, myös lisäkentän osalta, yritys tietää: nämä ohjeet ovat merkki merkiltä peräisin valmistajalta, eikä kukaan niiden välissä ole muuttanut niitä millään tavalla. Jos tarkistus epäonnistuu, se hylkää näkymän kokonaan. Se, että se saa juuri ne kentät, joihin sillä on oikeus, on edelleen pääsynhallintamme tehtävä. Uutta on seuraava vaihe: se tarkistaa itse, onko saapuva tieto aitoa, kysymättä meiltä.

Miksi ”rikkomaton” on koko asian ydin

Ehjä sinetti ei tarkoita, että sisältö on totta. Se kertoo: juuri tämän valmistaja on kirjoittanut, eikä kukaan ole sen jälkeen muuttanut siitä mitään. Näin ollen kaikki, jotka ovat vain välittäneet asiakirjan eteenpäin - välimuisti, verkko, arkisto, me - jäävät luottamuskysymyksen ulkopuolelle.

Sillä, kuka on antanut teille passin, ei ole enää merkitystä.

Ja sinetti on binäärinen. Se joko pätee tai ei, puoliksi rikkoutunutta sinettiä ei ole olemassa. Siksi ei ole asteittaista eroa siinä, saavuttavatko lisäkentät sinetillä vai ilman: ilman sinettiä ne eivät ole hieman heikommin täytettyjä, vaan ne eivät ole lainkaan täytettyjä.

Molemmat menetelmät tarkasteltavina

Kuka tahansa voi tarkistaa tämän itse. Transpareo Time Machine on avoimen lähdekoodin sovelluksemme tuotepassien ## katseluun: se selaa passin versiohistoriaa ja laskee samalla jokaisen allekirjoituksen katsojan selaimessa kysymättä sitä meiltä palvelimelta. T-paidan passissa on koko asiakirjaa koskeva allekirjoitus, kun taas pariston passissa kenttäkohtainen vahvistus.

Molemmat ovat avoimia W3C-standardeja, ja kuka tahansa voi ottaa ne käyttöön. Koko asiakirjan kattava allekirjoitus on huomattavasti edullisempi toteuttaa ja ylläpitää, ja se riittää niille, jotka toimittavat vain julkisia tietoja. Se, että Transpareo Time Machine tukee molempia menetelmiä, on tarkoituksellista: Pass pysyy tavallisena vakiomuotona, jonka jokainen sopiva työkalu voi tarkistaa, ei vain meidän työkalumme.

Kenelle tästä on hyötyä ja mitä standardi vaatii

Kenelle julkisten tietojen lisäksi ylipäätään paljastetaan mitään? Ei satunnaiselle ostajalle. Ne ovat käsittelijä, joka arvioi käytetyn akkupaketin arvon, vakuuttaja, joka hinnoittelee riskin, kierrättäjä, joka lajittelee kemikaaleja, sekä viranomainen, joka rakentaa tapausta. Lukijat, joiden päätökset liittyvät rahaan tai turvallisuuteen. Ja tavanomaisessa lähestymistavassa juuri ne lukijat, jotka eivät saa sertifikaattia niille kentille, joihin heidän päätöksensä perustuu. Mielestämme sertifikaatin tulisi tarkoittaa samaa kaikille: jokainen näkyvä kenttä on peräisin valmistajalta eikä siihen ole sen jälkeen koskettu. Sertifikaatti, joka koskee vain julkisia kenttiä, on puolittaista.

Sanomme tämän suoraan: mitään näistä ei ole määrätty. EN 18239 -standardi vaatii, että pääsyä hallitaan, ja palvelimella oleva suodatin hoitaa tämän moitteettomasti. Teemme lisäksi julkistetuista kentistä tarkistettavia, koska allekirjoitetun passin koko tarkoitus on, ettei kenenkään tarvitse luottaa alustaan. Keskitason poistaminen poikkeuksena palauttaa juuri sen luottamuksen, jonka allekirjoituksen oli tarkoitus poistaa.

Sama periaate mahdollistaa kentän unohtamisen

Jokaisen ## kentänerikseen määritteleminen tuo mukanaan toisen ominaisuuden, ja tätä eurooppalainen lainsäädäntö itse asiassa vaatii. Yleinen tietosuoja-asetus antaa ihmisille oikeuden saada henkilötiedot poistettua. Yhtenä kokonaisuutena allekirjoitettu tietue ei voi täyttää tätä vaatimusta tuhoamatta omaa allekirjoitustaan.

Koska tässä jokainen kenttä on erillinen, yksittäinen kenttä voidaan poistaa, kun taas kaikki muu pysyy edelleen voimassa. Jos henkilötietoja päätyy vahingossa passiin, ne voidaan poistaa siististi, ja passi pysyy voimassa: ei uutta passia, ei katkenneita tietoja. Kentät, joiden säilyttämistä laki vaatii, jäävät paikoilleen; se, mikä on poistettavissa, voidaan poistaa pyynnöstä, jopa vuosia myöhemmin.

Miksi tämä on vaikeaa ja miten olemme ratkaisseet sen

Emme ole keksineet menetelmää itse, vaan se on julkinen W3C-standardi. Vaikeaa ei ole idean keksiminen. Vaikeaa on rakentaa se niin, että passi toimii vielä kymmenen vuoden kuluttua. Tavallinen allekirjoitus lasketaan asiakirjan tavujen perusteella. Kenttäkohtainen allekirjoitus lasketaan sen yksittäisten tietojen perusteella, ja tätä varten passi muokataan ennen allekirjoittamista kiinteään muotoon, jossa jokainen tieto esiintyy omana lauseenaan. Tämän muodon on palaututtava merkki merkiltä kymmenen vuoden kuluttua, muuten mikään varmenne ei enää kelpaa. Kolme huomaamatonta seikkaa estävät tämän, ja olemme ratkaisseet ne kaikki juuresta.

Luvut menettävät tyyppinsä. Arvo kuten 2,0 palautuu tavallisen dataformaatin läpi kulkemisen jälkeen muodossa 2. Ihmiselle se on sama asia, mutta kiinteälle kirjoitusmuodolle se on eri lause. Meillä jokainen arvo tallennetaan tyyppinsä kanssa, ja julkaisu keskeytyy heti, kun edes yksi tyypitön luku ilmestyy.

Nimet eivät vielä tarkoita mitään. Jokaisen kentän nimen on viitattava yksiselitteiseen merkitykseen sanakirjassa, muuten kenttä katoaa muunnoksen yhteydessä huomaamatta eikä sinetti kata sitä. Meillä jokainen sanakirja on paikallisesti saatavilla eikä sitä koskaan haeta verkosta; tuntematon kentänimi keskeyttää allekirjoittamisen sen sijaan, että se toimittaisi hiljaisesti tyhjän tuloksen.

Tietueet tarvitsevat kiinteät nimet. Jokaisella asiakirjan tietueella on järjestelmässämme kiinteä tunniste, jotta kirjoitusmuoto pysyy samana jokaisella kierroksella sen sijaan, että joka kerta annettaisiin uusia apunimiä.

Herkin osa liittyy valmistajan omaan avaimeen. Jokaista myöntämistä varten tarvitaan ylimääräinen, lyhytaikainen avain, jolla julkistettavat kentät allekirjoitetaan yksitellen. Valmistaja luo ja hävittää tämän avaimen itse. Jos se olisi meillä, voisimme keksiä yksittäisiä kenttiä jälkikäteen. Jokaisessa passissa on kaksi tällaista sinettiä, yksi valmistajalta ja yksi Transpareolta, myös yksittäisesti julkistettujen kenttien osalta.

Meidän mielestämme tämä vaiva on perusteltua. Transpareo Proofchain -palvelun avulla jokainen passi allekirjoitetaan julkaisun yhteydessä ja liitetään edelliseen versioon, ja Transpareo Vault - muuttumaton kymmenen vuoden arkisto - astuu voimaan heti, kun passit on rekisteröity EU-rekisteriin. Jokaisen kentän allekirjoittaminen koko lohkon sijaan on tämän ytimen laajennus, ei lisäosa.

Missä olemme

Olemme päättäneet käyttää todistetta jokaisen lukijan hyväksi, koska sinetin tulisi tarkoittaa yhtä ja samaa asiaa riippumatta siitä, kuka sitä tarkastelee. Jos haluat nähdä, miten se toimii: molemmat yllä linkitetyt esimerkkipassit voidaan tarkistaa suoraan selaimessa ilman palvelinkyselyä.

Kysymyksiä tästä artikkelista

Määrääkö jokin standardi kenttäkohtaisen allekirjoituksen?

Ei. EN 18239, DPP:n käyttöoikeuksia koskeva eurooppalainen standardi, edellyttää, että pääsyä hallitaan kenttäkohtaisesti, ja palvelimella toimiva suodatin täyttää tämän vaatimuksen täysin. Se, että julkistetut kentät ovat lisäksi tarkastettavissa, on meidän päätöksemme, eikä mikään sääntelyn vaatima rasti. Pidämme tätä vaivaa perusteltuna, koska allekirjoitetun passin koko tarkoitus on se, ettei kenenkään tarvitse luottaa alustaan. Näiden standardien asemasta on lisätietoja artikkelissamme yhdenmukaistetuista standardeista.

Julkaisemme vain julkisia tietoja. Tarvitsemmeko sitä?

Luultavasti ei, ja sanomme sen myös suoraan. Koko asiakirjan kattava allekirjoitus riittää passille, jonka kaikki kentät ovat julkisia, ja sen toteuttaminen ja ylläpito on huomattavasti edullisempaa. Kenttäkohtainen varmentaminen kannattaa heti, kun mukaan tulee toinen kohderyhmä, kuten korjausverkosto, kierrätysyritys tai viranomainen, jolle muuten luovuttaisit otteita ilman sinettiä. Molemmat menetelmät ovat avoimia W3C-standardeja (ecdsa-sd-2023 kenttäkohtaiselle allekirjoitukselle), jokainen standardia tukeva työkalu voi tarkistaa ne, ja molemmat toimivat nykyään Transpareo Time Machinessa, T-paidan passissa ja pariston passissa.

Voidaanko henkilötiedot poistaa myöhemmin ilman, että passi mitätöidään?

Kyllä, ja tämä osa on itse asiassa Euroopan lainsäädännön vaatimus. Yleinen tietosuoja-asetus antaa ihmisille oikeuden saada henkilötiedot poistettua, eikä lohkona allekirjoitettua tietuetta voida poistaa ilman, että sen oma allekirjoitus tuhoutuu. Koska tässä jokainen kenttä on määritelty erikseen, yksittäinen kenttä voidaan poistaa, kun taas kaikki muu pysyy edelleen voimassa ilman uudelleenkirjoittamista ja ilman, että versiohistoria katkeaa. Kentät, joiden säilyttämistä laki vaatii, jäävät paikoilleen.

Kuka hallitsee allekirjoitusavainta?

Jokaisessa passissa on kaksi sinettiä, ja toinen niistä voi olla sinun. Jokainen myöntäminen vaatii lisäksi lyhytaikaisen avaimen, joka allekirjoittaa julkistettavat kentät yksitellen; valmistaja itse luo ja hävittää tämän avaimen, sillä jos se olisi meillä, voisimme keksiä yksittäisiä kenttiä jälkikäteen. Tarkistamme palautetun sinetin tallennetun julkisen avaimen avulla ennen kuin luotamme siihen. Jokaisessa passissa on siis kahden riippumattoman tahon sinetit, jotka koskevat sekä yksittäistä julkistettavaa kenttää että koko tietojoukkoa.

Onko passi vielä voimassa kymmenen vuoden kuluttua?

Juuri siinä piilee työmäärä. Kenttäkohtainen allekirjoitus perustuu asiakirjan yksittäisiin tietoihin sen tavujen sijaan, joten sama kiinteä kirjoitusmuoto on toistettava merkki merkiltä kymmenen vuotta myöhemmin. Kolme seikkaa rikkoo tämän järjestelmän, ja olemme ratkaisseet ne kaikki juuresta lähtien. Jokainen arvo tallennetaan tyyppinsä mukana, jokainen sanakirja sijaitsee palvelimillamme eikä sitä koskaan haeta verkosta, ja jokaisella merkinnällä on kiinteä tunniste. Muuttumaton kymmenen vuoden arkisto on luotu ja se astuu voimaan heti, kun passit on rekisteröity EU-rekisteriin. Lisätietoja tästä löytyy rekisteriasetusta koskevasta analyysistämme.

Päivitykset käyttöoikeustasoista ja todisteista

Valikoiva tiedonanto, allekirjoitukset ja DPP-standardien kehitys - tiivistettynä kuukausittain sähköpostilaatikkoosi.