Podpis cyfrowy (elektroniczny)
W transakcjach wykonywanych za pomocą komputera podpis cyfrowy (zwany również podpisem elektronicznym) jest niezaprzeczalnym dowodem jej wykonania przez konkretną osobę.
Podpis cyfrowy musi spełniać te same warunki co podpis odręczny, tzn. powinien być trudny lub niemożliwy do podrobienia, umożliwiać weryfikację i na trwałe łączyć się z dokumentem. Praktyczne formy podpisów cyfrowych stały się dostępne dzięki rozwojowi kryptografii z kluczem publicznym i polegają na dołączeniu do dokumentu skrótu, zaszyfrowanego kluczem prywatnym strony podpisującej.
Bezpieczny podpis cyfrowy jest bardziej wiarygodny od podpisu ręcznego złożonego w placówce banku.
Podpis cyfrowy jest jedną z metod zapewniających bezpieczeństwo w transakcjach finansowych.
Uwierzytelnianie (np. za pomocą tokena) nie jest podpisem cyfrowym.
Definicja podpisu cyfrowego wg PN-I-02000 (Polska Norma)
"Przekształcenie kryptograficzne danych umożliwiające odbiorcy danych sprawdzenie autentyczności i integralności danych oraz zapewniające nadawcy ochronę przed sfałszowaniem danych przez odbiorcę."
Cztery główne warunki podpisu cyfrowego:
uniemożliwienie podszywanie się innych pod daną osobę (uwierzytelnienie osoby, autentyfikacja),
zapewnienie wykrywalności wszelkiej zmiany w danych transakcji (integralność transakcji),
zapewnienie niemożliwości wyparcia się podpisu przez autora,
umożliwienie weryfikacji podpisu przez osobę niezależną.
Podpis cyfrowy to kilkanaście bajtów dołączonych do transakcji.
Działanie podpisu cyfrowego
Poniżej znajduje się uproszczony sposób działania podpisów cyfrowych z funkcją skrótu.
Do podpisu cyfrowego potrzebny jest klucz asymetryczny (tzw. para kluczy publiczny/prywatny). Klucz prywatny jest znany tylko użytkownikowi i jego poufność jest jednym z najważniejszych elementów bezpieczeństwa podpisu. Klucze używane do podpisu są inne niż klucze używane w protokole SSL.
Wszystkie dane operacji (np. kwota przelewu, numery rachunków) są formatowane w ciąg bitów. Na podstawie sformatowanych danych algorytm haszujący generuje unikalną krótką wartość hash (np. algorytm MD5 generuje wartość 128-bitową). Następnie hash jest szyfrowany za pomocą klucza prywatnego użytkownika (np. RSA). Zaszyfrowana wartość hash jest podpisem cyfrowym danej transakcji. Wszystko to powinno odbywać się na komputerze użytkownika (czyli w środowisku WWW może to robić applet), następnie dane operacji wraz z elektronicznym podpisem są transmitowane do serwera banku.
Generowanie podpisu cyfrowego
W serwerze banku następuję weryfikacja prawdziwości podpisu. Na podstawie sformatowanych danych operacji generowany jest hash A. Podpis cyfrowy jest odszyfrowany za pomocą klucza publicznego użytkownika i otrzymana wartość to hash B. Jeśli obie wartości hash są równe, to podpis jest prawidłowy, a operacja zostaje wykonana.
Weryfikacja podpisu cyfrowego
Certyfikat udzielany kluczowi klienta zapewnia jego autentyczność, powoduje jego uwierzytelnienie. Certyfikaty wydawane są przez zaufane Urzędy Certyfikacji (ang. Certification Authority - CA).
Algorytm haszujący zapewnia, że wszelkie modyfikacje w danych transakcji zostaną wykryte. Zaszyfrowanie wartości hash uniemożliwa jednoczesne zmiany w danych transakcji i odpowiednie do tych zmian podrobienie podpisu cyfrowego.
Kryptograficzne karty elektroniczne (SmartCard)
Kryptograficzne karty elektroniczne posiadają sprzętowe wspomaganie podpisu cyfrowego i zapewniają bezpieczne przechowywanie klucza prywatnego.
Najbardziej newralgicznym elementem systemu z podpisem cyfrowym jest tajność klucza prywatnego. Jego wykradnięcie umożliwia podszywanie się pod innego użytkownika. Klucz zapisany w karcie nie wydostaje się nigdy na jej zewnątrz, gdyż generowanie podpisu cyfrowego następuje wewnątrz mikroprocesora karty, która ma zaszyte algorytmy kryptograficzne. Dodatkowo każde użycie karty wymaga podania hasła.
Datakey - rozwiązanie do przechowywania klucza prywatnego dla e-maila
na karcie elektronicznej
Co nie jest podpisem cyfrowym
Kombinacja dwóch elementów: identyfikator użytkownika, hasło.
Słabe zabezpieczenie przed podszywaniem.
Istnieje możliwość modyfikacji transakcji po jej przyjęciu przez serwer banku, a przed jej realizacją w głównym systemie bankowym (gdzie następuje jej zaksięgowanie i np. przekazanie do KIR'u). Czyli nie ma zapewnionej integralności transakcji.
Kombinacja trzech elementów: identyfikator użytkownika, hasło użytkownika, liczba tokena (token zawiera algorytm symetryczny).
Wysokie zabezpieczenie przed podszywaniem. Brak integralności danych transakcji od chwili wysłania danych z przeglądarki, w czasie transmisji danych przez sieć dane są zaszyfrowane, następnie są zapisywane w systemie internetowym banku (włamując się do systemu internetowego banku można ingerować w transakcję przed przekazaniem jej do głównego systemu bankowego).