1/20
Wprowadzenie do kryptografii
  • Poufność (Confidentiality) to pierwszy filar triady bezpieczeństwa CIA.
  • Głównym narzędziem inżyniera zapewniającym poufność danych jest kryptografia.
  • Kryptografia to nauka o zabezpieczaniu informacji przed niepowołanym dostępem.
  • Współczesne metody szyfrowania opierają się na zaawansowanych algorytmach matematycznych.
  • Technologia ta chroni nasze codzienne operacje, takie jak logowanie do banku czy płatności zbliżeniowe (NFC).
Cyfrowe zamki i matematyczne równania

Kryptografia jako dziedzina wiedzy sięga starożytności, jednak jej współczesna postać opiera się na ścisłych podstawach matematycznych i informatycznych. W kontekście triady CIA (poufność, integralność, dostępność) kryptografia stanowi główne narzędzie realizacji pierwszego z tych filarów, choć pośrednio wspiera także dwa pozostałe. Bez niej niemożliwe byłoby bezpieczne przeprowadzanie transakcji online, szyfrowanie poczty elektronicznej czy ochrona danych przechowywanych w chmurze obliczeniowej.

Współczesna kryptografia wykorzystuje zarówno techniki symetryczne, jak i asymetryczne, a także funkcje skrótu, które razem tworzą kompleksowy system zabezpieczeń. Należy pamiętać, że sama kryptografia nie rozwiązuje wszystkich problemów bezpieczeństwa - równie istotne są poprawne procedury zarządzania kluczami, aktualizacje oprogramowania oraz świadomość użytkowników końcowych. Inżynier bezpieczeństwa musi rozumieć ograniczenia poszczególnych algorytmów i umieć dobrać odpowiednią metodę szyfrowania do konkretnego zastosowania.

2/20
Podstawowe pojęcia kryptograficzne
  • Tekst jawny (Plaintext) to czytelna wiadomość przed procesem szyfrowania.
  • Szyfrogram (Ciphertext) to nieczytelna postać danych powstała po zaszyfrowaniu.
  • Szyfrowanie to matematyczna transformacja tekstu jawnego w szyfrogram.
  • Algorytm kryptograficzny to zdefiniowany zbiór kroków służących do utajniania danych.
  • Klucz (Key) to tajny parametr wejściowy, który steruje działaniem algorytmu.
  • Deszyfrowanie wiadomości wymaga znajomości zarówno algorytmu, jak i odpowiedniego klucza.
Klucz szyfrujący algorytm zębatki jawny tajny proces

Zrozumienie podstawowych pojęć kryptograficznych jest niezbędne dla każdego specjalisty ds. bezpieczeństwa IT. Tekst jawny oznacza dane w ich oryginalnej, czytelnej postaci, które następnie poddawane są procesowi szyfrowania z wykorzystaniem określonego algorytmu i klucza. W wyniku tego przekształcenia powstaje szyfrogram, który dla osoby nieposiadającej odpowiedniego klucza jest całkowicie nieczytelny.

W praktyce inżynierskiej kluczowym elementem jest nie tyle sam algorytm, co długość i losowość użytego klucza. Klucz o długości 128 bitów oferuje 2^128 możliwych kombinacji, co przy obecnej mocy obliczeniowej czyni atak brute-force praktycznie niemożliwym. Należy jednak pamiętać, że samo szyfrowanie nie chroni przed innymi zagrożeniami, takimi jak kradzież klucza, ataki socjotechniczne czy błędy implementacyjne w oprogramowaniu wykorzystującym kryptografię.

3/20
Zasada Kerckhoffsa (klucz, nie algorytm)
  • Zasada sformułowana przez Augusta Kerckhoffsa to fundament nowoczesnego bezpieczeństwa kryptograficznego.
  • System kryptograficzny musi być bezpieczny, nawet jeśli jego algorytm jest publicznie znany.
  • Całe bezpieczeństwo powinno spoczywać wyłącznie w zachowaniu klucza w tajemnicy.
  • Eksperci odrzucają podejście zwane „bezpieczeństwem przez ukrywanie" (ang. security through obscurity), które polega na ukryciu samego mechanizmu szyfrowania.
  • Silne standardy, takie jak AES, są algorytmami publicznie dostępnymi i wielokrotnie poddanymi niezależnemu audytowi.
Zasada Kerckhoffsa algorytm otwarty

Zasada Kerckhoffsa, sformułowana w XIX wieku przez holenderskiego kryptografa Augusta Kerckhoffsa, pozostaje jednym z najważniejszych aksjomatów współczesnej kryptografii. Głosi ona, że system kryptograficzny powinien pozostać bezpieczny nawet wtedy, gdy przeciwnik zna wszystkie szczegóły jego działania, z wyjątkiem tajnego klucza. Jest to fundamentalne założenie, które odróżnia profesjonalną kryptografię od amatorskich rozwiązań opartych na ukrywaniu mechanizmu działania.

Podejście security through obscurity, polegające na utrzymywaniu algorytmu w tajemnicy, jest w środowisku ekspertów powszechnie krytykowane, ponieważ prędzej czy później szczegóły implementacji wyciekają lub zostają odkryte poprzez inżynierię wsteczną. Publicznie dostępne algorytmy, takie jak AES czy ChaCha20, przeszły wieloletnie audyty i analizy kryptograficzne, co daje znacznie wyższy poziom zaufania niż jakikolwiek zamknięty system. W praktyce inżynierskiej oznacza to, że należy korzystać wyłącznie ze sprawdzonych, otwartych standardów kryptograficznych.

4/20
Szyfrowanie symetryczne – jak to działa?
  • To najstarszy i najbardziej intuicyjny rodzaj ochrony danych.
  • Polega na wykorzystaniu tego samego klucza zarówno do szyfrowania, jak i deszyfrowania.
  • Nadawca i odbiorca muszą posiadać identyczną kopię tajnego klucza.
  • Główną zaletą algorytmów symetrycznych jest ich ogromna szybkość i wydajność.
  • Stosuje się je do zabezpieczania dużych zbiorów danych, np. transmisji wideo na żywo.
Szyfrowanie kluczem symetrycznym ten sam zamek

Szyfrowanie symetryczne, zwane również symetrycznym szyfrowaniem klucza, jest najstarszą i najbardziej wydajną metodą ochrony danych. Jego działanie opiera się na założeniu, że zarówno nadawca, jak i odbiorca dysponują identycznym kluczem, który służy zarówno do szyfrowania, jak i deszyfrowania informacji. Algorytmy symetryczne, takie jak AES, Blowfish czy ChaCha20, są zoptymalizowane sprzętowo i potrafią szyfrować dane z szybkością sięgającą kilkunastu gigabitów na sekundę.

Ze względu na swoją wydajność kryptografia symetryczna jest wykorzystywana wszędzie tam, gdzie przetwarzane są duże ilości danych. Przykłady obejmują szyfrowanie dysków twardych (BitLocker, FileVault), ochronę transmisji wideo w aplikacjach takich jak Skype czy Zoom oraz zabezpieczanie baz danych w chmurze. Wadą pozostaje konieczność bezpiecznego uzgodnienia klucza między stronami przed rozpoczęciem komunikacji, co w sieciach otwartych stanowi poważne wyzwanie logistyczne.

5/20
Wady symetrii: problem dystrybucji klucza
  • Największym wyzwaniem jest bezpieczne przekazanie wspólnego klucza drugiej stronie.
  • Przed wymianą danych strony muszą potajemnie uzgodnić wspólny klucz.
  • Przesłanie klucza otwartym kanałem grozi jego przechwyceniem przez intruza.
  • Osobiste dostarczanie kluczy na skalę globalną jest logistycznie niemożliwe.
  • Ten dylemat określa się mianem „problemu dystrybucji klucza" i przez dekady blokował rozwój bezpiecznej komunikacji w sieci.
Problem przekazania klucza dwóm stronom atakami

Problem dystrybucji klucza stanowił przez dekady główną przeszkodę w rozwoju bezpiecznej komunikacji na odległość. W przypadku kryptografii symetrycznej obie strony muszą dysponować tym samym kluczem, ale przekazanie go przez niezabezpieczony kanał komunikacyjny grozi przechwyceniem przez osobę trzecią. W erze przedinternetowej klucze dostarczano fizycznie za pośrednictwem kurierów, co było kosztowne, czasochłonne i podatne na przechwycenie.

Skalowalność tego problemu jest szczególnie widoczna w sieciach o wielu uczestnikach. Dla n stron komunikujących się parami potrzebnych jest n(n-1)/2 unikalnych kluczy symetrycznych, co przy tysiącach użytkowników staje się administracyjnie niewykonalne. Rozwiązaniem okazała się kryptografia asymetryczna oraz protokoły uzgadniania kluczy, takie jak Diffie-Hellman, które umożliwiły bezpieczne ustalanie wspólnych sekretów bez ich jawnego przesyłania.

6/20
Algorytm symetryczny AES (Advanced Encryption Standard)
  • AES to światowy standard szyfrowania symetrycznego, przyjęty przez amerykański instytut normalizacyjny NIST w 2001 roku.
  • Został opracowany przez belgijskich kryptografów (Joan Daemen i Vincent Rijmen) i zyskał powszechne uznanie.
  • Jest to szyfr blokowy, który przetwarza dane w blokach o wielkości 128 bitów.
  • Wykorzystuje skomplikowane operacje matematyczne i logiczne (m.in. operację XOR, czyli dodawanie modulo 2).
  • Wariant AES-256 (z kluczem o długości 256 bitów) służy do ochrony danych niejawnych najwyższej kategorii.
Logo i schemat przesuwania w AES

AES jest obecnie najszerzej stosowanym algorytmem szyfrowania symetrycznego na świecie, wykorzystywanym zarówno w aplikacjach konsumenckich, jak i w systemach rządowych. Algorytm ten operuje na blokach danych o wielkości 128 bitów, a długość klucza może wynosić 128, 192 lub 256 bitów. Proces szyfrowania składa się z kilkunastu rund przekształceń, obejmujących substytucję bajtów, przesunięcia wierszy, mieszanie kolumn oraz dodawanie klucza rundy.

Sprzętowe wsparcie dla AES jest dziś standardem w niemal każdym procesorze i karcie sieciowej dzięki rozkazom AES-NI (Advanced Encryption Standard New Instructions). Przyspiesza to operacje szyfrowania nawet kilkudziesięciokrotnie w porównaniu z implementacją czysto programową. W praktyce oznacza to, że szyfrowanie dysku systemowego czy ruchu sieciowego VPN nie powoduje zauważalnego spadku wydajności, co czyni AES doskonałym wyborem dla większości zastosowań wymagających ochrony danych.

7/20
Przełom Diffiego-Hellmana (DH) w uzgadnianiu kluczy
  • Whitfield Diffie i Martin Hellman rozwiązali problem dystrybucji kluczy przez Internet.
  • Opracowany przez nich protokół DH (Diffie-Hellman) pozwala bezpiecznie uzgodnić wspólny klucz przez publiczny kanał komunikacyjny.
  • Bezpieczeństwo protokołu Diffiego-Hellmana opiera się na trudności obliczeniowej operacji dyskretnego logarytmu na ogromnych liczbach.
  • Dzięki protokołowi DH możliwa jest w pełni poufna komunikacja między osobami, które nigdy wcześniej nie wymieniły kluczy.
Metoda matematycznego wyliczania wspólnego klucza w podgladzie

Protokół Diffiego-Hellmana, opublikowany w 1976 roku, był pierwszym praktycznym rozwiązaniem umożliwiającym bezpieczne uzgodnienie klucza kryptograficznego przez publiczny kanał komunikacyjny. Jego działanie opiera się na właściwościach arytmetyki modularnej, a konkretnie na trudności obliczeniowej problemu logarytmu dyskretnego. Dwie strony mogą niezależnie wygenerować ten sam wspólny sekret, wymieniając się jedynie wartościami pośrednimi, które nie ujawniają samego klucza.

Współczesne implementacje protokołu DH wykorzystują krzywe eliptyczne (ECDH - Elliptic Curve Diffie-Hellman), które oferują porównywalny poziom bezpieczeństwa przy znacznie krótszych kluczach niż klasyczna wersja modularna. Na przykład klucz ECDH o długości 256 bitów zapewnia bezpieczeństwo równoważne klasycznemu DH z kluczem 3072-bitowym. DH jest podstawą bezpieczeństwa TLS, IPsec, SSH oraz wielu innych protokołów używanych w dzisiejszym internecie.

8/20
Szyfrowanie asymetryczne (klucz publiczny i prywatny)
  • Kryptografia asymetryczna zamiast jednego klucza wykorzystuje parę matematycznie powiązanych kluczy.
  • Para ta składa się z ogólnodostępnego klucza publicznego oraz ściśle tajnego klucza prywatnego.
  • Dane zaszyfrowane kluczem publicznym może odczytać tylko posiadacz odpowiadającego mu klucza prywatnego.
  • Klucz publiczny może być swobodnie udostępniany każdemu użytkownikowi.
  • Klucz prywatny musi być bezwzględnie chroniony przez właściciela – jego ujawnienie łamie całe bezpieczeństwo systemu.
Prywatny i Publiczny para w logice asymetrycznej

Kryptografia asymetryczna, zwana również kryptografią klucza publicznego, zrewolucjonizowała bezpieczeństwo cyfrowe, wprowadzając koncepcję pary kluczy zamiast pojedynczego sekretu. Klucz publiczny może być swobodnie rozpowszechniany i służy do szyfrowania danych, podczas gdy klucz prywatny pozostaje w wyłącznym posiadaniu właściciela i umożliwia deszyfrowanie. Ta asymetria funkcjonalna eliminuje problem dystrybucji klucza charakterystyczny dla kryptografii symetrycznej.

W praktyce inżynierskiej klucz prywatny przechowywany jest w bezpiecznym miejscu, często w sprzętowych modułach bezpieczeństwa (HSM) lub w zabezpieczonych enklawach sprzętowych, takich jak Trusted Platform Module (TPM). Ujawnienie klucza prywatnego oznacza całkowitą kompromitację bezpieczeństwa, dlatego stosuje się wielowarstwowe mechanizmy ochrony, w tym szyfrowanie samego pliku klucza hasłem oraz dostęp dwuskładnikowy.

9/20
Jak działa poufność asymetryczna w praktyce?
  • Przykład: klient chce wysłać dokument do banku, więc pobiera jego klucz publiczny.
  • Szyfruje dane tym kluczem na swoim urządzeniu i przesyła je przez Internet.
  • Tylko bank może odszyfrować te informacje, używając swojego klucza prywatnego.
  • Ta metoda skutecznie eliminuje potrzebę fizycznego przekazywania tajnych kluczy między stronami.
  • Atakujący przechwycający transmisję widzi tylko nieczytelny szyfrogram i jawny klucz publiczny – nie może nic z nim zrobić.
Logika używania publicznego i prywatnego po obu stronach sieci

Praktyczne zastosowanie kryptografii asymetrycznej najlepiej ilustruje przykład bezpiecznej komunikacji z serwerem bankowym. Użytkownik pobiera jawnie dostępny klucz publiczny banku, szyfruje nim swoje dane logowania i przesyła je przez internet. Nawet jeśli atakujący przechwyci transmisję, zobaczy jedynie bezsensowny szyfrogram, ponieważ tylko bank posiada pasujący klucz prywatny zdolny do deszyfrowania tej wiadomości.

Należy jednak pamiętać, że sama obecność klucza publicznego nie gwarantuje autentyczności odbiorcy - atakujący mógł podstawić własny klucz publiczny zamiast prawdziwego klucza banku. Dlatego w praktyce klucze publiczne są dystrybuowane w formie certyfikatów cyfrowych podpisanych przez zaufane urzędy certyfikacji. Mechanizm ten stanowi podstawę bezpieczeństwa protokołu HTTPS, który chroni większość dzisiejszego ruchu internetowego.

10/20
Algorytm RSA i obciążenie procesora
  • Najpopularniejszym standardem asymetrycznym jest algorytm RSA (od nazwisk twórców: Rivest, Shamir, Adleman).
  • Jego bezpieczeństwo opiera się na trudności rozkładu dużych liczb na czynniki pierwsze (faktoryzacja).
  • Słabą stroną algorytmów asymetrycznych jest bardzo duże obciążenie procesora (CPU) podczas operacji kryptograficznych.
  • Szyfrowanie asymetryczne jest wielokrotnie wolniejsze od metod symetrycznych.
  • Z tego powodu RSA rzadko służy bezpośrednio do ochrony dużych strumieni danych, szczególnie na urządzeniach mobilnych i systemach Internetu rzeczy (IoT).
Rozkład na liczby pierwsze i logo RSA potęgi

Algorytm RSA, nazwany od nazwisk jego twórców Ronalda Rivesta, Adiego Shamira i Leonarda Adlemana, został opublikowany w 1977 roku i pozostaje najpopularniejszym algorytmem kryptografii asymetrycznej. Jego bezpieczeństwo opiera się na trudności faktoryzacji iloczynu dwóch dużych liczb pierwszych, co przy kluczach o długości 2048 lub 4096 bitów stanowi obliczeniowo niewykonalne zadanie dla współczesnych komputerów. Proces generowania kluczy RSA wymaga znalezienia dwóch dużych liczb pierwszych i wykonania na nich serii operacji arytmetycznych.

Głównym ograniczeniem RSA jest jego niska wydajność w porównaniu z algorytmami symetrycznymi. Operacje RSA są od kilkuset do kilku tysięcy razy wolniejsze od AES, szczególnie przy deszyfrowaniu i podpisywaniu cyfrowym. Z tego powodu w praktyce RSA nigdy nie jest używany do bezpośredniego szyfrowania dużych strumieni danych, a jedynie do szyfrowania kluczy symetrycznych (w kryptografii hybrydowej) oraz do podpisów cyfrowych. W nowszych implementacjach RSA jest często zastępowany przez kryptografię krzywych eliptycznych (ECDSA, Ed25519), która oferuje lepszą wydajność przy krótszych kluczach.

11/20
Kryptografia hybrydowa – optymalne rozwiązanie
  • Współczesne systemy łączą zalety obu metod, tworząc tzw. kryptografię hybrydową.
  • Kryptografia asymetryczna służy tu jedynie do bezpiecznego przesłania klucza sesji (klucza symetrycznego).
  • Gdy klucz symetryczny zostanie uzgodniony, reszta danych jest szyfrowana szybkim algorytmem (np. AES).
  • Podejście to zapewnia wysokie bezpieczeństwo przy minimalnym obciążeniu sprzętowym.
  • Właśnie tak działa większość bezpiecznych protokołów sieciowych, np. TLS (odpowiedzialny za HTTPS).
Kryptografia hybrydowa na stykach routerów w rynnach

Kryptografia hybrydowa łączy w sobie zalety obu światów: bezpieczeństwo uzgadniania kluczy z kryptografii asymetrycznej oraz wydajność szyfrowania danych z kryptografii symetrycznej. W typowej sesji TLS klient i serwer najpierw używają protokołu Diffie-Hellman (lub RSA) do uzgodnienia tymczasowego klucza symetrycznego, zwanego kluczem sesji. Ten klucz jest używany tylko podczas danej sesji, a następnie jest bezpiecznie usuwany, co zapewnia dodatkową ochronę poprzez doskonałą poufność (forward secrecy).

Klucz sesji jest generowany losowo dla każdego nowego połączenia, co oznacza, że nawet jeśli atakujący przechwyci klucz jednej sesji, nie będzie mógł odszyfrować danych z poprzednich ani kolejnych sesji. Mechanizm ten, znany jako perfect forward secrecy (PFS), jest standardem we współczesnych implementacjach TLS 1.3. Kryptografia hybrydowa jest również wykorzystywana w protokołach szyfrowania poczty (PGP, S/MIME), VPN (IPsec, WireGuard) oraz w systemach szyfrowania plików i komunikatorach internetowych.

12/20
Integralność i funkcje skrótu (hash)
  • Integralność to drugi filar CIA – gwarantuje, że dane nie zostały zmienione przez nikogo nieuprawnionego.
  • Narzędziem do weryfikacji integralności są funkcje skrótu (ang. hashing).
  • Funkcja skrótu generuje unikalny kod (skrót, ang. hash) o stałej długości dla dowolnego pliku wejściowego.
  • Prawidłowy skrót jest nieodwracalny – na jego podstawie nie można odtworzyć oryginalnego pliku.
  • Zagrożeniem są słabe hasła, których skróty mogą znajdować się w publicznych bazach danych (np. w serwisie CrackStation), co pozwala atakującemu na ich odgadnięcie.
Hash wrzucający tony pikseli w skrót wyjsciowy szesnastkowy

Funkcje skrótu (hash functions) są fundamentalnym narzędziem kryptograficznym służącym do zapewnienia integralności danych. W odróżnieniu od szyfrowania, które chroni poufność, funkcje skrótu tworzą unikalny, stałej długości identyfikator (skrót) dla dowolnie dużego zbioru danych wejściowych. Każda zmiana w danych wejściowych, nawet modyfikacja pojedynczego bitu, prowadzi do całkowicie innego skrótu wyjściowego, co pozwala na łatwe wykrycie manipulacji.

Współcześnie za bezpieczne uznaje się funkcje skrótu z rodziny SHA-2 (SHA-256, SHA-512) oraz nowszy standard SHA-3. Starsze funkcje, takie jak MD5 i SHA-1, zostały zdyskredytowane przez ataki kolizyjne umożliwiające znalezienie dwóch różnych wiadomości o tym samym skrócie. W praktyce inżynierskiej funkcje skrótu stosuje się do weryfikacji integralności pobieranych plików, przechowywania haseł (w połączeniu z soleniem), w podpisach cyfrowych oraz w blockchainie do łączenia bloków transakcji.

13/20
Weryfikacja plików i efekt lawiny
  • Sumy kontrolne (skróty) są powszechnie stosowane przy pobieraniu obrazów systemów operacyjnych.
  • Komputer weryfikuje pobrany plik, porównując jego skrót z wartością referencyjną podaną przez producenta.
  • Dobre funkcje skrótu charakteryzują się tzw. efektem lawiny (avalanche effect).
  • Zmiana choćby jednego bitu w pliku powoduje drastyczną zmianę całego skrótu wyjściowego.
  • Umożliwia to natychmiastowe wykrycie błędu transmisji lub celowej manipulacji w danych.
Rozjechana suma binarie różni się diametralnie literką w

Efekt lawiny (avalanche effect) jest kluczową właściwością bezpiecznych funkcji skrótu, która sprawia, że nawet minimalna zmiana danych wejściowych powoduje radykalną zmianę całego skrótu wyjściowego. W praktyce oznacza to, że zmiana jednego bitu w pliku o rozmiarze kilku gigabajtów wygeneruje skrót całkowicie różniący się od oryginalnego, co umożliwia natychmiastowe wykrycie nawet najmniejszej modyfikacji. Jest to szczególnie ważne przy pobieraniu obrazów systemów operacyjnych, gdzie producent publikuje sumę kontrolną SHA-256 do weryfikacji.

W codziennej pracy inżyniera bezpieczeństwa funkcje skrótu są wykorzystywane na wielu płaszczyznach. Systemy kontroli wersji, takie jak Git, używają skrótów SHA-1 (z opcjonalnym wsparciem SHA-256) do identyfikacji commitów i wykrywania konfliktów. Narzędzia do monitorowania integralności plików, jak Tripwire czy AIDE, przechowują bazę skrótów krytycznych plików systemowych i alarmują o każdej niezgodności, co pozwala na szybkie wykrycie włamania lub nieautoryzowanej modyfikacji.

14/20
Zapewnienie dostępności (Availability)
  • Ostatnim elementem triady CIA jest dostępność (ang. Availability).
  • Usługi i systemy muszą być sprawne zawsze wtedy, gdy są potrzebne uprawnionym użytkownikom.
  • Same szyfrowanie nie wystarczy – przerwa w działaniu serwera łamie zasadę dostępności i stanowi naruszenie bezpieczeństwa.
  • Dostępność zapewnia się poprzez zasilanie awaryjne (UPS), dublowanie łączy i redundantne klastry serwerów.
  • Kluczowe są również regularnie wykonywane i testowane kopie zapasowe (backupy).

Dostępność, trzeci filar triady CIA, jest często pomijana w dyskusjach o kryptografii, ale ma równie krytyczne znaczenie dla bezpieczeństwa systemów IT. Nawet najsilniejsze szyfrowanie nie pomoże, gdy serwer jest niedostępny z powodu ataku DDoS, awarii zasilania lub błędu konfiguracji. Zapewnienie dostępności wymaga kompleksowego podejścia obejmującego redundancję sprzętową, zapasowe źródła zasilania (UPS, generatory) oraz wielokrotne łącza sieciowe od różnych dostawców.

Kluczowym elementem strategii dostępności są regularnie testowane kopie zapasowe (backupy), przechowywane zgodnie z regułą 3-2-1 (trzy kopie, dwa różne nośniki, jedna poza lokalizacją). W kontekście kryptografii należy pamiętać, że szyfrowanie kopii zapasowych chroni je przed nieuprawnionym dostępem, ale jednocześnie utrudnia odzyskiwanie danych w sytuacji awaryjnej. Dlatego klucze deszyfrujące do backupów muszą być przechowywane w sposób bezpieczny, ale jednocześnie dostępny dla uprawnionego personelu w razie potrzeby.

15/20
Podpis cyfrowy (Digital Signature)
  • Nadawca najpierw wylicza skrót (hash) przesyłanej wiadomości.
  • Następnie szyfruje ten skrót swoim kluczem prywatnym, tworząc unikalną cyfrową „pieczęć" – podpis.
  • Odbiorca odszyfrowuje skrót kluczem publicznym nadawcy i porównuje go ze skrótem otrzymanego dokumentu.
  • Zgodność skrótów potwierdza tożsamość autora i nienaruszalność treści wiadomości.
  • Należy jednak pamiętać, że sam podpis nie gwarantuje, że klucz publiczny naprawdę należy do właściwej osoby – do tego potrzebny jest certyfikat.
Użycie prywatnego klucza w ramach pieczęci przed urzędem do szyfru skrótu HASH

Podpis cyfrowy jest kryptograficznym odpowiednikiem fizycznego podpisu odręcznego, oferującym jednak znacznie wyższy poziom bezpieczeństwa i odporności na fałszerstwa. Proces tworzenia podpisu cyfrowego polega na wygenerowaniu skrótu wiadomości, a następnie zaszyfrowaniu go kluczem prywatnym nadawcy. Odbiorca, używając klucza publicznego nadawcy, może zweryfikować zarówno autentyczność źródła, jak i integralność wiadomości - czyli upewnić się, że pochodzi ona od właściwej osoby i nie została zmodyfikowana.

Podpisy cyfrowe są powszechnie stosowane w podpisywaniu kodu oprogramowania (code signing), gdzie gwarantują, że aplikacja pochodzi od zaufanego wydawcy i nie zawiera złośliwego kodu. W systemach ERP i bankowości elektronicznej podpisy cyfrowe umożliwiają autoryzację transakcji o wysokiej wartości. W Unii Europejskiej podpisy cyfrowe zgodne z rozporządzeniem eIDAS mają moc prawną równoważną podpisowi własnoręcznemu, co otwiera drogę do w pełni cyfrowego obiegu dokumentów.

16/20
Słaby punkt: kto dostarcza klucz publiczny?
  • System asymetryczny jest najbardziej narażony podczas pierwszej wymiany kluczy.
  • Atakujący może przeprowadzić atak „człowiek pośrodku" (ang. Man-In-The-Middle, MITM).
  • Atakujący podmienia prawdziwy klucz publiczny banku na swój własny, fałszywy klucz.
  • Niczego nieświadomy użytkownik szyfruje dane dla złodzieja, zamiast dla banku.
  • Weryfikacja autentyczności długiego ciągu znaków klucza „gołym okiem" jest niemożliwa – stąd potrzeba infrastruktury PKI.
Atakujący podszywający się kluczem z boku w transmisji

Atak typu man-in-the-middle (MITM) stanowi jedno z najpoważniejszych zagrożeń dla kryptografii asymetrycznej, ponieważ atakujący może przechwycić pierwszą wymianę kluczy i podstawić własny klucz publiczny. Ofiara, myśląc że komunikuje się z bankiem, w rzeczywistości szyfruje dane dla atakującego, który następnie odszyfrowuje je swoim kluczem prywatnym, a po ewentualnej modyfikacji szyfruje ponownie prawdziwym kluczem banku. Żadna ze stron nie zdaje sobie sprawy z obecności intruza.

Rozwiązaniem tego problemu jest infrastruktura klucza publicznego (PKI), która wprowadza zaufane strony trzecie - urzędy certyfikacji (CA) - poświadczające autentyczność kluczy publicznych. Zanim bank otrzyma certyfikat, musi przejść rygorystyczną weryfikację tożsamości przeprowadzaną przez urząd certyfikacji. Przeglądarki internetowe mają preinstalowane listy zaufanych urzędów CA i automatycznie odrzucają certyfikaty od nieznanych źródeł, wyświetlając ostrzeżenie o potencjalnym zagrożeniu.

17/20
Infrastruktura klucza publicznego (PKI)
  • PKI (ang. Public Key Infrastructure – infrastruktura klucza publicznego) powstała, aby wyeliminować problem fałszywych kluczy publicznych.
  • Opiera się ona na hierarchii zaufania do zewnętrznych organów certyfikujących.
  • Niezależne organizacje pełnią rolę cyfrowych notariuszy potwierdzających tożsamość stron w sieci.
  • Bank musi przejść proces weryfikacji u zaufanego urzędu certyfikacji, aby otrzymać autoryzację.
  • Dopiero po pomyślnej weryfikacji wystawiane jest cyfrowe poświadczenie autentyczności – certyfikat.

Infrastruktura klucza publicznego (PKI) to kompleksowy system obejmujący sprzęt, oprogramowanie, procedury i ludzi, służący do zarządzania certyfikatami cyfrowymi w skali globalnej. PKI opiera się na hierarchicznym modelu zaufania, w którym korzeń zaufania stanowią główne urzędy certyfikacji (root CA), których certyfikaty są fabrycznie instalowane w systemach operacyjnych i przeglądarkach. Pod nimi znajdują się pośrednie urzędy certyfikacji (intermediate CA), które faktycznie wystawiają certyfikaty dla klientów końcowych.

W praktyce korporacyjnej PKI często przybiera formę prywatnej infrastruktury, w której firma uruchamia własny urząd certyfikacji (np. Microsoft Active Directory Certificate Services) do wystawiania certyfikatów dla pracowników i urządzeń w sieci wewnętrznej. Certyfikaty te są wykorzystywane do logowania do sieci Wi-Fi (EAP-TLS), podpisywania dokumentów wewnętrznych, szyfrowania poczty elektronicznej (S/MIME) oraz autoryzacji urządzeń w sieci korporacyjnej. Zarządzanie cyklem życia certyfikatów (wystawianie, odnawianie, unieważnianie) wymaga dedykowanych narzędzi i procedur.

18/20
Urząd certyfikacji (CA) i certyfikaty
  • Głównym punktem PKI jest Urząd Certyfikacji (ang. Certificate Authority – CA).
  • CA używa swojego podpisu cyfrowego do potwierdzenia autentyczności klucza publicznego danej instytucji.
  • W ten sposób powstaje certyfikat – cyfrowy dokument potwierdzający własność klucza przez określony podmiot.
  • Przeglądarki internetowe mają wbudowaną listę kluczy publicznych zaufanych urzędów CA.
  • Symbol kłódki na pasku adresu przeglądarki oznacza, że certyfikat strony został pomyślnie zweryfikowany.
Schemat drzewa podpisywania w urzędzie nad wydawaniem certyfikatów

Urząd certyfikacji (CA) pełni rolę cyfrowego notariusza, poświadczającego związek między kluczem publicznym a tożsamością jego właściciela. Proces wydania certyfikatu obejmuje weryfikację tożsamości wnioskodawcy zgodnie z określonym poziomem walidacji: walidacja domeny (DV) sprawdza tylko kontrolę nad domeną, walidacja organizacji (OV) weryfikuje dane firmy, a najwyższy poziom - Extended Validation (EV) - wymaga szczegółowej weryfikacji prawnej i fizycznej obecności organizacji.

Certyfikat cyfrowy zgodny ze standardem X.509 zawiera m.in. wersję, numer seryjny, algorytm podpisu, nazwę wystawcy, okres ważności, dane podmiotu oraz klucz publiczny. Przeglądarki wyświetlają ostrzeżenia, gdy certyfikat utracił ważność, pochodzi od nieznanego wystawcy lub nie pasuje do odwiedzanej domeny. W dzisiejszych czasach darmowe urzędy certyfikacji, takie jak Let's Encrypt, umożliwiły automatyzację procesu wystawiania i odnawiania certyfikatów, co znacząco podniosło poziom szyfrowania w internecie.

19/20
Unieważnianie certyfikatów i listy CRL/OCSP
  • Jeśli klucz prywatny banku zostanie skradziony, powiązany z nim certyfikat traci swoje bezpieczeństwo.
  • Cyberprzestępca z takim kluczem może skutecznie podszywać się pod legalny serwer bankowy.
  • W tym celu stworzono listy unieważnionych certyfikatów (CRL – ang. Certificate Revocation List) oraz protokół OCSP (ang. Online Certificate Status Protocol).
  • Są to publiczne „czarne listy" certyfikatów, które utraciły zaufanie i powinny być odrzucane przez klientów.
  • Niestety, starsze oprogramowanie nie zawsze sprawdza aktualny status certyfikatu w czasie rzeczywistym.
Serwery CRL jako zrzut i odcięcie awaryjne na giełdzie oszustów

Unieważnianie certyfikatów jest krytycznym mechanizmem bezpieczeństwa, który pozwala na wycofanie zaufania do certyfikatu przed upływem jego ustalonego terminu ważności. Sytuacje wymagające unieważnienia obejmują kradzież klucza prywatnego, wykrycie podatności w algorytmie, zmianę nazwy domeny lub zamknięcie działalności firmy. Listy CRL (Certificate Revocation List) to publikowane przez urzędy CA pliki zawierające numery seryjne unieważnionych certyfikatów, które klienci pobierają i sprawdzają okresowo.

Protokół OCSP (Online Certificate Status Protocol) stanowi bardziej wydajną alternatywę dla CRL, umożliwiając sprawdzenie statusu pojedynczego certyfikatu w czasie rzeczywistym bez konieczności pobierania całej listy. Jednak OCSP ma swoje ograniczenia - żądanie do serwera OCSP ujawnia, jakie strony odwiedza użytkownik, a blokada odpowiedzi OCSP (OCSP stapling) lub atak na serwer może uniemożliwić weryfikację. Rozwiązaniem jest OCSP stapling, gdzie serwer WWW sam pobiera i dołącza potwierdzenie OCSP do odpowiedzi TLS, odciążając klienta.

20/20
Podsumowanie narzędzi kryptograficznych
  • Algorytmy symetryczne zapewniają szybkie i wydajne szyfrowanie dużej ilości danych.
  • Kryptografia asymetryczna rozwiązuje problem bezpiecznego uzgadniania kluczy przez sieć.
  • Funkcje skrótu (hash) gwarantują integralność i chronią przed niezauważoną modyfikacją plików.
  • Certyfikaty cyfrowe i infrastruktura PKI dają pewność co do tożsamości podmiotów w sieci.
  • Współpraca tych mechanizmów tworzy fundament zaufania w nowoczesnym Internecie.
Połączona wizja certyfikatów, hash i szyfrowa sterta we asymetrii w skrócie wiedzy z zajęć

Współczesna kryptografia oferuje inżynierom bezpieczeństwa kompletny zestaw narzędzi do ochrony wszystkich aspektów triady CIA. Szyfrowanie symetryczne chroni poufność danych przy wysokiej wydajności, kryptografia asymetryczna umożliwia bezpieczną wymianę kluczy i podpisy cyfrowe, funkcje skrótu gwarantują integralność, a infrastruktura PKI zapewnia zaufanie do tożsamości stron komunikacji. Dopiero równoczesne zastosowanie wszystkich tych mechanizmów daje pełną ochronę.

Projektując bezpieczny system, inżynier musi świadomie dobierać algorytmy i parametry do konkretnego zastosowania, uwzględniając takie czynniki jak wymagana długość klucza (zależna od horyzontu czasowego ochrony), wydajność obliczeniowa na docelowej platformie oraz zgodność z regulacjami prawnymi. Należy również pamiętać, że kryptografia jest tylko jednym z elementów bezpieczeństwa - równie ważne są procedury zarządzania kluczami, bezpieczeństwo fizyczne, szkolenia personelu oraz regularne audyty i testy penetracyjne całego systemu.