W tym artykule wyjaśnię zasadę działania i tego skąd bierze się to bezpieczeństwo.
Rola certyfikatu SSL na stronie internetowej
SSL czyli (Secure Socket Layer) zabezpiecza transmisję danych w Internecie. Po pierwsze, ochrona ta polega na szyfrowaniu danych. Szyfrowanie zaś uniemożliwia przechwycenie przesyłanych danych i o to w tym wszystkim chodzi. To dlatego przy tematach RODO, (gdzie prywatność użytkownika Internetu jest traktowane jako najwyższe dobro) często wspomina się o tym zabezpieczeniu. Po drugie, SSL wymaga uwierzytelnienia (ang. authentication) czyli potwierdzenia zadeklarowanej tożsamości. Tożsamość o której mowa, to nic innego jak konkretny serwer lub przeglądarka internauty czyli tym samym osoba korzystająca se strony, sklepu czy aplikacji internetowej. Dzięki temu mamy pewność, że nikt się nie „podszywa” za którąkolwiek ze stron komunikacji. Po trzecie SSL zapewnia integralność danych, czyli to, aby była praktycznie nie możliwa ich manipulacja czyli zmiana „w locie”.
Jak można przechwycić jawnie przesyłane dane?
Przechwycenie danych jest możliwe za pomocą Snifferów, czyli programów lub narzędzi do podsłuchiwania transmisji – jednym z takich narzędzi jest np tcpdump cz Wireshark. Są one w stanie analizować dane na poziomie łącza danych i przy odrobinie wysiłku da się z całego zapisu transmisji wydobyć informacje. Zarówno to co otrzymujemy z Internetu (np. poufne informacje w bankowości elektronicznej) oraz to co wysyłamy: loginy, hasła w formularzach a także pliki.
Szyfrowanie czyli poufność
Załóżmy, że korzystamy ze sklepu internetowego i podajemy numer karty kredytowej oraz numer CVV (Card Verification Value) w przypadku Visy lub numer CVC (Card Validation Code) w przypadku MasterCard. Takie dane są wartościowe dla potencjalnych przestępców dlatego nie powinno się ich przesyłać w sposób jawny (lub można powiedzieć otwarty). Mają one być do wglądu tylko dla systemu obsługującego/rejestrującego płatność.
Integralność
Integralność czyli ochrona przed wprowadzaniem nieautoryzowanych zmian (a także ochrona przed przypadkowymi zniekształceniami) jest możliwa dzięki algorytmom HMAC (Hash Message Authentication Code). Działają one tak, że wykonują jednokierunkową funkcję skrótu, która zajmuję mało miejsca ale jest w stanie wyłapać najmniejszą zmianę w przesyłanych danych. Czytaj więcej o funkcjach skrótu w źródłach.
Dlaczego nie można odszyfrować danych podsłuchując transmisję?
Ponieważ osoba przechwytująca dane może „widzieć” tylko certyfikat SSL i klucz publiczny. Nie widzi klucza prywatnego dzięki strukturze PKI (Public Key Infrastructure) i jego asymetrycznej kryptografii. O tym jak działa kryptografia asymetryczna opisałem poniżej w punktach.
Załóżmy, że łączymy się teraz z serwerem, na którym jest zainstalowany i poprawnie wdrożony certyfikat SSL. W przeglądarce widzimy zieloną kłódkę.

Upraszczając sprawę do minimum wygląda to tak że:
Jeżeli pobieramy dane z Internetu, to serwer prosi naszą przeglądarkę o nasz klucz publiczny – dzięki niemu może zaszyfrować dla naszej przeglądarki wszystkie przesyłane informacje. Następnie przesyła je, a kiedy nasza przeglądarka otrzymuje zaszyfrowane dane, używa do jej odszyfrowania naszego klucza prywatnego, który nigdy nie jest nikomu udostępniany.
Kiedy to my wysyłamy np. dane z formularza to sytuacja jest odwrotna. Nasza przeglądarka pobiera klucz publiczny serwera – dzięki niemu może ona zaszyfrować dane w taki sposób, że tylko serwer z którym nawiązano połączenie będzie je mógł odszyfrować. Przesłane dane są odszyfrowywane za pomocą klucza prywatnego serwera.
Pary kluczy publicznych i kluczy prywatnych są ze sobą ściśle powiązane ale są tworzone według takich obliczeń matematycznych, że nie można łatwo otrzymać klucza prywatnego na podstawie klucza publicznego i próbki danych. Opracowany sposób obliczeń i długość kluczy powoduje, że próba rozszyfrowania danych bez klucza prywatnego (czyli odgadnięcie klucza prywatnego) wiązała by się z ogromnym nieopłacalnym wysiłkiem. Natomiast samo szyfrowanie / deszyfrowanie za pomocą kluczy nie jest procesem skomplikowanym.
Klucz, który odpowiada za szyfrowanie danych nie jest w stanie ich potem odszyfrować – może to zrobić jedynie przy użyciu klucza prywatnego – stąd się wzięło określenie szyfrowanie asymetryczne.
Ważna uwaga: oczywiście nie szyfrujemy wszystkich danych w sposób asymetryczny, pochłaniało by to zbyt dużo zasobów, tak naprawdę asymetrycznie szyfrowany jest inny klucz symetryczny.
Skoro każdy ma swoje klucze, to po co jakiś dodatkowy certyfikat?
Przechodząc w końcu do meritum sprawy, certyfikat, który jest wydawany przez zaufaną stronę trzecią, czyli instytucje zajmujące się certyfikowaniem (dlatego certyfikaty są najczęściej płatne) potwierdza, że klucz publiczny, który jest przesyłany do naszej przeglądarki, którymi szyfrujemy dane to faktycznie klucz tego serwera. Dzięki temu nie da się podrobić kluczy publicznych innych instytucji. To dlatego intruz nie potrafi przesłać do swojej ofiary klucza publicznego ze swojej pary kluczy i „udawać” stronę banku.
Certyfikat SSL gwarantuje nam tożsamość zdalnego komputera i udowadnia naszą tożsamość zdalnemu komputerowi.
Certyfikat klucza publicznego zawiera
- klucz publiczny podmiotu,
- opis tożsamości podmiotu,
- oraz podpis cyfrowy złożony przez zaufaną trzecią stronę na dwóch powyższych strukturach.

W związku z tym połączenie SSL z zieloną kłódką nie może być podsłuchiwane – przekracza to możliwości normalnych komputerów.
Podsumowanie
Mam nadzieję, że w miarę prosto wytłumaczyłem jak działa szyfrowanie SSL. Ten artykuł rozpoczyna serię wpisów, które ludzkim językiem tłumaczą kwestie związanie z bezpieczeństwem w Internecie. O tym jak są tworzone klucze publiczne i prywatne dowiesz się z kolejnych artykułów tej serii.
Odpowiedz lub skomentuj