Bezpieczeństwo a używalność

Kryterium używalności jest często traktowane przez speców od bezpieczeństwa po macoszemu. Niesłusznie, bo jeśli jakieś zabezpieczenie jest mało używalne to użytkownicy go... nie używają. Wynikowe bezpieczeństwo jest więc mniejsze, a koszt - rośnie. Niestety, przykładem takiego wysoce bezpiecznego i wysoce nieużywalnego mechanizmu staje się powoli podpis elektroniczny.

Początkowy entuzjazm podczas tworzenia podwalin współczesnego podpisu opartego o X.509 wspierały hasła takie jak: redukcja kosztów, uproszczenie komunikacji, wysokie bezpieczeństwo okraszone słowami-kluczami takimi jak "walka z cyfrowym wykluczeniem", "e-biznes", "e-government". Co z nich zostało? Głównie sterty zakurzonych papierów.

Zamiast "redukcji i uproszczenia" mamy obecnie:

  • kilkaset niezależnych drzew certyfikacji dla certyfikatów SSL, spiętych przez parodię kotwicy zaufania jaką jest Internet Explorer czy też baza certyfikatów Windows (polecam Wojciech S. Czarnecki "Kup pan podpis"),
  • trzy niezależne drzewa stworzone przez każde z polskich centrów certyfikacji oraz jedno kwalifikowane, spięte przez NCC Centrast,
  • Bóg jeden wie ile analogicznych drzew certyfikacji w każdym z 27 Państw Członkowskich Unii i na całym świecie
  • jedną polską fakturę elektroniczną, która zamiast obniżać koszty i ułatwiać na razie podraża, utrudnia i budzi wątpliwości,
  • Bóg jeden wie ile analogicznych faktur elektronicznych w każdym z 27 Państw Członkowskich, a każda inna pomimo że wszystkie niby wywodzą się z tych samych Dyrektyw i tych samych standardów technicznych.

Komisja Europejska majaczy coś o nowym, paneuropejskim eID. Wydaje mi się, że lepiej byłoby najpierw skończyć jedną, raz zaczętą rzecz, zamiast zadrukowywać kolejne tysiące kartek papieru technokratycznymi iluzjami, które mało kto przeczyta a na pewno nikt nie zastosuje w praktyce.

Osobiście od 1992 roku nieprzerwanie wykorzystuję niedoskonałe (bo nie wbudowane w popularne MUA) i nie pobłogosławione przez żadną świetną komisję OpenPGP. Dokładnie tak samo robi kilkadziesiąt znanych mi firm i instytucji (także państwowych!) Do przesyłania wstępnej wersji raportu z audytu bezpieczeństwa znajomi audytorzy używają PGP. Do poufnej komunikacji z klientami - PGP. Do publikacji dokumentów dla wąskiej grupy partnerów - PGP. Do szyfrowania backupów - PGP.

Przyznam szczerze, że próbowałem - wielokrotnie próbowałem - wdrażać rozwiązania oparte o X.509 w zastosowaniach własnych i w zewnętrznych instytucjach. Dopóki sprawa rozgrywa się w zamkniętym gronie korporacji da się nad tym zapanować. W momencie wyjścia poza granice firmy czy instytucji natychmiast zaczynają się problemy, które w końcu prowadzą do... uruchomienia PGP, szybkiej wymiany kluczy i robienia tego co należy zamiast zabaw z uruchamianiem kolejnych, wzajemnie nieuznawanych drzew certyfikacji. Albo poniechania szyfrowania w ogóle.

Czy bezpieczeństwo opisanych przeze mnie w artykule "Po co nam SSL?" stron e-Poltaxu jest wyższe, niż gdyby były one podpisane przez PGP (pomijając że SSL nie używa PGP)? Nie, zaufanie do tej strony jest dokładnie takie samo jak do pobranego ze strony klucza PGP. PKI pełni tutaj rolę kosztownego gadżetu.

Czy mail podpisany certyfikatem wystawionym przez Sigillum (proszę pamiętać, do S/MIME nie można użyć kwalifikowanego) jest bardziej godny zaufania od maila podpisanego PGP? Nie, bo jeśli sam nie mam certyfikatu Sigillum to i tak muszę zaufać certyfikatowi pobranemu z sieci.

Proszę pamiętać, że każde rozwiązanie techniczne służy jakiemuś konkretnemu, bardzo rzeczywistemu i zwykle przyziemnemu celowi, nawet jeśli jest ono tylko małym trybikiem w całym ciągu zdarzeń, które do tego celu prowadza. Podpis elektroniczny miał zasadniczo uprościć komunikację w biznesie oraz obniżyć koszty fakturowania i kontaktów z administracją. Życie weryfikuje X.509 i jak na razie weryfikuje go negatywnie.

Europejski pęd do stosowania rozwiązań w 100% poprawnych technicznie i ideologicznie, ale całkowicie nieużywalnych, przypomina nieco prowadzone w czasach ZSRR zawracanie biegów rzek i nawadnianie pustyń dla wykazania potęgi radzieckiej myśli technicznej - oby tylko nie skończył podobnie...

Comments

Comment viewing options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Select your preferred way to display the comments and click "Save settings" to activate your changes.

Trochę nie tak.
X.509 to standard opisujący strukturę certyfikatów, wiążący certyfikaty z tożsamością osób. Nie można więc przypisywać mu istniejących problemów. Takie problemy powstają oczywiście w ramach infrastruktury PKI (z ang. Infrastruktura Klucza Publicznego), której przywołany standard jest niewątpliwie elementem.
Filozofia PGP doskonale sprawdza się w przypadku małej struktury wymiany informacji. Rzeczywiście szybkie wprowadzenie poufności w przekazach między dwoma stronami łatwo zrealizować w oparciu o tę filozofię (wzajemnego zaufania).
PKI w swej czystości mówi o głównym punkcie zaufania (root). On (nie wnikając w szczegóły) stoi na straży podstawowej cechy: osoba podpisująca (również osoba-adresat szyfrogramu) są tymi za które się podają. Z potęgą jaką daje kryptografia zapewnione są: integralność, niezaprzeczalność, poufność. Jeżeli certyfikaty (X.509) to tożsamość osób w sieci, jeżeli root krajowy stoi na straży prawidłowości procesów w ramach całej infrastruktury to oznacza to tyle, że podobnie jak dowód osobisty jest dokumentem stwierdzającym tożsamość, tak osoba podpisująca określony dokument jest tą za którą się podaje. I jest tak niezależnie od tego, że strony wymiany informacji osobiście się nie znają (wymiana obywatel-urząd).
Aby tak było musi istnieć moment, w którym osoba w przyszłości podpisująca się certyfikatem (subskrybent) osobiście stawił się do centrum certyfikacji (CA) działającego w ramach infrastruktury państwa (na której straży stoi root krajowy). I podobnie jak dowodów osobistych nie wystawiamy sobie sami, czynią to tylko odpowiednie agendy państwa, tak samodzielne wystawione sobie certyfikaty (lub poprzez nie zaufane (niekwalifikowane) CA) nie mogą dać odpowiednich skutków prawnych (nie powinno dopuścić się ich użycia do oświadczania woli i wiedzy pod istotnymi dokumentami; e-faktury, e-deklaracje, e-umowy, e-wnioski,…).
A na marginesie jak się nazywa czynność jeżeli ktoś wyrabia samodzielnie dowody osobiste? ;-) A po co są takie dokumenty? A co to oznacza osobiste stawiennictwo?, idt… Prawda, że zupełnie inna sfera działania.
Niestety w propozycjach nowelizacji ustawy o podpisie elektronicznym sugeruje się rezygnację z root`a krajowego. Z całą pewnością niezależnie od metod jakie daje tu PKI (np. wzajemna certyfikacja root`ów niższego poziomu,…) jest to woda na młyn podobnym stwierdzeniom na temat wyższości PGP nad PKI. Systemy te doskonale się uzupełniają i przy tym pozostańmy.

"X.509 to standard opisujący strukturę certyfikatów,"

Zgadza się - pisząc X.509 mam na myśli "PKI oparte o X.509", wydaje mi się że jest to uzasadniony skrót myślowy skoro de facto na rynku mamy dwa liczące się systemy PKI: PGP i właśnie PKi związane z X.509.

"On (nie wnikając w szczegóły) stoi na straży podstawowej cechy: osoba podpisująca (również osoba-adresat szyfrogramu) są tymi za które się podają. Z potęgą jaką daje kryptografia zapewnione są: integralność, niezaprzeczalność, poufność."

Proszę wejść na stronę e-Poltaxu: e-poltax.mf.gov.pl i powiedzieć mi, jak się mają te wyskakujące okienka do wymienionych przez Pana funkcji :)

"Niestety w propozycjach nowelizacji ustawy o podpisie elektronicznym sugeruje się rezygnację z root`a krajowego. "

Zależy jaka jest motywacja takiego posunięcia. Proszę pamiętać, że uruchomienie każdego z publicznych CA kosztowało kilkanaście milionów złotych (Signet - 12 mln), a roczne utrzymanie to minimum kilka milionów (Centrast - 8 mln rocznie).

Taka sytuacja trwa od 2001-2002 roku, więc łatwo policzyć jakie koszty poniosły polskie centra certyfikacji. I łatwo policzyć ile na tym zarobiły - sprzedało się ok. 20 tys. certyfikatów kwalifikowanych (zupełnie przypadkiem wszyscy sprzedają je po 190 zł netto), co daje ok 4 mln złotych do podziału na cztery centra.

Jak widać do Francuzów taki bilans przemówił i zamknęli Signet.

Budżet państwa również ponosi koszty, choćby działalności Centrastu - zwinięto go jako społkę i wcielono w struktury NBP, więc zaoszczędzono na pensjach zarządu, ale utrzymanie instrastruktury technicznej nadal kosztuje.

Nasuwa się pytanie: i co z tego mamy? Jak na razie - nic, co przyniosłoby realne oszczędności, ułatwiednia dla biznesu i zwiększenie konkurencyjności. A właśnie po to robimy to wszystko co robimy.

Od pewnego czasu mam wrażenie, że problem europejskiego - więc także i naszego - prawodawstwa polega na tym, że jest ono stanowione nie w odpowiedzi na konkretny popyt (rozwiązanie konkretnego problemu), tylko dla rozwiązania problemów nieistniejących, które się stwarza właśnie po to by je rozwiazać.

Warto porównać to ze sposobem stanowienia prawa w USA, gdzie kwalifikowany podpis elektroniczny istnieje w formie szczątkowej nie dlatego, że USA jest zacofane tylko dlatego że nikt go nie potrzebuje. PGP i komercyjne certyfikaty X.509 natomiast sprzedają się doskonale.

Oczywiście, Amerykanie też mają na koncie systemy absurdalnie skomplikowane i nieużywalne - na przykład IPSec, który rodził się w bólach przez 5 lat a potem przez następne 5 nikt nie mógł go w pełni zrozumieć i poprawnie zaimplementować - ale oni nie zrobili z tego prawa.

Niestety, cytowane wyżej dane ekonomiczne sugerują że konkurcyjność gospodarki jest odwrotnie proporcjonalna do środków wyłożonych na teoretyczne metody rozwiązania nieistniejącyc problemów.

"Ale bądźmy optymistami! Na wszystko trzeba czasu i w tym wypadku może to być jeszcze kilkanaście lat."

Tylko że możemy nie mieć tych kilkunastu lat na radosny development :)

A jedno i drugie prowadzi niestety do takich zjawisk:

Ktoś wziął i stracił pracę w Polsce, ktoś zyskał ją na Ukrainie. Innymi słowy, nadregulacja, skomplikowane prawo i - w naszej branży - nieużywalne technologie prowadzą do wymiernych strat.

Michale, spójrz na to z punktu widzenia usera. W przypadku PGP sprawa jest dość prosta: instalacja, wygenerowanie klucza, wysłanie mailem na serwera albo do kontrahenta. Procedurę da się opisać w sposób prosty i zrozumiały, a aplikacja (np. GPG4Win) jest self-embedded - tzn. pozwala na zarządzanie kluczami oraz korzystanie z nich.

W przypadku X.509 użytkownik ma klienta z wbudowanym S/MIME (OE, Thunderbird) ale gdy chce go użyć to natrafia na barierę zarządzania kluczami - skąd wziąć certyfikat? Jak go wygenerować? Aplikacje, zgodnie z filozofią X.509, kierują go do publicznych CA (np. OE), a tam trzeba płacić. Oczywiście, ja przy pomocy openssl stawiam całe drzewo w pełni poprawnych certyfikatów w jakieś 3 minuty, ale z punktu widzenia osoby nie mającej choćby podstaw X.509 to co robię to magia. Bariera używalności w tym przypadku jest znacznie wyższa.

Prowadzi to do kilku zjawisk:

  • erozji zaufania, która przejawia się tym że część serwisów stawia certyfikaty nienależące do "publicznych - komercyjnych" drzew PKI (np. e-Poltax) i tym samym przyzwyczaja użytkowników do klikania okej, okej; wyrabianie takich nawyków prowadzi to lekkomyślnego traktowania X.509, a to oczywiście jest prezent dla phisherów
  • rezygnowania z X.509 na rzecz OpenPGP w sytuacji, gdy rzeczywiście użytkownik musi coś zabezpieczyć; casus moich znajomych audytorów - też brałem w tym udział, więc mogę powiedzieć że zarówno w bankach jak i dużych telekomach klienci reagowali dość alergicznie na propozycje stosowania S/MIME - kończyło się na OpenPGP
  • rezygnowania ze stosowania podpisu i szyfrowania w ogóle

Moim zdaniem trafiłeś w samo sedno: problem nie leży w formacie danych, tylko w oprogramowaniu do zarządzania tymi danymi. Jakiś miesiąc temu otworzyłem manuala do GnuPG i zacząłem czytać jak usunąć z klucza mój adres email u byłego pracodawcy. Udało się, oczywiście, ale po tym doświadczeniu OpenSSL wydaje mi się całkiem intuicyjny. 8-)

Zobacz też http://www.rapidssl.com/index_ssl.htm

W kwestii erozji zaufania: jestem przekonany, że to kwestia liczby i rozproszenia organizacyjnego podmiotów, z którymi się komunikujesz, a nie formatu kluczy/certyfikatów.

Niestety muszę się zgodzić. Poziom komplikacji PKI opartego o X.509 jest ogromny. Oprogramowanie i sposób jego działania skomplikowany. Cały problem polega na tym, że wytworzenie dobrego i prostego w użyciu oprogramowania opartego o X.509 jest drogie i wymaga dużej wiedzy. Zarówno z pieniędzmi jak i z wiedzą jest nieszczególnie dobrze.
Pozostaje jeszcze problem braku standardów (np. jeśli chodzi o formaty dokumentów) i nieścisłości niektórych specyfikacji. Do tego jeszcze nasza nieszczęsna Ustawa o Podpisie Elektronicznym.
Ale bądźmy optymistami! Na wszystko trzeba czasu i w tym wypadku może to być jeszcze kilkanaście lat.

Akurat pomysł "kilkuset niezależnych drzew certyfikacji" jest moim zdaniem całkiem niezły - może dlatego, że bliższy idei PGP niż X.509. Klient wybierając przeglądarkę ufa jej producentowi (inaczej nie używałby jego przeglądarki). Z przeglądarką klient dostaje predefiniowany zestaw zaufanych CA, który może dosyć wygodnie edytować dodając do niego nowe CA lub usuwając te, które uznaje za zbyt słabe. Analogia do zarządzania keyringiem PGP jest chyba widoczna - tylko zamiast zaczynać od zera dostajemy predefiniowaną listę zaufanych podpisywaczy (signers).

Generalnie w małych zastosowaniach, w których można bezpośrednio wymienić klucze pomiędzy zainteresowanymi stronami, X.509 daje się użyć równoważnie do PGP. Wystarczy przestać się upierać przy budowaniu hierarchii i bezpośrednio wymienić się certyfikatami. Może nie jest to rozwiązanie szczególnie efektowane, ale za to proste (co jest warunkiem koniecznym bezpieczeństwa).