THM - Kryptografia
W kolejnym module na platformie TryHackMe zgłębiamy podstawy kryptografii. Po omówieniu filarów Triady CIA naturalnie nasuwa się pytanie: w jaki sposób w praktyce chronić poufność danych oraz weryfikować ich integralność w świecie, w którym informacje nieustannie przemieszczają się przez dziesiątki niezaufanych urządzeń i sieci?
Odpowiedzią na te wyzwania jest kryptografia – dziedzina łącząca matematykę i informatykę w celu zabezpieczania informacji przed nieuprawnionym dostępem oraz modyfikacją.
Podstawowe pojęcia kryptograficzne
Zrozumienie mechanizmów kryptograficznych opiera się na kilku kluczowych pojęciach:
- Tekst jawny (Plaintext) – pierwotna, w pełni czytelna informacja (np. treść dokumentu, hasło lub zapis historii medycznej pacjenta).
- Szyfrogram (Ciphertext) – zaszyfrowana postać wiadomości, która dla osoby nieposiadającej właściwego klucza stanowi nieczytelny, pozornie losowy ciąg znaków.
- Algorytm szyfrujący (Algorithm) – publicznie znany zestaw reguł i operacji matematycznych określających sposób przekształcania tekstu jawnego w szyfrogram oraz procedurę odwrotną (deszyfrowanie).
- Klucz kryptograficzny (Key) – tajny parametr sterujący działaniem algorytmu. To unikalny sekret, który decyduje o finalnym wyniku szyfrowania i jako jedyny umożliwia odtworzenie tekstu jawnego.
W myśl fundamentalnej zasady Kerckhoffsa bezpieczeństwo systemu kryptograficznego nie może zależeć od ukrywania algorytmu, lecz wyłącznie od zachowania tajności klucza. Współczesne algorytmy są publicznie dostępne i poddawane wieloletnim badaniom przez ekspertów na całym świecie.
Dla zilustrowania tej reguły często przytacza się historyczny szyfr Cezara, polegający na przesunięciu liter alfabetu o stałą liczbę pozycji (będącą kluczem). Choć prostota tego mechanizmu ułatwia zrozumienie relacji między algorytmem a kluczem, we współczesnych systemach szyfr ten nie zapewnia żadnej ochrony ze względu na trywialność jego złamania. Nowoczesne standardy, takie jak AES, operują na nieporównywalnie bardziej złożonych przekształceniach matematycznych.
Szyfrowanie symetryczne
Najbardziej intuicyjnym podejściem do ochrony danych jest kryptografia symetryczna:
- Szyfrowanie symetryczne (Symmetric Encryption) – model, w którym dokładnie ten sam tajny klucz jest wykorzystywany zarówno do szyfrowania, jak i deszyfrowania wiadomości. Działa to jak tradycyjna skrytka zamykana na kłódkę – każdy, kto posiada kopię klucza fizycznego, może ją zamknąć lub otworzyć.
Główną zaletą algorytmów symetrycznych jest ich wysoka wydajność i szybkość przetwarzania. Z tego względu idealnie sprawdzają się one przy szyfrowaniu dysków, baz danych oraz masowego ruchu sieciowego.
Model ten stawia jednak przed nami poważne wyzwanie:
- Problem dystrybucji klucza (Key Distribution Problem) – konieczność bezpiecznego przekazania współdzielonego sekretu odbiorcy przed rozpoczęciem komunikacji. Przesłanie klucza jawnym kanałem naraża go na przechwycenie przez podsłuchującego, a próba zaszyfrowania go kolejnym kluczem prowadzi do nieskończonego regresu.
Szyfrowanie asymetryczne
Rozwiązaniem problemu wymiany kluczy jest kryptografia asymetryczna, wykorzystująca parę powiązanych matematycznie kluczy:
- Klucz publiczny (Public Key) – klucz jawny, który można swobodnie udostępniać każdemu. Służy do szyfrowania wiadomości przeznaczonych dla właściciela klucza lub do weryfikacji jego podpisu cyfrowego.
- Klucz prywatny (Private Key) – ściśle strzeżony sekret znany wyłącznie właścicielowi. Tylko za jego pomocą można odszyfrować dane zabezpieczone odpowiadającym mu kluczem publicznym.
Świetną analogią szyfrowania asymetrycznego jest uliczna skrzynka na listy. Szczelina wrzutowa (klucz publiczny) jest powszechnie dostępna – każdy może wrzucić list, ale nikt z zewnątrz nie może go wyjąć. Dostęp do zawartości skrzynki ma wyłącznie listonosz posiadający unikalny klucz do drzwiczek (klucz prywatny). Dzięki temu nadawca i odbiorca nie muszą wymieniać wspólnego sekretu przed nawiązaniem bezpiecznego kontaktu.
Podejście hybrydowe: HTTPS i certyfikaty cyfrowe
W nowoczesnej inżynierii bezpieczeństwa nie wybiera się pomiędzy wydajnością a wygodą wymiany kluczy – łączy się oba modele w tzw. szyfrowanie hybrydowe.
Najpowszechniejszym przykładem zastosowania tego podejścia jest protokół HTTPS zabezpieczający komunikację w przeglądarce:
- Szyfrowanie hybrydowe (Hybrid Encryption) – połączenie kryptografii asymetrycznej (do bezpiecznego uzgodnienia jednorazowego klucza symetrycznego podczas nawiązywania połączenia) z kryptografią symetryczną (do szybkiego szyfrowania właściwego transferu danych w trakcie trwania sesji).
- Certyfikat cyfrowy (Digital Certificate) – cyfrowy dokument wiążący klucz publiczny serwera z jego tożsamością domenową, podpisany przez zaufany urząd certyfikacji (Certificate Authority – CA).
- Urząd certyfikacji (Certificate Authority) – zaufana instytucja potwierdzająca autentyczność certyfikatu, co chroni użytkowników przed atakami typu man-in-the-middle i podszywaniem się pod fałszywe witryny.
Dzięki synergii obu mechanizmów codzienne korzystanie z bankowości elektronicznej, poczty czy sklepów internetowych pozostaje zarówno bezpieczne, jak i wysoce wydajne.