Откријте, а да не изгубите потпис

Откријте, а да не изгубите потпис

Свако коме су заштићена поља изложена обично мора да верује платформи. Ми потписујемо свако поље појединачно како би се могла независно проверити.

Дигитални пасош производа не приказује исте информације свима. Купац види јавне податке. Сервис или обнављач види више. Тело за надзор тржишта види све. Ово је разјашњено, а европски стандарди сада то експлицитно прописују.

Занимљивије је, међутим, тихо питање: ако некоме буде омогућен приступ заштићеним пољима изван јавних података, може ли проверити да ли су та поља аутентична? Или мора да верује да их је платформа исправно изабрала и пренела непромењене?

Замислите нотара који не оверава писмо у целини, већ оверава сваки пасус појединачно. Сви добијају јавно писмо. Свако ко има право на више добија додатне пасусе, и сваки од њих и даље носи печат истог нотара. Тако смо изградили нашу платформу. За већину платформи, искрен одговор на горе постављено питање је: поверење. За нас је то: доказ, за свако поље које се додаје тек у тренутку откривања. Овај чланак објашњава зашто је ова разлика важна и зашто смо изабрали захтевнији приступ.

Сви се на исти начин придржавају правила о приступу

EN 18239, европски стандард за права приступа, безбедност и поверљивост у ДПО, захтева да се приступ контролише поље по поље: за свако поље постоји правило које регулише коме је дозвољено да га види. Ово је исправан захтев и није тешко испунити га. Описали смо статус ових стандарда у нашем чланку о усаглашеним стандардима.

Уобичајен начин да се то постигне јесте путем филтера на серверу. Сервер зна ко упућује захтев, проверава шта та особа сме да види и враћа управо тај део. Стандард не захтева ништа више. Читалац мора да верује да је сервер поштено изабрао садржај и да ништа није променио у транзиту. За јавни информативни лист, то је прихватљиво. Али када је у питању вредност на основу које рецикламер одређује цену половне батерије, то је много тога што се мора прихватити на веру.

Постоји један проблем који стандард не решава: извод стиже без печата.

Очигледно решење је да се подаци потпишу. За два краја спектра, стандардни потпис добро функционише: потписати јавни приказ; потписати комплетан скуп података. Како то у детаљима функционише објашњено је у одељку “ Потписи и сертификати” у DPP. То не функционише у средини. Потпис који покрива цео документ обухвата прецизно она поља која су била присутна у тренутку потписивања. Ако се заштићено поље додатно открије овлашћеном читаоцу, то поље лежи ван потписаног сета и стиже до њега непотписано. Нико унапред не потписује све могуће комбинације “ко шта види”; број комбинација расте експоненцијално. У том случају се користи филтер без печата, а средњи ниво поново се ослања на поверење.

Појединачно потписивање сваког поља

Постоји боље решење, и управо на њему градимо платформу. Уместо да се готови документ потписује као један блок, креатор наводи свако поље појединачно у једном пролазу (за оне упознате са стандардима: W3C процедура ecdsa-sd-2023).

Сваки приказ стога почиње са истим јавним пољима. Све остало што читач види додаје се поље по поље, и свако од тих поља и даље води порекло од јавног кључа произвођача, ван мреже, без потребе за поновним потписивањем и без ослањања на ентитет који је саставио приказ. Поља без тврдње једноставно недостају. Нису цензурисана, већ их уопште нема, и ништа о њима не процури.

Једна примена: сервис

Сервис је пријавио легитимни интерес за батерију, један од нивоа приступа који је изричито предвиђен Уредбом о батеријама. Његов систем радионице се пријављује на наш интерфејс користећи свој кључ и преузима пропусницу. Одговор је иста јавна пропусница коју види купац, са тачно једним додатним пољем: упутствима за демонтажу, која се откривају само овлашћеним читаоцима. Без другог документа, без посебне верзије.

Пре него што радионица користи ово поље, њен софтвер проверава достављени печат јавним кључем произвођача. Ако је верификација успешна - укључујући и додатно поље - софтвер зна да ове инструкције потичу директно од произвођача, знак по знак, и да их нико успут није мењао. Ако провера не успе, систем занемарује цео приказ. Задатак нашег система за контролу приступа и даље је да обезбеди да систем добије управо она поља на која има право. Ново је оно што следи: сам проверава да ли је оно што је добио аутентично, без да нас пита.

Зашто је “неповређеност” цела поента

Неповређени печат не значи да је садржај истинит. То значи: ово је тачно оно што је творац написао и нико није променио ниједан знак од тада. То значи да је свако ко је само проследио документ искључен из питања поверења: кеш, мрежа, архива, ми.

Више није важно ко вам је дао пасош.

Печат је бинаран. Он је или неоштећен или није; не постоји полуоштећен печат. Зато није ствар степена да ли додатна поља долазе са печатом или без њега: без печата, они нису само мало мање важећи - они уопште нису важећи.

Оба начина за преглед

Свако може сам да провери ово. Transpareo Time Machine је наша апликација отвореног кода за преглед пасоша производа: она листа историју верзија пасоша и поново израчунава сваки потпис у прегледачу корисника без упитивања било ког од наших сервера. Пасош мајице садржи потпис који покрива цео документ, док пасош батерије користи валидацију поља по поље.

Оба су отворени W3C стандарди; свако их може имплементирати. Потпис који обухвата цео документ је знатно јефтинији за израду и рад, и свако ко пружа само јавне податке може да се задовољи њиме. Чињеница да Time Machine подржава оба метода је намерна: пасош остаје стандардни формат који може да провери било који одговарајући алат, а не само наш.

Ко има користи од овога и шта захтева стандард?

Коме се, осим онима који приступају јавним подацима, заправо достављају било какве додатне информације? Не обичном купцу. То је процесор који процењује вредност коришћеног батеријског пакета, осигуравач који одређује цену ризика, рециклажа који сортира хемикалије и орган власти који саставља досије. Читаоци чије одлуке зависе од новца или безбедности. И, према уобичајеном приступу, управо ти читаоци не добијају печат за поља на којима се заснивају њихове одлуке. Верујемо да квалитетан печат треба да значи исто за све: да свако приказано поље потиче од произвођача и да није било неовлашћених измена од тада. Печат који се односи само на јавна поља је само пола печата.

Да будемо јасни: ништа од овога није обавезно. EN 18239 захтева контролу приступа, а филтер на серверу то савршено омогућава. Ми идемо корак даље како бисмо учинили откривена поља проверљивим, јер је цела поента потписаног пасоша у томе што нико не мора да верује платформи. Изузимање средњег слоја управо враћа поверење које је потпис требало да елиминише.

Исти принцип омогућава да се поље изостави

Појединачно навођење сваког поља са собом доноси другу карактеристику, а то је у ствари захтев европског законодавства. Општа уредба о заштити података даје људима право да затраже брисање својих личних података. Запис података потписан као један блок не може да испуни овај захтев без уништавања сопственог потписа.

Пошто овде свако поље стоји само за себе, једно поље може бити уклоњено док све остало остаје важеће. Ако лични подаци случајно заврше у пасошу, могу се чистим путем уклонити, а пасош остаје важећи: нема потребе за издавањем новог, нити за нарушавање његове историје. Поља која закон налаже да се сачувају остају на месту; све што се може обрисати може се обрисати на захтев, чак и после година.

Зашто је ово тешко и како смо то решили

Нисмо измислили овај процес; то је јавни W3C стандард. Тежак део није доћи до идеје. Тежак део је изградити га на такав начин да пасош и даље буде важећи за десет година. Стандардни потпис се израчунава на основу бајтова документа. Потпис по пољима се израчунава на основу појединачних детаља, а да би се то постигло, пасош се пре потписивања претвара у фиксни формат, у којем сваки детаљ представља засебну реченицу. Овај формат мора бити репродукован карактер по карактер за десет година; у супротном, ниједан печат неће одговарати. Три наизглед безначајна фактора стоје на путу томе, и ми смо се позабавили свим трима у корену.

Бројеви губе свој тип. Вредност као што је 2.0 враћа се као 2 након проласка кроз стандардни формат података. За човека је то исто; за фиксну нотацију то је различита вредност. У нашем систему свака вредност се чува са својим типом, а процес објављивања се прекида чим се појави иједан број без типа.

Ознаке још не представљају значење. Сваки назив поља мора да се повеже са јединственим значењем у речнику; у супротном, поље тихо нестаје током конверзије и печат га не покрива. Код нас се сваки речник чува локално и никада се не дозива преко мреже; непознат назив поља зауставља процес потписивања, уместо да тихо враћа празан резултат.

Елементи захтевају фиксне називе. Сваки елемент у документу има фиксни идентификатор у нашем систему, тако да нотација остаје иста при сваком покретању, уместо да се сваки пут додељују нови помоћни називи.

Најзахтевнији део лежи у самом кључу произвођача. За свако издање потребан је додатни, краткотрајни кључ, помоћу којег се појединачно потписују поља која се могу открити. Произвођач сам генерише и одбацује овај кључ. Да га ми поседујемо, могли бисмо накнадно да измишљамо појединачна поља. Сваки пасош носи два таква печата: један од произвођача и један од Transpareo-а, чак и за једно поље које се открива.

За нас се овај напор у потпуности исплати. Сваки пасош се потписује приликом објављивања и ланачно повезује са претходном верзијом, а непроменљива десетогодишња архива ступа на снагу чим се пасоши региструју у регистру EU DPP. Потписивање сваког поља, а не целог блока, представља проширење овог основног принципа, а не додатак.

Наш став

Одабрали смо доказ за сваког читаоца, јер печат треба да значи једно те исто, без обзира на то ко га гледа. За оне који желе да га виде у акцији: два примера пасова наведена изнад могу се проверити директно у прегледачу, без упитивања сервера.

Питања о овој објави

Да ли стандард прописује потпис поље по поље?

Не. EN 18239, европски стандард за права приступа у DPP-у, захтева да се приступ контролише поље по поље, а филтер на серверу у потпуности испуњава овај захтев. То што учињена поља чинимо проверљивим изван тога је наша одлука, а не обавеза коју нам налаже било који регулатор. Сматрамо да је тај напор оправдан јер је цела поента потписане пропуснице у томе да нико не мора да верује платформи. Статус ових стандарда је наведен у нашем чланку о усаглашеним стандардима.

Објављујемо само јавне податке. Да ли морамо то да радимо?

Вероватно не, и ми смо по том питању сасвим отворени. Потпис који покрива цео документ обухвата пасош, чија су сва поља јавна, и знатно је јефтинији за успостављање и коришћење. Потписивање поље по поље постаје исплативо чим се укључи друга циљна група, као што је мрежа за поправке, рециклажа или јавна власт којој бисте иначе достављали изводе без печата. Оба метода су отворени W3C стандарди (ecdsa-sd-2023 за потписивање поље по поље); сваки алат који подржава стандард може да их провери, и оба тренутно раде у Transpareo Time Machine, на “пасошу” мајице и на “пасошу” батерије.

Могу ли лични подаци бити избрисани касније без поништавања пасоша?

Да, и овај аспект је заправо прописан европским правом. Општа уредба о заштити података о личном карактеру даје људима право да затраже брисање својих личних података, а запис података који је потписан као блок не може испунити овај захтев без уништавања сопственог потписа. Пошто су поља овде дефинисана одвојено, једно поље може бити уклоњено док сва остала остају важећа, без потребе за поновном издавањем записа и без нарушавања историје верзија. Поља која закон захтева да се сачувају остају на месту.

Ко држи кључ за потпис?

Свака пропусница има два печата, и један од њих може бити ваш. Сваки издатак такође захтева кратковековни кључ који појединачно потписује поља која се могу открити; произвођач сам генерише и одбацује овај кључ, јер да га ми чуvamo, могли бисмо накнадно измишљати појединачна поља. Проверујемо враћен печат у односу на сачувани јавни кључ пре него што му поверимо. Тако сваки пасош носи два печата од два независна тела, један за поље откривено појединачно и један за цео скуп података.

Да ли ће пасош и даље бити важећи за десет година?

Управо ту лежи напор. Потпис по пољу се израчунава на основу појединачних детаља документа, а не његових бајтова; стога иста фиксна репрезентација мора бити репродукована карактер по карактер деценију касније. Три ствари то поткопавају, и све смо их угушили у зародишу. Свака вредност се чува са својим типом, сваки речник је смештен на нашим серверима и никада се не преузима преко интернета, а сваки унос има фиксни идентификатор. Непроменљива десетогодишња архива је сада успостављена и ступиће на снагу чим пасоши буду регистровани у регистру ЕУ. Прочитајте више о томе у нашој анализи Уредбе о регистру.

Ажурирања о нивоима приступа и доказима

Селективно откривање, потписи и развој DPP стандарда - месечни преглед директно у ваш инбокс.