Ujawnianie bez utraty sygnatury

Ujawnianie bez utraty sygnatury

Transpareo podpisuje osobno każde pole paszportu produktu, dzięki czemu nawet pola chronione można zweryfikować niezależnie. Użytkownik nie musi ufać platformie.

Cyfrowy paszport produktu nie pokazuje wszystkim tych samych informacji. Klientka widzi dane publiczne. Warsztat naprawczy lub firma zajmująca się regeneracją widzi więcej. Organ nadzoru rynku widzi wszystko. Kwestia ta została wyjaśniona, a normy europejskie wyraźnie to obecnie określają.

Ciekawe pytanie brzmi jednak inaczej: jeśli ktoś uzyskuje dostęp do pól chronionych wykraczających poza dane publiczne, czy może wówczas udowodnić, że właśnie te pola są autentyczne? A może musi polegać na tym, że platforma prawidłowo je wybrała i przekazała bez zmian?

Wyobraźmy sobie notariusza, który nie poświadcza listu w całości, lecz każdy akapit z osobna. List publiczny otrzymuje każdy. Kto ma prawo do szerszego dostępu, otrzymuje dodatkowe akapity, a każdy z nich nadal opatrzony jest pieczęcią tego samego notariusza. W ten sposób zbudowaliśmy naszą platformę. W przypadku większości platform szczera odpowiedź na powyższe pytanie brzmi: zaufanie. W naszym przypadku brzmi ona: dowód - dla każdego pola, które zostaje dodane dopiero w momencie ujawnienia. Niniejszy artykuł wyjaśnia, dlaczego ta różnica ma znaczenie i dlaczego zdecydowaliśmy się pójść tą bardziej pracochłonną drogą.

Wszyscy w równym stopniu spełniają zasadę dostępu

NormaEN 18239, europejska norma dotycząca praw dostępu, bezpieczeństwa i poufności w DPP, wymaga, aby dostęp był kontrolowany dla każdego pola: dla każdego pola istnieje zasada określająca, kto może je przeglądać. Jest to właściwe wymaganie i nie jest trudne do spełnienia. Jaki status mają w ogóle te normy, wyjaśniliśmy w naszym artykule poświęconym normom zharmonizowanym.

Typowym sposobem realizacji tego wymogu jest zastosowanie filtra na serwerze. Serwer rozpoznaje, kto wysyła zapytanie, sprawdza, co ta osoba może zobaczyć, i zwraca dokładnie ten fragment. Norma nie wymaga niczego więcej. Czytelnik musi wierzyć, że serwer dokonał uczciwego wyboru i nie zmienił niczego podczas przesyłania danych. W przypadku publicznej broszury informacyjnej jest to wystarczające. W przypadku wartości, na podstawie której podmiot przetwarzający ustala cenę używanej baterii, wymaga to jednak zbyt dużego zaufania.

Jest jednak pewien haczyk, którym norma się nie zajmuje: fragment ten jest dostarczany bez pieczęci.

Oczywistym rozwiązaniem jest podpisanie danych. Na obu końcach skali dobrze sprawdza się zwykły podpis: podpisanie widoku publicznego oraz podpisanie pełnego zestawu danych. Szczegółowy opis tego procesu znajduje się w sekcji „Podpisy i certyfikaty” w DPP. Problem pojawia się w środku. Podpis obejmujący cały dokument obejmuje dokładnie te pola, które były obecne w momencie podpisywania. Jeśli uprawnionemu czytelnikowi udostępni się dodatkowo chronione pole, pole to znajduje się poza podpisanym zbiorem i dociera do niego bez ochrony. Nikt nie podpisuje z góry każdej możliwej kombinacji „kto widzi co”, ponieważ liczba takich kombinacji gwałtownie rośnie. Wraca się do filtru bez pieczęci, a poziom pośredni ponownie opiera się na zaufaniu.

Podpisywanie każdego pola z osobna

Istnieje lepsza konstrukcja i to właśnie na niej opieramy naszą platformę. Zamiast podpisywać gotowy dokument jako jeden blok, twórca w jednym przebiegu określa każde pole z osobna (dla znawców norm: procedura W3C ecdsa-sd-2023).

Każdy widok rozpoczyna się od tych samych pól publicznych. To, co czytelnik widzi ponadto, jest dodawane pole po polu, a każde z tych pól nadal prowadzi do klucza publicznego producenta - w trybie offline, bez ponownego podpisywania i bez konieczności ufania podmiotowi, który skomponował ten widok. Pola bez uprawnień po prostu nie występują. Nie są zamazane, lecz w ogóle ich nie ma, a żadne informacje na ich temat nie przedostają się na zewnątrz.

Jeden cykl: warsztat naprawczy

Warsztat naprawczy zgłosił uzasadniony interes w odniesieniu do akumulatora, co stanowi jeden z poziomów dostępu wyraźnie przewidzianych w rozporządzeniu w sprawie baterii. System warsztatu loguje się za pomocą klucza w naszym interfejsie i pobiera paszport. Odpowiedzią jest ten sam publiczny certyfikat, który widzi również nabywczyni, uzupełniony o jedno dodatkowe pole: instrukcję demontażu, udostępnianą wyłącznie uprawnionym odbiorcom. Nie jest to żaden drugi dokument ani wersja specjalna.

Zanim firma zaufa tej informacji, jej oprogramowanie weryfikuje dołączoną pieczęć przy użyciu klucza publicznego producenta. Jeśli weryfikacja podpisu przebiegnie pomyślnie - w tym również w odniesieniu do dodatkowego pola - firma ma pewność: niniejsza instrukcja pochodzi dokładnie od producenta, a nikt na drodze jej przekazania nie wprowadził do niej żadnych zmian. Jeśli weryfikacja nie powiedzie się, odrzuca cały dokument. Zapewnienie, że otrzymuje dokładnie te pola, do których ma prawo, pozostaje zadaniem naszego systemu kontroli dostępu. Nowością jest kolejny krok: sam sprawdza, czy otrzymany dokument jest autentyczny, bez zwracania się do nas o pomoc.

Dlaczego „nieuszkodzona”pieczęć## ma tak kluczowe znaczenie

Nienaruszona pieczęć nie oznacza, że treść jest prawdziwa. Oznacza ono: dokładnie to napisał producent i od tego czasu nikt nie zmienił w nim ani jednego znaku. W ten sposób z kwestii zaufania wyklucza się każdy, kto jedynie przekazał dokument dalej: pamięć buforowa, sieć, archiwum, my.

Nie ma już znaczenia, kto przekazał Państwu paszport.

A pieczęć ma charakter binarny. Albo jest nienaruszona, albo nie - nie ma czegoś takiego jak pieczęć częściowo zniszczona. Dlatego nie jest to różnica stopniowa, czy dodatkowe pola dotrą do Państwa z pieczęcią, czy bez niej: bez pieczęci nie są one wypełnione w mniejszym stopniu, lecz w ogóle nie są wypełnione.

Oba sposoby przeglądania

Każdy może to sprawdzić samodzielnie. Transpareo Time Machine to nasza aplikacja o otwartym kodzie źródłowym służąca do wyświetlania paszportów produktów: przegląda ona historię wersji danego paszportu i przy tym weryfikuje każdy podpis w przeglądarce użytkownika, bez konieczności zwracania się do naszego serwera. Karta produktu koszulki zawiera sygnaturę obejmującą cały dokument, natomiast karta produktu baterii - zatwierdzenie poszczególnych pól.

Oba są otwartymi standardami W3C, które każdy może wdrożyć. Podpis obejmujący cały dokument jest znacznie tańszy w tworzeniu i eksploatacji, a dla podmiotów udostępniających wyłącznie dane publiczne jest to rozwiązanie wystarczające. Fakt, że Transpareo Time Machine obsługuje obie metody, jest zamierzony: Pass pozostaje zwykłym standardowym formatem, który może sprawdzić każde odpowiednie narzędzie, a nie tylko nasze.

Komu to służy i czego wymaga norma

Komu w ogóle ujawnia się cokolwiek poza danymi publicznymi? Na pewno nie przypadkowej klientce. Są to podmioty przetwarzające dane, które oceniają wartość zużytego zestawu akumulatorów; ubezpieczyciele, którzy wyceniają ryzyko; firmy zajmujące się recyklingiem, które sortują substancje chemiczne; oraz organy administracji, które prowadzą postępowanie. Czytelnicy, których decyzje mają wpływ na finanse lub bezpieczeństwo. A w ramach typowego podejścia są to właśnie ci odbiorcy, którzy nie otrzymują certyfikatu w odniesieniu do pól, na których opierają swoje decyzje. Uważamy, że certyfikat powinien oznaczać to samo dla wszystkich: każde widoczne pole pochodzi od producenta i od tego czasu nie było modyfikowane. Znak, który obejmuje wyłącznie pola publiczne, jest znakiem niepełnym.

Mówimy to otwarcie: żadna z tych zasad nie jest obowiązkowa. Norma EN 18239 wymaga, aby dostęp był kontrolowany, a filtr na serwerze spełnia to wymaganie bez zarzutu. Udostępnianie pól w sposób umożliwiający ich weryfikację jest dla nas dodatkowym krokiem, ponieważ sensem podpisanego paszportu jest właśnie to, że nikt nie musi ufać platformie. Wyłączenie średniego poziomu jako wyjątku przywraca dokładnie to zaufanie, które podpis miał wyeliminować.

Ta sama zasada pozwala na pominięcie danego pola

Określenie każdego pola z osobna wiąże się z drugą cechą, której faktycznie wymaga prawo europejskie. Ogólne rozporządzenie o ochronie danych przyznaje osobom prawo do usunięcia danych osobowych. Zbiór danych podpisany jako jeden blok nie może spełnić tego wymogu bez zniszczenia własnego podpisu.

Ponieważ w tym przypadku każde pole stanowi odrębną całość, można usunąć pojedyncze pole, podczas gdy pozostałe elementy nadal podlegają weryfikacji. Jeśli dane osobowe przypadkowo znajdą się w paszporcie, zostaną z niego starannie usunięte, a paszport zachowa ważność: nie ma potrzeby ponownego wydawania dokumentu ani przerywania historii. Pola, których zachowanie wymaga prawo, pozostają na swoim miejscu; to, co można usunąć, można usunąć na żądanie, nawet po upływie wielu lat.

Dlaczego jest to trudne i jak to rozwiązaliśmy

Nie jesteśmy autorami tej procedury - jest to publiczny standard W3C. Trudno nie jest wpadnąć na ten pomysł. Trudno jest zrealizować go w taki sposób, aby paszport nadal spełniał wymogi weryfikacyjne za dziesięć lat. Zwykły podpis opiera się na bajtach dokumentu. Podpis polowy opiera się na poszczególnych danych zawartych w dokumencie, w związku z czym przed podpisaniem dokument jest przekształcany do stałego formatu, w którym każda informacja występuje jako osobny wiersz. Ten format musi za dziesięć lat zostać odtworzony znak po znaku, w przeciwnym razie pieczęć nie będzie już pasować. Na drodze stoją trzy niepozorne przeszkody, a my wyeliminowaliśmy je wszystkie u źródła.

Liczby tracą swój typ. Wartość taka jak 2,0 po przetworzeniu przez zwykły format danych powraca jako 2. Dla człowieka to ta sama wartość, dla ustalonego formatu zapisu - inne wyrażenie. W naszym systemie każda wartość jest zapisywana wraz z jej typem, a publikacja zostaje przerwana, gdy tylko pojawi się choćby jedna liczba bez typu.

Nazwy same w sobie nie mają jeszcze znaczenia. Każda nazwa pola musi odnosić się do jednoznacznego znaczenia w słowniku, w przeciwnym razie pole to znika po cichu podczas konwersji, a pieczęć go nie obejmuje. U nas każdy słownik jest dostępny lokalnie i nigdy nie jest pobierany przez sieć; nieznana nazwa pola zatrzymuje proces podpisywania, zamiast po cichu zwracać pusty wynik.

Wpisy wymagają stałych nazw. Każdy wpis w dokumencie posiada u nas stały identyfikator, dzięki czemu forma zapisu pozostaje taka sama przy każdym przebiegu, zamiast przyznawania za każdym razem nowych nazw pomocniczych.

Najdelikatniejsza kwestia dotyczy własnego klucza producenta. Do każdego wydania potrzebny jest dodatkowy, krótkotrwały klucz, za pomocą którego poszczególne pola przeznaczone do ujawnienia są podpisywane. Klucz ten jest generowany i usuwany przez samego producenta. Gdyby znajdował się on w naszym posiadaniu, moglibyśmy później wymyślać poszczególne pola. Każdy paszport posiada dwa takie pieczęcie: jedną producenta i jedną firmy Transpareo, nawet w przypadku pojedynczego pola podlegającego ujawnieniu.

Naszym zdaniem ten wysiłek jest uzasadniony. Dzięki Transpareo Proofchain każdy paszport jest podpisywany w momencie publikacji i powiązany z poprzednią wersją, a Transpareo Vault - niezmienne, dziesięcioletnie archiwum - zaczyna działać, gdy tylko paszporty zostaną zarejestrowane w rejestrze UE. Podpisywanie poszczególnych pól zamiast całego bloku stanowi rozszerzenie tego podstawowego mechanizmu, a nie dodatek.

Gdzie obecnie się znajdujemy

Zdecydowaliśmy się na ten dowód dla każdego czytelnika, ponieważ pieczęć powinna oznaczać to samo dla każdego, kto na nią spojrzy. Jeśli chcą Państwo zobaczyć, jak to działa: dwa przykładowe paszporty, do których linki zamieszczono powyżej, można sprawdzić bezpośrednio w przeglądarce, bez konieczności zwracania się do serwera.

Pytania dotyczące tego wpisu

Czy jakaś norma określa sygnaturę dla poszczególnych pól?

Nie. Norma europejska EN 18239 dotycząca praw dostępu w systemie DPP wymaga, aby dostęp był kontrolowany na poziomie poszczególnych pól, a filtr na serwerze w pełni to zapewnia. Zapewnienie możliwości weryfikacji ujawnionych pól wykraczających poza te wymagania jest naszą decyzją, a nie wymogiem regulacyjnym narzuconym przez kogokolwiek. Uważamy, że nakład ten jest uzasadniony, ponieważ sensem podpisanego paszportu jest właśnie to, że nikt nie musi ufać platformie. O tym, jaki status mają te normy, można przeczytać w naszym artykule poświęconym normom zharmonizowanym.

Publikujemy wyłącznie dane publiczne. Czy jest to nam potrzebne?

Prawdopodobnie nie, i otwarcie to przyznajemy. Podpis obejmujący cały dokument obejmuje paszport, którego wszystkie pola są jawne, a jego wdrożenie i eksploatacja są znacznie tańsze. Autoryzacja poszczególnych pól staje się opłacalna, gdy pojawia się druga grupa docelowa, na przykład sieć serwisowa, firma zajmująca się recyklingiem lub organ administracyjny, którym w przeciwnym razie przekazywaliby Państwo wyciągi bez pieczęci. Obie metody są otwartymi standardami W3C (ecdsa-sd-2023 dla podpisu polowego); każde narzędzie obsługujące ten standard może je zweryfikować, a obie działają obecnie w Transpareo Time Machine - zarówno w przypadku paszportu koszulki, jak i paszportu baterii.

Czy dane osobowe można później usunąć bez unieważnienia paszportu?

Tak, a ten aspekt jest faktycznie wymagany przez prawo europejskie. Ogólne rozporządzenie o ochronie danych przyznaje osobom prawo do usunięcia danych osobowych, a zapis danych podpisany jako blok nie może tego zapewnić bez zniszczenia własnego podpisu. Ponieważ każde pole jest tutaj zapisane osobno, można usunąć pojedyncze pole, podczas gdy pozostałe elementy nadal zachowują swoją ważność - bez konieczności ponownego wystawiania dokumentu i bez naruszania historii wersji. Pola, których zachowanie wymaga prawo, pozostają nienaruszone.

Kto jest w posiadaniu klucza podpisu?

Każdy certyfikat posiada dwie pieczęcie, a jedna z nich może należeć do Państwa. Każda emisja wymaga dodatkowo klucza krótkotrwałego, który indywidualnie podpisuje pola podlegające ujawnieniu; klucz ten generuje i usuwa sam wydawca, ponieważ gdyby znajdował się on w naszym posiadaniu, moglibyśmy później dowolnie tworzyć poszczególne pola. Zwracane pieczęcie sprawdzamy przy użyciu przechowywanego klucza publicznego, zanim uznamy je za wiarygodne. Każdy paszport posiada zatem dwie pieczęcie pochodzące od dwóch niezależnych podmiotów - zarówno dla poszczególnych ujawnianych pól, jak i dla całego zestawu danych.

Czy za dziesięć lat paszport będzie nadal ważny?

Właśnie w tym tkwi trudność. Sygnatura oparta na polach opiera się na poszczególnych danych dokumentu, a nie na jego bajtach, więc ta sama stała sekwencja znaków musi zostać odtworzona znak po znaku nawet po upływie dekady. Trzy czynniki zakłócają ten proces, a my wyeliminowaliśmy wszystkie trzy u źródła. Każda wartość jest zapisywana wraz z jej typem, każdy słownik znajduje się u nas i nigdy nie jest pobierany z sieci, a każdy wpis posiada stały identyfikator. Niezmienne, dziesięcioletnie archiwum zostało utworzone i zacznie funkcjonować, gdy tylko paszporty zostaną zarejestrowane w rejestrze UE. Więcej na ten temat w naszej analizie rozporządzenia w sprawie rejestru UE.

Aktualizacje dotyczące poziomów dostępu i dokumentów potwierdzających

Selektywne ujawnianie informacji, sygnatury oraz rozwój norm DPP - comiesięczne podsumowanie w Twojej skrzynce odbiorczej.