Дигиталниот пасош на производот не ги прикажува истите информации на сите. Купувачот ги гледа јавните податоци. Сервисната работилница или обновувачот гледа повеќе. Телото за пазарна надзор гледа сè. Ова е разјаснето и европските стандарди сега експлицитно го пропишуваат.
Поинтересното прашање е потивко: ако некому му е овозможен пристап до заштитени полиња надвор од јавните податоци, може ли тој да провери дека овие конкретни полиња се автентични? Или мора да верува дека платформата ги избрала правилно и ги пренела непроменети?
Замислете нотар кој не го заверува писмото во целина, туку секој параграф поединечно. Секој ја добива јавната верзија на писмото. Секој што има право на повеќе ги добива и дополнителните параграфи, и секој од нив продолжува да го носи печатот на истиот нотар. Така ја изградивме нашата платформа. За повеќето платформи, искрениот одговор на горенаведеното прашање е: доверба. За нас, тоа е: доказ, за секое поле кое се додава само во моментот на откривање. Оваа статија објаснува зошто оваа разлика е важна и зошто го избравме помакотрпниот пристап.
Сите го почитуваат правилото за пристап на ист начин
EN 18239, европскиот стандард за права на пристап, безбедност и доверливост во DPP, бара пристапот да се контролира поле по поле: за секое поле постои правило кое регулира кој е дозволен да го гледа. Ова е точното барање и не е тешко да се исполни. Ние го опишавме статусот на овие стандарди во нашата статија за усогласени стандарди.
Вообичаен начин да се постигне ова е преку филтер на серверот. Серверот знае кој го прави барањето, проверува што таа личност е овластена да види и го враќа токму тој дел. Стандардот не бара ништо повеќе од ова. Сепак, постои еден проблем што стандардот не го адресира: делот се испорачува без печат. Читателот мора да верува дека серверот ја избрал содржината чесно и дека не променил ништо по пат. За јавна информативна брошура, тоа е во ред. Но, за вредност врз која рециклирачот ја заснова цената на користена батерија, потребно е големо доверување.
Очигледното решение е да се потпишат податоците. За двата краја на спектарот, стандардниот потпис функционира добро: потпишете го јавниот приказ, потпишете го комплетниот сет на податоци. Како ова функционира во детали е објаснето во Доверба што трае подолго од производот: потписи и сертификати во DPP” во DPP. Проблемите се појавуваат во средината. Потписот што го покрива целиот документ ги опфаќа токму оние полиња што биле присутни во моментот на потпишувањето. Ако заштитено поле дополнително му се открие на овластен читател, тоа поле лежи надвор од потпишаниот сет и до читателот стигнува непокриено. Никој однапред не потпишува секоја можна комбинација “кој-што-види”; бројот на комбинации станува астрономски. Се прибегнува кон филтерот без печат, а средното ниво повторно се заснова на доверба.
Потпишување на секое поле поединечно
Постои подобар дизајн, и тоа е оној на кој ја градиме платформата. Наместо да го потпишува готовиот документ како еден блок, креаторот го специфицира секое поле поединечно во еден чекор (за оние што се запознаени со стандардите: W3C процедурата ecdsa-sd-2023).
Секој приказ затоа започнува со истите јавни полиња. Сè што читачот ќе види понатаму се додава поле по поле, и секое од овие полиња продолжува да се поврзува со јавниот клуч на производителот, офлајн, без потреба од повторно потпишување и без да се потпира на субјектот што го составил приказот. Полетата без тврдење едноставно недостасуваат. Не се зацрнети, туку воопшто ги нема, и ништо за нив не се пробива.
Еден пример: сервисот
Сервис има декларирано легитимен интерес за батерија, едно од нивоата на пристап изрично предвидени со Регулативата за батерии. Неговиот работен систем се најавува на нашиот интерфејс со својот клуч и го презема пасот. Одговорот е истиот јавен пас што го гледа и купувачот, со точно едно дополнително поле: упатствата за расклопување, кои се откриени само на овластените читатели. Без втор документ, без посебна верзија.
Пред да се потпре работилницата на ова поле, нејзиниот софтвер го проверува доставениот печат со јавниот клуч на производителот. Ако проверката успее - вклучително и за дополнителното поле - таа знае: овие упатства потекнуваат точно од производителот, знак по знак, и никој по патот не ги изменил. Ако проверката не успее, целиот приказ се отфрла. Останува задача на нашиот систем за контрола на пристап да обезбеди дека ќе ги добие токму оние полиња на кои има право. Она што е ново е чекорот што следува: тој сам проверува дали она што го добива е автентично, без да нè прашува.
Зошто “непрекинатоста” е целата поента
Неповреден печат не значи дека содржината е вистинита. Тоа значи: ова е точно она што го напишал издавачот и оттогаш никој не го променил ниту еден знак. Со ова се отстрануваат од синџирот на доверба сите што само го пренеле документот: кеш-меморијата, мрежата, архивата, нас. Веќе не е важно кој ви го издал пасошот.
А печатот е бинарен. Или е нетакнат или не е; не постои нешто како полурасипан печат. Затоа не е прашање на степен дали дополнителните полиња пристигнуваат со или без својот печат: без печат, тие не се само малку помалку валидни - тие воопшто не се валидни.
Двата методи за прегледување
Секој може да го провери ова сам. Transpareo Time Machine е нашата апликација со отворен код за прегледување на пасоши за производи: таа листа низ историјата на верзиите на пасошот додека ги пресметува повторно сите потписи во прелистувачот на корисникот, без да бара податоци од некој од нашите сервери. Пасошот на маица содржи потпис што го покрива целиот документ, додека пасошот на батерија користи валидација поле по поле.
Двата се отворени W3C стандарди; секој може да ги имплементира. Потписот што важи за целиот документ е значително поевтин за изработка и работа, и секој што обезбедува само јавни податоци може да се справи со ова. Фактот што “Временската машина” ги поддржува и двете методи е намерно: пасошот останува стандарден формат што може да го провери секој соодветен алат, а не само нашиот.
Кој има корист од ова и што бара стандардот?
Кој, освен оние што пристапуваат до јавни податоци, всушност добива какви било дополнителни информации? Не обичниот купувач. Тоа е процесорот кој ја проценува вредноста на искористениот батериски пакет, осигурителот кој ја проценува ризикот, рециклирачот кој ги сортира хемикалиите и надлежниот орган кој подготвува досие. Читатели чии одлуки зависат од пари или безбедност. И, според вообичаениот пристап, токму овие читатели не добиваат печат за полињата врз кои се темелат нивните одлуки. Веруваме дека квалитетен печат треба да значи исто за сите: секое прикажано поле потекнува од производителот и не е менувано оттогаш. Печат што се однесува само на јавните полиња е само половина од печат.
Да бидеме јасни: ништо од ова не е задолжително. EN 18239 бара контрола на пристапот, а филтерот на серверот тоа го прави совршено добро. Ние правиме дополнителен напор за да ги направиме објавените полиња проверливи, бидејќи целата поента на потпишаниот пасош е тоа што никој не мора да ѝ верува на платформата. Исклучувањето на средниот слој го враќа токму она доверба што потписот требаше да ја елиминира.
Истиот принцип овозможува поле да се изостави
Дефинирањето на секое поле поединечно воведува втора карактеристика, а ова всушност е и задолжително според европското законодавство. Општата уредба за заштита на податоците им дава на луѓето право на бришење на нивните лични податоци. Евиденција на податоци потпишана како еден блок не може да го исполни ова без да го уништи сопствениот потпис.
Бидејќи секоја ставка овде е самостојна, може да се отстрани една ставка додека сè друго останува валидно. Ако лични податоци случајно завршат во пасош, тие можат да се отстранат без проблеми, а пасошот останува валиден: нема потреба од ново издание, нема нарушена историја. Полињата што законот бара да се задржат остануваат на место; сè што може да се избрише може да се избрише на барање, дури и години подоцна.
Зошто ова е тешко и како го решивме проблемот
Ниене го измисливме процесот; тоа е јавен W3C стандард. Не е тешко да се смисли идејата. Тешкотијата лежи во тоа да се изгради на таков начин што пасошот сè уште ќе биде валиден за десет години. Стандардниот дигитален потпис се пресметува врз основа на бајтовите на документот. Потписот по поле се пресметува врз основа на неговите поединечни записи, а за да се постигне ова, пасошот се конвертира во фиксен формат пред потпишувањето, во кој секој запис се појавува како посебна реченица. Овој формат мора да се појавува карактер по карактер во текот на десет години; во спротивно, ниедна печат нема да се совпадне. Три навидум незначајни фактори стојат на патот на ова, а ние ги спречивме сите три во зародиш.
Броевите го губат својот тип. Вредност како 2.0 се враќа како 2 по поминувањето низ стандарден формат на податоци. За човекот, ова е исто; за фиксната нотација, тоа е различна вредност. Со нашиот систем, секоја вредност се зачувува со својот тип, а процесот на објавување се запира штом се појави и само еден број без тип.
Ознаките сè уште не претставуваат значење. Секој назив на поле мора да се поврзе со единствено значење во речник; во спротивно, полето тивко исчезнува за време на конверзијата и печатот не го покрива. Кај нас, секој речник се зачувува локално и никогаш не се презема преку мрежата; име на непознато поле го запира процесот на потпишување, наместо тивко да врати празен резултат.
Записите бараат фиксни имиња. Секој запис во документот има фиксен идентификатор, што осигурува дека нотацијата останува иста при секое поминување, наместо да се доделуваат нови помошни имиња секој пат.
Најтешкиот дел е клучот на самиот производител. За секое издание е потребен дополнителен, краткотраен клуч, со кој поединечно се потпишуваат полињата што можат да се откријат. Производителот сам го генерира и отфрла овој клуч. Ако го поседувавме, би можеле ретроактивно да измислуваме поединечни полиња. Секој пасош има два такви печата: еден од производителот и еден од Transpareo, дури и за едно поле што се открива.
За нас, овој напор навистина вреди. Секој пасош е потпишан при објавувањето и е поврзан со претходната верзија, а непроменливата десетгодишна архива стапува на сила штом пасошите се регистрираат во регистарот DPP на ЕУ. Потпишувањето на секое поле наместо на целиот блок е продолжување на овој клучен принцип, а не додаток.
Нашата позиција
Ниесе одлучивме за доказ, за секој читател, бидејќи печатот треба да значи една работа, без разлика кој го гледа. За оние кои сакаат да го видат во акција: двата примерока на пасоши поврзани погоре може да се проверат директно во прелистувачот, без да се прашува сервер.
Прашања за оваа објава
Дали стандардот го специфицира потписот поле по поле?
Не. EN 18239, европскиот стандард за права на пристап во DPP, бара пристапот да се контролира поле по поле, а филтерот на серверот целосно го исполнува ова барање. Дали откриените полиња може да се проверат и надвор од ова е наша одлука и не е обврска што некој регулатор бара да ја исполниме. Сметаме дека овој напор е оправдан, бидејќи целата поента на потпишаната дозвола е никој да не мора да ѝ верува на платформата. Статусот на овие стандарди е наведен во нашата статија за усогласени стандарди.
Ние објавуваме само јавни податоци. Дали треба да го правиме тоа?
Веројатно не, и ние сме доста отворени во врска со тоа. Потписот што го покрива целиот документ опфаќа пасош, сите негови полиња се јавни, и е значително поевтино да се постави и да се користи. Авторизацијата поле по поле станува исплатлива штом ќе се вклучи втора целна група, како што е мрежа за поправки, рециклирач или јавен орган на кој инаку би му доставувале извадоци без печат. Двата метода се отворени W3C стандарди (ecdsa-sd-2023 за потписот по поле); секој алат што го поддржува стандардот може да ги верификува, и двата моментално се извршуваат во Transpareo Time Machine, на “пасошот” на маица и на “пасошот” на батерија.
Можат ли личните податоци да се избришат подоцна без да се поништи пасошот?
Да, и овој аспект всушност е задолжителен според европското законодавство. Општата уредба за заштита на податоците им дава на луѓето право да ги избришат своите лични податоци, а записот на податоци означен како блокиран не може да го исполни тоа без да го уништи сопствениот потпис. Бидејќи секоја поле овде е дефинирано одделно, може да се отстрани само едно поле додека сè друго останува валидно, без потреба од повторно издавање на записот и без нарушување на историјата на верзии. Полеата што законот бара да се задржат остануваат на место.
Кој го држи клучот за потпис?
Секој пропусница има две печати, и една од нив може да биде ваша. Секоја изданија исто така бара краткорочен клуч кој поединечно ги потпишува полињата што треба да се откријат; производителот самиот го генерира и го отфрла овој клуч, бидејќи ако го чувавме, би можеле ретроактивно да измислуваме поединечни полиња. Ние ја проверуваме вратената печатка со зачуваниот јавен клуч пред да ѝ веруваме. Така, секој пасош носи две печати од две независни тела, и за поединечно откриено поле и за целиот сет на податоци.
Дали пасошот ќе биде сè уште валиден за десет години?
Токму таму лежи напорот. Подножјето по поле се пресметува врз основа на поединечните детали на документот, а не на неговите бајтови; затоа истиот фиксен формат мора да се репродуцира букво по букво по една деценија. Три работи го нарушуваат овој процес, и ние ги спречивме сите три во зародиш. Секоја вредност се зачувува со својот тип; секој речник е хостиран на нашите сервери и никогаш не се презема преку интернет; и секој запис има фиксен идентификатор. Непроменливата десетгодишна архива сега е воспоставена и ќе стапи во сила веднаш штом пасошите ќе бидат регистрирани во регистарот на ЕУ. Прочитајте повеќе за ова во нашата анализа на Регулативата за регистарот.




