Dlaczego nie używam podpisu elektronicznego?
2008-03-19
Przysłuchiwałem się niedawno dyskusji podczas spotkania Klubu Informatyka PTI. Samego spotkania sprawozdawać nie będę, zrobili to znacznie lepiej inni -- napiszę jednak o czymś, co uważam za istotne dla sprawy podpisu elektronicznego.
W samej dyskusji brałem udział biernie, tylko się przysłuchując. Nie uważałem, żebym miał wiele do dodania, w końcu dyskutowali ludzie, którzy od lat zajmują się tym tematem. Rozmowa toczyła się wokół problemów z adopcją podpisu elektronicznego w Polsce. Jako główne problemy wymieniane były ceny (sprawdziłem -- certyfikat kwalifikowany to minimum 300zł rocznie, co zakrawa na żart) oraz brak świadomości istnienia podpisu elektronicznego w społeczeństwie.
Dodałbym trzeci powód braku adopcji. Choć zapewne nieznaczący w ujęciu statystycznym, w gronie ludzi zajmujących się informatyką może okazać się istotny. Dlaczego ja sam nie używam podpisu elektronicznego?
Bo się boję.
W pędzie do popularyzacji podpisu elektronicznego zapomnieliśmy o edukacji. Podpis taki daje co prawda wiele korzyści, ale niesie także ze sobą zagrożenia. O tych drugich mało kto mówi, mam też wrażenie, że mało kto zadaje sobie trud pełnego ich zrozumienia.
Centra certyfikacyjne sprzedadzą nam certyfikaty, karty kryptograficzne, czytniki kart, wszystko z zapewnieniem, że są to produkty najwyższej klasy bezpieczeństwa. Istotnie tak jest. Problem jednak w tym, że większość klientów owe wysokiej klasy produkty podłączy do swojego komputera PC, prawdopodobnie z systemem Microsoft Windows. W najlepszym przypadku nie będzie wiadomo, co się na nim dzieje, jaki kod jest wykonywany, z czym się komunikuje i co robi. W rzeczywistości, czyli w większości przypadków, ów komputer będzie jednym wielkim zoo, gdzie wśród żyraf (programy obserwujące zachowania) i bawołów (wirusy) będą zwinnie bujać się na linach małpy (keyloggery).
Owszem, szybko odpowiedzą eksperci -- ale to nie ma znaczenia, bo podpis generowany jest na specjalnej bezpiecznej karcie z mikroprocesorem! Nie można go ukraść i nie można nim nic podpisać, gdy karta nie jest włożona do czytnika. Tak faktycznie jest. Niestety, nadal można nim podpisać kilka różnych rzeczy zamiast jednej. Temu zaradzi czytnik z klawiaturą (pin-padem) -- zakrzykną eksperci! To prawda -- nawet wtedy jednak pozostaje główny problem: użytkownik nie wie, co podpisuje.
Pamiętajmy, że to co akurat wyświetla na ekranie nasz komputer, nie musi mieć żadnego związku z tym, co do podpisania dostaje czytnik. I tak prawie zawsze podpisem opatruje się funkcję skrótu dokumentu, a nie cały dokument, użytkownik zaś na ekranie widzi dokument. Głównym jednak problemem dla mnie jest to, że nie mogę być pewien czy faktycznie podpisuję to, co widzę na ekranie.
Jeśli ktoś w tym momencie twierdzi, że taki atak nie jest prawdopodobny, to jest naiwny. Wiele osób twierdzi, że programy przechwytujące naciśnięcia klawiszy (keyloggery) to problem wydumany. Tym polecam pobudkę, na przykład poprzez przeczytanie o Mumbai, gdzie wręcz wymaga się od kawiarni internetowych instalowania takich programów.
Cały problem w tym, że mając bezpieczną infrastrukturę do podpisu elektronicznego, wprowadzamy do niej element, któremu nie można ufać: komputer PC. Wydawało mi się to tak oczywistym przeoczeniem, że nie chciałem wierzyć, że twórcy ustaw o podpisie elektronicznym nie pomyśleli o tym problemie. Wczytałem się więc w akty prawne. Co się okazało? Pomyśleli -- i nawet opisali precyzyjnie jakie wymagania musi spełniać "bezpieczne urządzenie do składania podpisów elektronicznych":
§ 6. Bezpieczne urządzenie do składania podpisów elektronicznych oraz bezpieczne urządzenie do weryfikacji podpisów elektronicznych mają możliwość obliczania i prezentowania przynajmniej jednej z funkcji skrótu w stosunku do danych służących do weryfikacji bezpiecznego podpisu elektronicznego lub poświadczenia elektronicznego, będących dla osoby składającej bezpieczny podpis elektroniczny lub weryfikującego bezpieczny podpis elektroniczny punktem zaufania. (ROZPORZĄDZENIE RADY MINISTRÓW z dnia 7 sierpnia 2002 r., Dz. U. Nr 128, poz. 1094) (podkreślenie autora)
Oto i rozwiązanie mojego problemu -- mam komputer PC, który wyświetla mi na ekranie dokument i pokazuje jego funkcję skrótu. Równocześnie, ów dokument przesyłany jest do zaufanego urządzenia zewnętrznego (najlepiej z otwartym, audytowalnym), które niezależnie liczy funkcję skrótu i wyświetla mi ją na wbudowanym ekranie LCD. Do urządzenia zewnętrznego mam zaufanie, wiem też, że jego oprogramowania nie da się zmienić, bo jest zapisane w pamięci ROM. Mogę więc porównać oba skróty i spokojnie autoryzować podpis, wiedząc co podpisałem.
Nie rozumiem dlaczego na stronach Sigillum jest informacja, że bezpiecznym urządzeniem do składania i weryfikacji podpisu elektronicznego zgodnie z wymaganiami ustawy i rozporządzenia są zestawy czytnik + komputer PC + oprogramowanie. W żaden sposób za bezpieczny (czyli spełniający wymagania opisane w Rozdziale 2 rozporządzenia) nie może być uznany komputer PC z oprogramowaniem, chociażby dlatego, że nie ma kontroli nad wyświetlanym obrazem na ekranie oraz nad danymi wpisywanymi z klawiatury. Wytłumaczeniem nie może być ograniczenie technologiczne, bo istnieją czytniki z wyświetlaczem -- i jak przypuszczam, wynik funkcji skrótu potrafią wyświetlić.
Nie jestem bynajmniej jedynym, który zauważył problem. Przykładem może być chociażby praca "Digital signature in insecure environments".
W profesjonalnej analizie o bezpieczeństwie zawsze mówi się jako o kompromisie. Można mieć system albo bezpieczny, albo wygodny w użyciu. Na drugim wykresie pokazać można ryzyko finansowe: ile klient ryzykuje, wybierając mniej bezpieczny system. O ile wybory te są świadome, można dobrze dobrać politykę bezpieczeństwa do realnych wymagań. W przypadku podpisu elektronicznego jestem w stanie zrozumieć, że w wielu zastosowaniach biznesowych (takich jak np. masowe podpisywanie faktur wykonywane na zaufanym i zabezpieczonym systemie) obecne rozwiązania mają sens i są rozsądnym kompromisem. Nie jest tak jednak w przypadku osób fizycznych. Tu systemy są znacznie gorzej zabezpieczone (to dopiero eufemizm!), a względne ryzyko finansowo-prawne nieporównywalnie większe.
Jeśli chodzi o mnie, podpisując na komputerze z systemem Linux czułbym się lekko niekomfortowo, ale zaakceptowałbym ryzyko, w końcu system jest audytowalny i kod systemu i aplikacji jest regularnie oglądany przez wiele osób. Na moim MacBooku z Mac OS X byłbym już dużo ostrożniejszy, zaś z Windows nie odważyłbym się na podpis w ogóle. Dopóki więc na rynku nie będą powszechnie dostępne czytniki kart z klawiaturą (pin-padem), wyświetlaczem pokazującym funkcję skrótu oraz audytowalnym oprogramowaniem, dopóty nie będę używał podpisu elektronicznego, który może rodzić dla mnie skutki prawne.
Nie. Po prostu nie. Nie da się zapewnić 100% bezpieczeństwa w żadnej dziedzinie życia. Jeżeli ktoś się boi latać samolotami to niech nie lata. Zawsze istnieje kompromis pomiędzy wygodą i bezpieczeństwem, nawet jak w grę wchodzi życie ludzkie. Deklaracja zgodności przerzuca odpowiedzialność na dostawcę oprogramowania więc ryzyko używania podpisu przez Kowalskiego jest znikome. Tak znikome że wręcz nieporównywalne z wygodą jaki ta forma podpisu ze sobą niesie.
Dlaczego prawo wymaga używania bezpiecznych urządzeń? Jest to rozwiązanie krzywdzące dla bardziej świadomych użytkowników. Np. mam 100% pewność że u mnie w systemie niema żadnego wirusa i pasowałby mi podpis elektroniczny trzymany w pliku a nie na specjalnej karcie, a prawo uniemożliwia takie rozwiązanie i zmusza do kupowania drogich urządzeń, które w dodatku zajmują miejsce.
To takie socjalistyczne chronienie ludzi przed ich własną głupotą...
M8: to dobrze, że prawo chroni użytkowników, którzy myślą, że są „świadomi”. Jakiej byś nie miał „pewności”, że w Twoim systemie nie ma wrogiego kodu (a skąd niby miałbyś ją mieć?), to przy certyfikacie trzymanym w pliku można Ci ów certyfikat ukraść, a Ty nie masz szansy tego zauważyć.
Czego by nie mówić o rozwiązaniach mikroprocesorowych (typu karty), to mają tę przydatną własność, że są materialne, nie da się ich skopiować, a kradzież jest zauważalna.