Podpis elektroniczny.

Ostatnio zainteresowałem się kwestią podpisu elektronicznego. Podziwiam zamysł twórców. Zapewnili sobie stały dopływ darmowej gotówki na kilka pokoleń wprzód (a przynajmniej do czasu, aż znajdzie się ktoś inteligentny na odpowiednim stanowisku).

O co chodzi? Jak nie wiadomo o co chodzi, to zazwyczaj chodzi o kasę. Podpis elektroniczny możemy składać wyłącznie posługując się uwiarygodnionym certyfikatem. Za taki certyfikat należy zapłacić. Opłata jest związana z koniecznością utrzymania scentralizowanej infrastruktury.

Zastanawiam się co przeszkadza w używaniu zdecentralizowanego systemu w rodzaju PGP. W tym przypadku zaufanie do klucza buduje się na podstawie wzajemnych podpisów składanych przez użytkowników pod kluczami swoich znajomych. Załóżmy, że posiadam pełne zaufanie do Bartka i wiem, że jego klucz znajdujący się w mojej bazie na pewno jest jego, bo wręczył mi go osobiście. Jeśli więc dostanę klucz Agnieszki podpisany przez Bartka, to mogę mieć pewność, że ten klucz na pewno należy do Agnieszki i korespondencja nim podpisywana faktycznie od niej pochodzi.

Zdecentralizowany system umożliwia łatwe symulowanie systemu centralnego. Załóżmy, że tworzę parę kluczy - prywatny będzie mi służył do podpisywania, publiczny będzie umożliwiał zweryfikowanie mojego podpisu przez innych (dowiedz się więcej na temat podpisów cyfrowych). Jeśli zależy mi na tym (lub jest to wymagane np. przez ZUS), mógłbym teraz wziąć mój klucz publiczny (który jest nierozerwalnie związany z prywatnym), pójść do urzędu i przedstawiając dowód osobisty poprosić o potwierdzenie, że to faktycznie mój klucz. Pani w okienku taka operacja powinna zająć kilka sekund. Do domu wróciłbym już z kluczem podpisanym przez państwowy urząd. Teraz mógłbym już wystawić ów klucz do publicznej wiadomości. Każdy, kto dostałby podpisaną przeze mnie korespondencję widziałby urzędową autoryzację - dokładnie tak jak teraz widzi w certyfikatach używanych do składania elektronicznego podpisu (słowo "klucz" zostało zastąpione przez "certyfikat"). Jaki więc był problem, żeby wdrożyć PGP? Bo nikt by nie zarobił, tak?

Jeśli mylę pojęcia i jestem niedoinformowany, to proszę mnie oświecić :) Chciałbym wierzyć, że są jakieś obiektywne przesłanki przemawiające za centralnym systemem (pomijam kwestię, że nieco łatwiej zaimplementować to w prawodawstwie - interesują mnie wyłącznie kwestie praktyczne z punktu widzenia informatyki).

KOMENTARZE:

moher | 14 kwietnia 2008, 15:16:12

Plusem systemu centralnego jest odpowiedzialność finansowa centrów certyfikacyjnych.

Jajcuś | 14 kwietnia 2008, 15:31:32

Czyli chcąc korzystać z banku internetowego chciałbyś musieć najpierw udać się do siedziby banku po certyfikat?
Centra certyfikacyjne mają sens. Inna sprawa, że podpis elektroniczny w postaci jaką zafundował nam nasz rząd, już nie bardzo.

Tomasz Wysocki | 14 kwietnia 2008, 16:48:08

"pójść do urzędu i przedstawiając dowód osobisty poprosić o potwierdzenie, że to faktycznie mój klucz. Pani w okienku taka operacja powinna zająć kilka sekund. Do domu wróciłbym już z kluczem podpisanym przez państwowy urząd."

To też jest system centralny. Poza tym skoro dostęp do klucza prywatnego państwa ma "pani z okienka" (nie istotne czy bezpośrednio, czy przez procedurę), nie jest to system o najwyższym stopniu bezpieczeństwa.

Minder | 14 kwietnia 2008, 17:22:04

@Jajcuś: korzystanie z banku elektronicznego opiera się na SSL, który jest hybrydową implementacją szyfrowania z kluczem publicznym. Więcej informacji: http://muflon.photosite.pl/doc/progzesp/ssl.html

@TomWys: Podpisywany byłby klucz publiczny - tak jak w PGP/GPG. Proszę czytać ze zrozumieniem.

We wpisie chciałem poruszyć przede wszystkim problem odpłatnego potwierdzania kluczy. System używany w PGP nie jest całkowicie centralny i bazuje na wzajemnym zaufaniu.

Jeśli urząd państwowy udostępniałby na swojej stronie swój klucz publiczny, to za jego pomocą można by było weryfikować podpisy urzędu pod innymi kluczami (publicznymi) i w ten sposób określać czy dany klucz naprawdę należy do danej osoby. Nie interesuje mnie klucz prywatny danej osoby, mimo że został on użyty do złożenia podpisu. Mnie interesuje czy klucz publiczny tej osoby faktycznie do niej należy - bo to kluczem publicznym weryfikuje się podpis. A klucz publiczny generowany jest na podstawie prywatnego. Ergo jeżeli urząd potwierdza autentyczność klucza publicznego, to równocześnie poświadcza autentyczność klucza prywatnego.

Jajcuś | 14 kwietnia 2008, 18:24:32

Minder: Nie musisz mi tłumaczyć co to SSL. Podejrzewam, że wiem na ten temat więcej od Ciebie (chociażby dlatego, że implementowałem StartTLS dla klienta XMPP). Celowo podałem przykład banktów internetowych korzystających z SSL, bo bezpieczeństwo ich serwisów jest oparte właśnie o PKI i centrów certyfikacyjnych.
Dalej piszesz "Jeśli urząd państwowy udostępniałby na swojej stronie swój klucz publiczny...". No tak, a jak potwierdzić, że to jest strona urzędu i klucz opublikowany przez urząd? Pewnie zwykłe "http://" nie wystarczy... a więc co SSL? Do tego trzeba certyfikat... self-signed? Nie, to żadne potwierdzenie autentyczności. Trzeba więc certyfikat od znanego CA... ooops, jednak potrzebne centrum certyfikacyjne. Tyle, że zamiast centrów ustanowionych/potwierdzonych przez państwo mamy zagraniczne firmy prywatne i "widzimisie twórców przeglądarek"...

Minder | 15 kwietnia 2008, 15:37:51

@Jajcuś: przecież właśnie o tym mówię. Dlaczego CA najwyższego rzędu nie może być państwo? Dlaczego muszę korzystać z prywatnych firm? A kto potwierdza autentyczność CA? Czy nie jest to jednak państwo? A jeśli to państwo autoryzuje CA, to dlaczego nie może autoryzować bezpośrednio podpisów obywateli? Po co taki skomplikowany i drogi system? Bo Amerykanie wcześniej to wymyślili i boimy się myśleć po swojemu?

Jajcuś | 15 kwietnia 2008, 15:40:27

Minder: Uwierzytelnianie obywateli bezpośrednio przez państwo raczej nie byłoby optymalne i tanie. Patrz ZUS itp.

Minder | 15 kwietnia 2008, 16:34:50

@Jajcuś: a teraz jest tanie i optymalne? Optymalne byłoby wtedy, gdybym za podpisanie swojego klucza płacił 5zł na dowolny okres czasu (a co mi tam, może być nawet na rok), a nie 270 na rok - tyle to mogą płacić firmy, których weryfikacja może wymagać więcej zachodu. Komputeryzacja ZUSu zapewni byt jeszcze 10 pokoleniom, bo jest robiona komplenie nieudolnie, a i tak jej przedmiot jest nieprzystający do tematu dyskusji. W ZUSie trzeba stworzyć bazę i oprogramowanie. Do PGP trzeba postawić serwer na istniejącym oprogramowaniu. Więc gdzie jest ta kosztowność i nieoptymalność? Że trzeba by było nauczyć panią Krysię co ma sprawdzić i gdzie kliknąć? No błagam.

Tomasz Wysocki | 15 kwietnia 2008, 18:55:20

Minder:
Czytam ze zrozumieniem. System, w którym wszyscy użytkownicy, są potwierdzani przez pojedynczego użytkownika (urząd) *jest* systemem centralnym. Nawet jeśli wszystko zaimplementujesz za pomocą systemu zdecentralizowanego (gpg). Mówiąc inaczej: system centralny to taki system, gdzie działanie całego systemu opiera się na jednym uczestniku systemu. Tutaj tym uczestnikiem byłby urząd.

Jeśli masz jakieś argumenty, na to, że się mylę - słucham.

Jajcuś | 15 kwietnia 2008, 18:58:11

... i do takiego systemu centralnego X509 nadaje się lepiej niż PGP, bo jedno i drugie tak zostało skonstruowane (X509 do centralnego uwierzytelniania, PGP do sieci zaufania).

Minder | 15 kwietnia 2008, 19:03:24

W porządku. Jednak wyjaśnijcie mi co przemawia za nabijaniem kasy prywatnym centrom certyfikacyjnym? Dlaczego zwykły obywatel nie może w prosty i tani sposób otrzymać kwalifikowanego certyfikatu, którym mógłby podpisywać choćby wysyłane do US zeznanie podatkowe? No chyba że jestem niedoinformowany?

Tomasz Wysocki | 15 kwietnia 2008, 19:41:42

Nie znam dokładnie obecnej sytuacji. Jednak to dobrze, że tej operacji nie wykonuje państwo, tylko prywatna firma. Nie wiem czy obecnie ceny są zawyżone, czy też faktycznie jest to powiązane z kosztami. Jeśli ceny są zawyżone, to prawdopodobnie wynika to ze zbyt małej konkurencji na tym polu (monopolu?).

Jednak z czasem ceny tego typu usług powinny zacząć maleć. A naprawdę lepiej jest, jeśli to firma organizuje wszystko (bo wtedy dba się o minimalizowanie kosztów), niż gdyby wszystko było robione za pieniądze podatników (nawet gdyby była opłata, była by ona stała, a nie proporcjonalna do kosztów).

Jajcuś | 15 kwietnia 2008, 19:50:31

Obecna sytuacja jest taka, że prawo wymaga bardzo dużo od centr certyfikacyjnych w kwestii odpowiedzialności finansowej, różnych wewnętrznych procedur bezpieczeństwa itp., co naturalnie zmniejsza konkurencje (mało kto jest w stanie spełnić wymyślne wymagania).
Jednocześnie te same przepisy nie precyzują takich podstawowych spraw jak format podpisu elektronicznego, więc każdy z dostawców daje co innego i rozwiązanie jednego jest niezgodne z drugim.
Dodatkowo wszędzie gdzie praktyczne byłoby użycie podpisu elektronicznego prawo wymusza "podpis kwalifikowany", który jest często zupełnie niepraktyczny (jest tak "hiper-super bezpieczny", że musi być drogi i wygodniej jest często podpisać papier ręcznie i wysłać pocztą niż korzystać z drogi elektronicznej). Np. faktury elektroniczne wymagają kwalifikowanego podpisu (a więc, o ile się dobrze orientuję, i konkretnej osoby z kartą chipową potwierdzającej każdą fakturę z osobna), gdy faktura papierowa nie wymaga podpisu w ogóle...
I skoro podpis elektroniczny (ten "państwowy") jest tak bardzo niewygodny, to jest i niepopularny. Używają go tylko ci co naprawdę muszą, co czyni odpowiednie certyfikaty produktem niszowym. To dalej podbija cenę.

Gosia | 16 kwietnia 2008, 11:02:40

Akurat scentralizowana infrastruktura *jest* potrzebna. Powiedz, jak sobie wyobrażasz unieważnianie certyfikatów bez niej? Innymi słowy - co jeśli klucz prywatny Bartka został wykradziony? Poczta pantoflowa nie jest ani całkowicie wiarygodna, ani szybka czy skuteczna. A że centra pobierają opłaty? Udostępniają pewną komercyjną usługę, a za usługi się płaci i tyle.

DODAJ KOMENTARZ: