Ujawnianie bez utraty sygnatury

Ujawnianie bez utraty sygnatury

Kto otrzymuje dostęp do chronionych pól, musi zazwyczaj zaufać platformie. Podpisujemy każde pole osobno, aby można je było zweryfikować samodzielnie.

Cyfrowy paszport produktu nie pokazuje wszystkim tych samych informacji. Klientka widzi dane publiczne. Serwis 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? Czy też 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. Publiczną wersję listu otrzymuje każdy. Osoby uprawnione do uzyskania szerszego dostępu otrzymują 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 pojawia się dopiero w momencie ujawnienia. Niniejszy artykuł wyjaśnia, dlaczego ta różnica ma znaczenie i dlaczego zdecydowaliśmy się na 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 danych. Norma nie wymaga niczego więcej. Jest jednak pewien haczyk, którym norma się nie zajmuje: fragment ten jest dostarczany bez pieczęci. Czytelnik musi wierzyć, że serwer dokonał uczciwego wyboru i nie wprowadził żadnych zmian podczas przesyłania. W przypadku publicznej broszury jest to wystarczające. Jednak w przypadku wartości, na której przetwórca opiera cenę używanej baterii, wymaga to zbyt dużej wiary.

Oczywistym rozwiązaniem jest podpisanie danych. Na obu końcach skali dobrze sprawdza się zwykły podpis: podpisanie publicznego widoku 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 zestawem 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 wzrasta. Powraca się do filtru bez pieczęci, a środkowy poziom znów 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 standardów: procedura W3C ecdsa-sd-2023).

Każdy widok zaczyna 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 skompilował dany 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 przebieg: warsztat naprawczy

Warsztat naprawczy zgłosił uzasadniony interes w odniesieniu do baterii - jest to jeden z poziomów dostępu wyraźnie przewidzianych w rozporządzeniu w sprawie baterii. System warsztatowy loguje się za pomocą swojego klucza do naszego interfejsu i pobiera kartę. Odpowiedzią jest ta sama karta publiczna, którą widzi również nabywczyni, wzbogacona dokładnie o jedno pole: instrukcja demontażu, udostępniana wyłącznie uprawnionym czytelnikom. Żadnego drugiego dokumentu, żadnej specjalnej wersji.

Zanim warsztat oprze się na treści tego pola, jego oprogramowanie weryfikuje dostarczoną pieczęć przy użyciu klucza publicznego producenta. Jeśli weryfikacja przebiegnie pomyślnie, w tym również w odniesieniu do dodatkowego pola, warsztat 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. To, ż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 otrzymana treść jest autentyczna, bez zwracania się do nas o pomoc.

Dlaczego „nieuszkodzona”plomba## ma tak kluczowe znaczenie

Nienaruszona plomba 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ęć podręczna, 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 samodzielnie sprawdzić. Transpareo Time Machine to nasza aplikacja o otwartym kodzie źródłowym do wyświetlania paszportów produktów: przegląda historię wersji paszportu, przy czym weryfikuje każdy podpis w przeglądarce użytkownika bez konieczności zwracania się do naszego serwera. Certyfikat koszulki zawiera podpis obejmujący cały dokument, natomiast certyfikat baterii - zatwierdzenie poszczególnych pól.

Oba rozwiązania opierają się na otwartych standardach W3C i każdy może je wdrożyć. Podpis obejmujący cały dokument jest znacznie tańszy w tworzeniu i utrzymaniu, a wystarczy go stosować, jeśli udostępnia się wyłącznie dane publiczne. To, że aplikacja Time Machine obsługuje obie metody, jest zamierzone: paszport pozostaje zwykłym formatem standardowym, który może sprawdzić każde odpowiednie narzędzie, 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, 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 dotychczasowego 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 zostało zmienione. Znak certyfikacyjny, który obejmuje wyłącznie pola publiczne, jest tylko połowicznym znakiem.

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 doskonale spełnia tę funkcję. Udostępnianie pól w sposób umożliwiający weryfikację jest dodatkowym działaniem z naszej strony, ponieważ sensem podpisanego paszportu jest właśnie to, że nikt nie musi ufać platformie. Wyłączenie środkowego 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ą, a ta jest faktycznie wymagana przez 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żliwe jest usunięcie pojedynczego pola, podczas gdy pozostałe elementy nadal podlegają weryfikacji. Jeśli dane osobowe przypadkowo znajdą się w paszporcie, zostaną z niego całkowicie 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 rozwiązaliśmy ten problem

Nie jesteśmy autorami tej procedury - jest to publiczny standard W3C. Trudno nie wpaść na ten pomysł. Trudno jest jednak zrealizować go w taki sposób, aby paszport nadal sprawdzał się 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ć. Trzy niepozorne czynniki stoją temu na przeszkodzie, 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 to samo, dla ustalonego formatu zapisu jest to jednak 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 z sieci; 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 zapis pozostaje taki sam 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 samodzielnie tworzyć poszczególne pola. Każdy paszport posiada dwie takie pieczęcie: jedną producenta i jedną firmy Transpareo, nawet w przypadku pojedynczego pola podlegającego ujawnieniu.

Naszym zdaniem ten wysiłek jest uzasadniony. Każdy paszport jest podpisywany w momencie publikacji i łączony z poprzednią wersją, a niezmienne dziesięcioletnie archiwum zaczyna obowiązywać, gdy tylko paszporty zostaną zarejestrowane w rejestrze EU-DPP. Podpisywanie poszczególnych pól zamiast całego bloku stanowi rozszerzenie tej podstawowej koncepcji, 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 forma zapisu musi zostać odtworzona znak po znaku nawet po upływie dziesięciu lat. 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.

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.