Przekazywanie informacji już od samego początku rozwoju ludzkości stanowi niezwykle ważny aspekt. Informacja była, jest i będzie podstawą rozwoju, handlu, dyplomacji, wojny. To od niej niejednokrotnie zależały losy całych imperiów. Umiejętność szybkiego i sprawnego jej przesyłania była kluczem do sukcesu lub powodem porażki.

Źródło: https://pixabay.com/pl/illustrations/przycisk-moc-na-przycisk-zasilania-1428090/
W niezwykle odległych czasach, gdy ludzie nie wymyślili jeszcze pisma, metod na przekazywanie informacji nie było zbyt wiele. Prawdę powiedziawszy, można było to robić tylko w jeden sposób – przez posłańca. Ten system miał swoje zalety, ale też i wady. Jednak ze względu na brak alternatyw był niezwykle popularny.
Z biegiem czasu często niezależnie od siebie, ludzie stworzyli jeden z najważniejszych wytworów naszej cywilizacji – pismo. Wynalazek ten zrewolucjonizował nasz rozwój, wpływając na bodajże wszystkie aspekty funkcjonowania i rozwoju ówczesnych państw.
Wraz z nim zmianie ulegały sposoby przekazywania informacji. Nie polegały już tylko na słowie mówionym, ale także na pisanym. Dostęp do wiadomości uzyskali jedynie ci, którzy posiadali niezwykle wtedy trudną umiejętność czytania i pisania.
Z upływem lat jednak umiejętność tą posiadała coraz większa grupa ludzi. Spowodowało to konieczność znalezienia takiego sposobu przekazywania wiadomości, aby jej treść poznali tylko ci, do których była ona kierowana. W taki oto sposób powstała steganografia.
Steganografia

Źródło: https://pixabay.com/pl/photos/ryby-ukryte-174293/
Słowo „ steganografia” pochodzi z języka greckiego. Składa się z dwóch słów: „steganos” – ukryty, chroniony oraz „graphein” – pisać. Głównym celem steganografii jest przesłanie informacji w sposób niewidoczny dla postronnego obserwatora. W przypadku przejęcia nośnika z wiadomością przez osobę nieupoważnioną nie zdawała ona sobie sprawy, że oprócz tego co widać gołym okiem „pod spodem”, znajduje się ukryty przekaz. Jest to najstarsza technika przesyłania tajnych informacji.
Jak działa steganografia

Źródło: https://pixabay.com/pl/photos/szko%C5%82a-deska-pusty-%C5%82upek-tablica-3258934/
Pierwsze wzmianki o tej metodzie pochodzą już z V w. p.n.e., a funkcję nośnika danych spełniła drewniana tabliczka zalana woskiem. Taki materiał był wówczas używany.
Nadawcą ukrytej przy pomocy steganografii wiadomości był Demaratus, który przesłał do Sparty informację o planowanym przez Persów ataku. Na królewskim dworze w Sparcie zapanowała konsternacja, ponieważ nikt nie wiedział, co oznacza pusta woskowa tabliczka. Dopiero żona króla Leonidasa wpadła na rozwiązanie, zeskrobując wosk i odkrywając ukryte pod nim ostrzeżenie. O tym zdarzeniu możemy dowiedzieć się dzięki przekazom pozostawionym przez rzymskiego historyka Herodota.
Inną metodą, również często stosowaną, było golenie włosów i umieszczanie wiadomości na skórze głowy. Następnie należało odczekać, aż włosy odrosną, aby zasłoniły tekst. Posłaniec przenosił go na sobie do odbiorcy. Metoda ta jednak nie była ani efektywna, ani szybka. Dodatkowo raz wytatuowana skóra na głowie uniemożliwiała ponowne jej wykorzystanie.
Pomimo wielu tysiącleci funkcjonowania, steganografia wcale się nie zestarzała. Wręcz przeciwnie. Używana była bardzo często między innymi przez większość wywiadów działających podczas II wojny światowej. Nieustannie próbowano też znaleźć nowe sposoby jej zastosowania. Jednak tak naprawdę dopiero rozwój technologii otworzył przed nią pełnię możliwości, które są nadal intensywnie wykorzystywane.
Rodzaje steganografii

Źródło: https://pixabay.com/pl/photos/las-woda-vermont-natura-staw-2829115/
Ze względu na niskie zaawansowanie techniczne najstarsza odmiana stenografii oparta została na lingwistyce. Używano rozmaitych sposobów na ukrycie treści: bardzo popularny był na przykład atrament sympatyczny. Posługiwano się też metodą polegającą na odczytywaniu tylko pierwszych liter w wyrazach lub zdaniach.
Wraz z rozwojem techniki powstały nowe sposoby na jej wykorzystanie:
1) Obraz – część bitów używana jest do zakodowania tajnej informacji. W wyniku tego działania następuje pogorszenie jakości zdjęcia. Jednak ludzkie oko nie jest w stanie wychwycić tak drobnych zmian.
2) Wideo – działa tak samo jak powyższe, ale nośnikiem jest plik wideo.
3) Audio – tym razem nośnikiem jest plik audio.
4) Sieciowe – informacja ukryta jest w ramkach protokołu TCP/IP. W tym przypadku nośnikiem wiadomości są protokoły sieciowe używane do transmisji danych. Ukryty przekaz umieszcza się w takich miejscach przesyłanych pakietów, które uniemożliwiają ich wykrycie. Mogą to być na przykład:
– numery nagłówków,
– pola Type of Service,
– pola flag fragmentacji,
– znaczniki czasu,
– pola opcji.
Z czasem podobne zastosowanie zaczęto stosować w protokołach używanych w VoIP.
Większość metod opiera się na stosie TCP/IP. Opracowano także metodę steganografii międzyprotokołowej, która działa na styku sieci lokalnej i protokołów internetowych: UDP, TCP oraz ICMP. Zasada jej działania polega na konieczności zwiększenia krótkich ramek do długości 64 bitów w celu uniknięcia ich odrzucenia. Zwiększenie to następuje poprzez dodanie wiadomości, które chcemy ukryć.
Polscy naukowcy niezwykle przyczynili się do rozwoju tej dziedziny steganografii. Stworzyli między innymi sposób przesyłania danych ukrytych za pomocą ramek z uszkodzonymi sumami kontrolnymi.
Zalety steganografii
Największą zaletą tej metody jest sam fakt ukrycia komunikacji. Gdy czegoś nie widać, nikt nie spróbuje przechwycić lub odszyfrować wiadomości.
Istnieje dużo programów umożliwiających samodzielne zapoznanie się ze steganografią. Oto kilka popularniejszych:
1) OpenPuff
2) OpenStego
3) Steghide
Steganografią a kryptografia

Źródło: https://pixabay.com/pl/photos/si%C5%82owanie-na-r%C4%99k%C4%99-zak%C5%82ad-monochromia-567950/
Steganografia nie jest jedyną dziedziną kryptografii. Drugą, równie ważną jest kryptografia. Ma ona za zadanie tak samo jak i steganografia ukrycie wiadomości przed osobami nieuprawnionymi do ich odczytania. Oparta jednak jest na całkiem innej zasadzie. Mianowicie wcale nie stara się ukryć faktu, że pomiędzy uczestnikami następuje komunikacja. Robi natomiast wszystko, aby ukryć jej sens.
Wiadomości, w których użyto kryptografii, wyglądają dziwnie i z pozoru są pozbawione sensu. Bardzo często są to wyświetlane losowo ciągi liter, cyfr oraz znaków specjalnych.
Kryptografia

Źródło: https://pixabay.com/pl/photos/bezpiecze%C5%84stwo-szyfrowanie-2890768/
Nazwa ta pochodzi z języka greckiego. Składa się ona z dwóch wyrazów: „kryptos” – ukryty i „graphein” – pisać. Początki kryptografii giną w mrokach dziejów. Na pierwsze wzmianki o niej natykamy się już w starożytnym Egipcie 1900 r. p.n.e. chociaż prawdę powiedziawszy, służyła ona wtedy innym celom niż obecnie. Teksty o szyfrowaniu odnaleziono na mezopotamskich tabliczkach glinianych z około 1500 r. p.n.e. W II w. p.n.e. Grek Polibiusz wymyślił słynną tablicę, zwaną od jego nazwiska Tablicą Polibiusza. Stała się ona podstawą, na której opracowano wiele systemów kryptograficznych. Tablica ta wygląda następująco:
| 1 | 2 | 3 | 4 | 5 | |
| 1 | A | B | C | D | E |
| 2 | F | G | H | I/J | K |
| 3 | L | M | N | O | P |
| 4 | Q | R | S | T | U |
| 5 | V | W | X | Y | Z |
Rysunek 1. Tablica Polibiusza
Zamiana liter na cyfry okazała się znakomitym rozwiązaniem. Dzięki niej można było szyfrowaną wiadomość poddawać szeregowi dodatkowych operacji przy pomocy rozmaitych wzorów matematycznych.
Ciekawostką jest to, że właśnie tę tablicę armia niemiecka użyła jako podstawy do utworzenia szyfru używanego podczas I wojny światowej. Pokazuje to, że metody kryptograficzne nie starzeją się tak szybko, jakby nam się to mogło wydawać.
Szyfry używane w starożytności podzielić można na dwie duże grupy: podstawieniowe i przestawieniowe. Grupa pierwsza była bardziej popularna i polegała na podstawianiu w szyfrowanym tekście innych liter lub symboli, natomiast przestawieniowe polegały na zmianie szyku liter w zdaniach.
Klucze symetryczne

Źródło: https://pixabay.com/pl/photos/klucz-z%C5%82oto-z%C5%82oty-klucz-2510708/
Aby w ogóle możliwe było używanie szyfrów, potrzebny jest tak zwany klucz. Może nim być wszystko: tablice, przesunięcia, wzory matematyczne, a nawet książki. Wykorzystywany jest on do szyfrowania jak i deszyfrowania przesyłanych wiadomości.
Współczesne klucze wykorzystywane w systemach informatycznych dodatkowo służą do weryfikacji podpisów cyfrowych. Ważne jest tylko to, aby nadawca i adresat posługiwali się takim samym zestawem, dzięki czemu możliwy jest dostęp do danych.
Metoda szyfrowania przy użyciu kluczy symetrycznych została opracowana jako pierwsza. Polega na użyciu tego samego klucza do szyfrowania jak i deszyfrowania. Dzięki takiemu mechanizmowi jest ona prostsza, a co za tym idzie szybsza.
W zawiązku z tym preferuje się ją do przesyłania dużych ilości danych. Ten typ kluczy jest bardzo popularny. Używany jest przez wiele organizacji i krajów, na przykład przez rząd Stanów Zjednoczonych.
Szyfrowanie asymetryczne

W celu zwiększenia poziomu bezpieczeństwa prowadzono prace nad różnymi algorytmami kryptograficznymi. Jeden z najbardziej obecnie popularnych algorytmów oparty jest na kryptografii asymetrycznej. Jego podstawy i koncepcję stworzył White Diffy. Następnie dołączył do niego Marty Hellman, który zajął się aspektem matematycznym.
Metoda ta opiera się na dwóch kluczach: publicznym, który jest ogólnie dostępny oraz prywatnym, którym dysponuje tylko i wyłącznie użytkownik. Dzięki temu ten sposób szyfrowania posiada jeszcze jedną dodatkową i bardzo wartościową cechę. Mianowicie klucz prywatny pełni funkcję czegoś w rodzaju podpisu elektronicznego zapewniającego, że to właśnie ten nadawca, a nie ktoś inny wysłał wiadomość.
Metoda ta jest bezpieczniejsza niż poprzednia, ale niestety wolniejsza. Dlatego też klucze asymetryczne często używa się tylko do przesyłania kluczy symetrycznych, przy pomocy których dokonuje się szyfrowania.
Niedawno po odtajnieniu szeregu poufnych dokumentów służb brytyjskich okazało się, że pracowali oni nad bardzo podobnym rozwiązaniem. Natknęli się na wiele problemów, z których najpoważniejszym okazało się stworzenie matematycznych podstaw systemu. W końcu pokonali i ten problem, wyprzedzając rozwiązanie amerykańskie aż o 3 lata. Niestety, z różnych względów nie upublicznili swojego osiągnięcia i dlatego też powszechnie uważa się White Diffego i Martego Hellmana za twórców współczesnego systemu asymetrycznego.
Hashowanie

Źródło: https://pixabay.com/pl/photos/stary-zabytkowe-rodzaj-retro-1419786/
Hashowanie polega na przepuszczeniu danych przez odpowiedni algorytm określany często jako algorytm haszujący lub funkcja skrótu.
Spróbujmy poddać procesowi hashowania następujący ciąg:

Dla algorytmu SHA-256 hash będzie wyglądał następująco:

Natomiast dla ciągu:

Obliczony hash to:

Jak widać niezależnie od tego jak duży zbiór poddamy temu procesowi, dane wyjściowe będą posiadały jednakową długość, zależną tylko od właściwości danego algorytmu. Na przykład SHA-256 tworzy 256-bitowy ciąg, a SHA-1 160-bitowy. Dodatkowo takie same dane będą zawsze tworzyć taki sam hash.
Cechą charakterystyczną algorytmów hashujących – w przeciwieństwie do kryptograficznych – jest niemożność odczytania z klucza jego wartości pierwotnej. Dlatego zaleca się przechowywać hasła w tej postaci. Podczas próby logowania do systemu po podaniu hasła funkcja hashująca dokonuje jego przekształcenia i porównuje wynik z tym zapisanym w bazie.
Jest to także świetne zabezpieczenie podczas przesyłania plików. Wygląda to następująco: jedna osoba przepuszcza dane przez algorytm, tworzy hash i udostępnia go wraz z przesyłanymi danymi. Następnie odbiorca również używa takiego samego algorytmu. Jeśli w międzyczasie pliki nie zostały zmienione, to oba hashe powinny być identyczne.
Algorytmy kryptograficzne

Źródło: https://pixabay.com/pl/photos/klucze-od-domu-klucz-bezpiecze%C5%84stwo-4516178/
Algorytmy kryptograficzne to zbiory przekształceń i funkcji matematycznych. Spośród dwóch dużych grup – symetrycznych i asymetrycznych wyróżniają się:
1) DES – w chwili obecnej nie jest to zalecany algorytm, ponieważ tworzy tylko 54-bitowe klucze. Wspomniałem o nim tylko dlatego, że stał się podstawą do utworzenia innych, bardzo dobrych algorytmów takich jak: 3DES, TDES. Zapewniają one odpowiedni poziom bezpieczeństwa i używane są między innymi w systemach bankowych. Algorytmy te opierają się na szyfrowaniu symetrycznym.
2) AES – jest następcą DES-a i należy do tej samej grupy. Tworzy bloki o długości 128, 192 lub 256 bitów. Jest szybki i w miarę bezpieczny. Używa go rząd USA do szyfrowania komunikacji. Jest to chyba najlepszą rekomendacją.
3) RSA – należy do algorytmów asymetrycznych. Pomimo tego, że powstał w latach 70., nadal zapewnia bardzo wysoki poziom bezpieczeństwa. Obecnie zaleca się używać kluczy o długości 2048 lub 4096 bitów. Wielką zaletą RSA jest możliwość tworzenia łańcuchów szyfrujących o dowolnej długości.
4) ECC – jest to algorytm, który w niektórych obszarach zastępuje RSA. Operuje na krzywych eliptycznych, dzięki czemu zapewnia większe bezpieczeństwo przy krótszym kluczu. Dodatkowo jest to algorytm, który jest odporniejszy na ataki przy użyciu komputerów kwantowych.
Metody szyfrowania

Źródło: https://pixabay.com/pl/photos/enigma-szyfrowanie-kryptologiczna-883925/
Do szyfrowania danych służą algorytmy szyfrujące. Można używać ich na trzy sposoby.
Pierwszym z nich jest implementacja w oprogramowaniu. Mogą być dodane jako osobne moduły, które należy uruchamiać osobno lub też aktywują się od razu po uruchomieniu aplikacji.
Drugim sposobem jest umieszczenie algorytmów szyfrujących w urządzeniu fizycznym.
Ciekawym i prostym sposobem szyfrowania jest używanie narzędzi dostarczonych przez system operacyjny. Nie wymagają one instalacji zewnętrznego oprogramowania lub zakupu urządzenia fizycznego, a zapewniają ochronę na akceptowalnym poziomie.
Przyszłość kryptografii

Źródło: https://pixabay.com/pl/photos/palec-r%C4%99ka-kontakt-w%C5%82%C4%85czy%C4%87-3389914/
Obecnie wszystkie algorytmy kryptograficzne dążą do używania jak najdłuższych kluczy przy zachowaniu dobrej wydajności. Poziom bezpieczeństwa tych systemów jest naprawdę wysoki. Przykładem niech będzie RSA. Szyfr o długości 768 bitów udało się złamać dopiero w 2009 roku. Proces ten zajął aż 2 lata.
Szacuje się, że standardowy komputer do złamania 1024-bitowego klucza potrzebowałby 1,5 miliona lat a 2048-bitowego aż 4 miliardów lat. Natomiast komputer kwantowy z miliardem kubitów poradziłby sobie z tym problemem w ciągu 8 godzin. Tylko że obecnie komputery kwantowe pracują na 50-70 kubitach.
Mimo to oczywiste jest, że przyszłość kryptografii związana będzie z komputerami kwantowymi. W związku z tym, że zbudowane są odmiennie niż obecne komputery, będą również wymagały całkiem innych algorytmów.
Na całym świecie prowadzone są już prace w tym zakresie. Jednak pomimo olbrzymiego rozwoju w dziedzinie kwantowych maszyn minie prawdopodobnie około 5-6 lat, zanim komputery te wraz z odpowiednimi algorytmami zaczną być podstawą kryptologii.
Kryptoanaliza

Źródło: https://pixabay.com/pl/photos/narz%C4%99dzia-k%C5%82%C3%B3dki-odblokowa%C4%87-zamek-2836960/
W cieniu kryptologii prężnie rozwija się nauka, która jest jej poddziedziną. Co oczywiste, również jest związana z szyframi. Nosi nazwę kryptoanaliza. Można by ją określić jako głównego wroga szyfrowanych wiadomości.
Zadaniem kryptoanalizy jest odkrywanie tego co ukryte, czyli odczytywanie ukrytych przekazów. Trudno uchwycić same początki jej powstania. Jednak intensywniej rozwijać zaczęła się w państwach arabskich. Jej pierwszy opis znajduje się w księdze napisanej przez Al-Kindiego w IX w. n.e.
Mało ludzi zdaje sobie z tego sprawę, ale główną przyczyną, dla której zbudowano pierwszy na świecie komputer, jest właśnie kryptologia. Szyfrowanie oraz deszyfrowanie danych wymaga wykonywania olbrzymiej ilości działań matematycznych. Urządzenia, które były wykorzystywane do tego celu, stopniowo przestawały wystarczać. Po prostu ilość wykonywanych przez nie operacji była zbyt mała.
Pierwszym elektronicznym komputerem jest maszyna o nazwie Colossus, zbudowana z 1,5 tysiąca lamp elektronowych. Został on zaprojektowany na podstawie prac Allana Turinga, genialnego brytyjskiego matematyka a zbudowano go w 1943 roku. Główne zadanie Colossusa polegało na łamaniu wiadomości wychodzących z maszyny Lorenza, która używana była do szyfrowania przekazów dalekopisowych. Istnienie tego urządzenia było utrzymywane w tajemnicy do połowy lat 70.
Kryptoanaliza – typy ataków

Źródło: https://pixabay.com/pl/photos/magik-maga-iluzjonista-fantazja-4586454/
Wyścig pomiędzy kryptologią a kryptoanalizą trwa od najdawniejszy lat i będzie trwał tak długo, jak ludzie będą chcieli ukrywać sens przekazywanych informacji. W wyścigu tym nie ma zwycięzcy. Raz górą jest jedna strona, by za chwilę na czoło wysunęła się druga.
Jednak jak dotąd kryptoanaliza złamała już wiele szyfrów, które uważane były za nie do złamania. Natomiast kryptologia stworzyła tylko jeden, który być może nie zostanie nigdy złamany. Tak więc wydaje się, że w tym swoistym wyścigu na razie prowadzi kryptoanaliza.
Kryptoanaliza używa wielu modeli do osiągniecia stawianego jej celu. Do najpopularniejszych należą:
1) Atak z tekstem jawnym – należy posiadać kilka niezaszyfrowanych wiadomości i odpowiadające im kopie zaszyfrowane. Mając takie dane, próbuje się odkryć klucz służący do zakodowania tekstu.
2) Atak z wybranym tekstem jawnym – w tym wypadku atakujący musi doprowadzić do tego, żeby wybrany przez niego tekst został zaszyfrowany i przesłany. Dzięki temu posiada wiedzę o tekście i na tej podstawie może pracować nad złamaniem klucza.
3) Atak z tekstem zaszyfrowanym – atakujący posiada tylko zaszyfrowane wiadomości. Przy pomocy różnych metod, na przykład analizy częstotliwościowej, stara się odkryć klucz.
W skład tych modeli wchodzi kilka typów ataków, z których wymienię kilka najpopularniejszych:
1) Atak brute-force – polega na wielokrotnym sprawdzaniu wszystkich możliwych kombinacji słów występujących w języku i znaków specjalnych w celu odnalezienia hasła. Używa się w tym celu słowników w postaci plików tekstowych. Ataki tego typu są czasochłonne. Głównymi czynnikami wpływającymi na czas jest długość i skomplikowanie hasła oraz moc obliczeniowa komputera.
2) Atak statystyczny – opiera się na różnej częstotliwości występowania liter i sylab w językach naturalnych. Na tej podstawie próbuje się odczytać zakodowaną wiadomość.
3) Atak meet in the middle – atakujący musi posiadać część tekstu jawnego i jego szyfrogram. Umożliwia łamanie szyfrów używających co najmniej dwóch kluczy do wielokrotnego szyfrowania za pomocą tego samego algorytmu. Jego złamanie wymaga dużej wydajności sprzętowej.
4) Atak man in the middle – atakujący włącza się w komunikację pomiędzy dwoma osobami w formie pośrednika. Od każdej z nich otrzymuje prawdziwe dane i przekazuje je drugiej stronie. Proces polega na utworzeniu przez przestępcę komputerowego dla każdego z uczestników jednego klucza i posługiwaniu się nim. Ze względu na to, że niezwykle trudno wykryć ten rodzaj ataku, należy on do bardzo niebezpiecznych.
Główny problem kryptograficzny

Źródło: https://pixabay.com/pl/photos/problemy-martwi-alarm-martwi%C4%99-si%C4%99-4944455/
Dawne i współczesne szyfry dzielą jedną wspólną cechę. Jest nią klucz, czyli to coś, co służy do szyfrowania i deszyfrowania danych. To niezbędny element całego systemu. Stanowi on podstawę do wykonywania wszelkich operacji na informacjach.
Posiada jednak dwie, niezwykle istotne wady. Pierwsza to to, że klucz można złamać i tym sposobem staje się on bezużyteczny. Można próbować się przed tym zabezpieczyć, stosując klucz, który będzie długi, skomplikowany a przede wszystkim nieoczywisty. Spowoduje to, że skuteczny atak mający na celu złamanie go będzie wymagał zaangażowania tak dużo środków i zasobów, że zniechęci, uniemożliwi lub przynajmniej spowoduje nieopłacalność dla potencjalnego napastnika.
Drugą wadą kluczy jest problem ich dystrybucji. Nadawca jak i odbiorca muszą dysponować takim samym zestawem. Bez tego nie ma możliwości odczytania jakichkolwiek danych. Natomiast w przypadku przejęcia lub złamania klucza, każda wiadomość wymieniona w danej komunikacji zostanie odszyfrowana.
Problem dystrybucji starano się obejść na różne sposoby.
To, że kanał dystrybucji klucza jest niezwykle problematycznym aspektem, potwierdza chociażby system szyfrowania z kluczem jednorazowym (one-time pad). Został on opracowany w 1917 roku przez Gilberta Vernama i Josepha Mauborgne’a. Dlaczego w ogóle o nim wspomniałem? Tylko, czy też może aż z jednego powodu: w chwili obecnej jest to jedyny na świecie szyfr, którego nie można złamać.
Opiera się na dwóch założeniach: tuż po użyciu klucz jest niszczony. Następnie tworzony jest kolejny, który również natychmiast po użyciu jest niszczony. Dodatkowo każdy nowo powstały klucz ma taką samą długość jak wiadomość, która jest szyfrowana.
Mechanizm ten pełni funkcję dodatkowego zabezpieczenia. Dzięki temu przechwycony szyfr poddany działaniu różnych kluczy w procesie deszyfracji daje sensowne odpowiedzi. Dla deszyfranta jednak problematyczne jest to, że każdy klucz deszyfracyjny daje inny, zdawałoby się właściwy wynik.
Dlaczego więc nie stosuje się tego szyfru powszechnie? I tu znowu wracamy do problemu bezpiecznej dystrybucji klucza. W przypadku komunikacji pomiędzy kilkuset milionami ludzi na całym świecie problemem jest wąskie gardło, którym jest medium transmisyjne, jakim przekazuje się klucz.
Zarządzanie kluczami

Źródło: https://pixabay.com/pl/photos/zamek-klucze-czarny-i-bia%C5%82y-stal-2597135/
W związku z tym, że klucze są najważniejszym elementem podczas szyfrowania, oczywiste jest, że proces odpowiedniego zarządzania nimi jest niezwykle istotny. Wpływa on bowiem bezpośrednio na bezpieczeństwo całej infrastruktury firmowej i prywatnej.
Z tego też powodu cały proces administrowania kluczami podzielić należy na kilka głównych etapów. Należy mieć świadomość, że każdy z nich jest tak samo ważny. Pominięcie któregokolwiek z nich może doprowadzić do zniweczenia całego trudu włożonego w pracę.
Dlatego niezwykle ważne jest również to, aby aspekt ten był poddany ciągłemu procesowi nadzoru. Nie można podejść do tego zadania na zasadzie: zaprojektować, wdrożyć, zapomnieć. To najkrótsza droga do nieszczęścia.
Do głównych elementów zarządzania kluczami należy:
1) Polityka zarządzania kluczami. Powinien to być jeden z głównych i z całą pewnością pierwszy etap. Polega on na dokładnej analizie zagadnienia oraz opisaniu go. Polityka ta powinna być regularnie aktualizowana. Musi ona zawierać najnowsze rozwiązania i trendy, ponieważ to od niej zależy bezpieczeństwo całego systemu.
Dokument powinien uwzględniać wszystkie aspekty, które dotyczą kluczy i zarządzania nimi. Należy w nim opisać stanowiska wraz z określeniem, jaką pełni funkcje dany właściciel procesu oraz ściśle wyznaczyć jego uprawnienia. Należy także uwzględnić cały cykl życia klucza.
Niezwykle ważne jest również opracowanie strategii reakcji na wykryte lub prawdopodobne incydenty. Polityka zarządzania kluczami powinna również oprócz podjętych w takim wypadku czynności wskazywać osoby i zakres ich odpowiedzialności.
2) Generowanie kluczy. Klucze, które są wygenerowane, powinny być nieprzewidywalne i losowe. Choć uzyskanie losowych liczb na pierwszy rzut oka wydaje się być banalnie proste, w rzeczywistości jest nie lada wyzwaniem. Dlatego też zaleca się używać do ich tworzenia systemów o jak najwyższej jakości. Klucze można utworzyć na dwa sposoby:
– pierwszym z nich jest użycie urządzenia fizycznego;
– drugim jest użycie do tego celu algorytmu.
W przypadku gdy mamy do czynienia z różnego typu operacjami finansowymi lub systemami, które wymagają szczególnie wysokiego poziomu zabezpieczeń, preferowanym wyborem powinny być moduły HSM (Hardware Security Module).
Są to fizyczne urządzenia zapewniające najwyższy poziom ochrony danych. Oprócz możliwości tworzenia kluczy, HSM zapewnia szereg innych funkcji. Należą do nich choćby przechowywanie kluczy wraz z ich ochrona, zarządzanie certyfikatami czy też samodzielne wykonywanie operacji kryptograficznych.
We wszystkich innych sytuacjach w celu zmniejszenia kosztów i zwiększenia wygody użytkowania wystarczającym zabezpieczeniem będzie użycie generatorów liczb pseudolosowych CSPRNG (Cryptographically Secure Pseudo-Random Number Generator) Generator taki najczęściej funkcjonuje jako program komputerowy lub jego część. Może być także zaimplementowany w modułach HSM.
3) Przechowywanie kluczy. Klucze muszą być przechowywane w sposób zapewniający bezpieczeństwo. Istnieje wiele metod i sposobów, aby spełnić ten warunek. Postaram się tutaj omówić kilka z nich.
W zależności od konkretnej sytuacji i priorytetów można je stosować razem, co jest zalecane, ewentualnie tylko wybrane elementy. Jednak czym ich więcej zostanie zastosowanych, tym zapewnią większą ochronę.
Klucze powinny być przechowywane w modułach HSM (Hardware Security Module). Są to bardzo bezpieczne urządzenia. Nawet gdy atakujący uzyska fizyczną kontrolę nad nimi, nie jest w stanie uzyskać dostępu do magazynu danych. Te klucze, które nie są używane, powinny zostać zaszyfrowane.
Dobrą praktyką w zarządzaniu nimi jest stosowanie struktury hierarchicznej. Zasada szyfrowania w takim przypadku jest następująca: najpierw używamy klucza, który określa się mianem DEK. Służy on do operowania bezpośrednio na danych użytkownika.
Następnie DEK szyfrowany jest przy pomocy klucza o nazwie KEK. Natomiast na samej górze tej hierarchii znajduje się klucz główny. Musi on być szczególnie chroniony, ponieważ przy jego pomocy szyfrowany jest KEK. Taka struktura zapewnia wielokrotne większe bezpieczeństwo i złożoność ochrony niż szyfrowanie pojedyncze.
Klucze, które są odpowiedzialne za poszczególne elementy, nie powinny być przechowywane razem. Takie postępowanie służy do ograniczenia zakresu naruszenia bezpieczeństwa, gdyby takie nastąpiło.
Wielu dostawców usług chmurowych zapewnia także możliwość przechowywania i zarządzania wieloma usługami, w tym kluczami. Najpopularniejsze z nich to: AWS Secrets Manager, Azure Key Vault, Google Cloud KMS.
Lokalne systemy operacyjne również posiadają funkcję do ich obsługi i zarządzania. Każdy z nich posiada swoje własne odpowiedzialne za to elementy, np. w systemie Linux jest to Keyrings, w systemie Windows KSP natomiast w urządzeniach mobilnych TrustZone. Są one zbudowane na innych zasadach i bazują na różnej filozofii. Sam cel działania pozostaje taki sam.
Kolejną metodą mającą na celu bezpieczne zarządzanie kluczami jest wykorzystanie Secure Enclaves. Jest to specjalna, wydzielona w procesorze strefa, do której możliwość uzyskania dostępu jest oparta na bardzo restrykcyjnych zasadach. Nawet system operacyjny zainstalowany na urządzeniu nie może wykonywać w niej żadnych operacji.
Cała wymiana danych pomiędzy Secure Enclaves a zewnętrznym środowiskiem jest ściśle nadzorowana. Zablokowano możliwość komunikacji z siecią oraz bardzo restrykcyjnie podchodzi również do możliwości dostępu do niej użytkowników z wysokimi poziomami uprawnień.
Współpracować z Secure Enclaves mogą tylko te aplikacje, którym zaimplementowano taką możliwość. Przed rozpoczęciem współpracy aplikacje te wymagają przeprowadzenia odpowiedniej konfiguracji.
4) Dystrybucja kluczy. Po utworzeniu klucza powinno się przesłać go do odbiorcy. Podczas tego procesu należy przestrzegać restrykcyjnej zasady polegającej na tym, że każdy przesyłany klucz musi być zaszyfrowany.
Podczas samej transmisji również należy zadbać o jej bezpieczeństwo. Dlatego proces ten nie może odbywać się przy pomocy zwykłego tekstu jawnego. W tym celu należy użyć protokołu komunikacyjnego z odpowiednim poziomem zabezpieczeń.
Obecnie najczęściej używanym do bezpiecznej komunikacji w Internecie jest protokół TLS. Spełnia on trzy najważniejsze cele: szyfruje przesyłane przez sieć dane, pilnuje ich integralności, zabezpieczając je przed jakąkolwiek zmianą oraz pilnuje, aby użytkownik nie został przekierowany na fałszywe strony. Do procesu dystrybucji klucza można również użyć VPN.
Bardzo dobrym rozwiązaniem podczas dystrybucji kluczy jest zastosowanie procesu automatyzacji. Jest on bezpieczniejszy niż ręczne przesyłanie, ponieważ eliminuje możliwość popełnienia błędu ludzkiego.
5) Wymiana i aktualizacja kluczy. Regularna wymiana kluczy kryptograficznych jest czynnością, którą jest nie tylko zalecana, ale wręcz wymagana. Dzięki niej klucze kryptograficzne poddawane są ekspozycji przez znacznie krótszy okres czasu. Natomiast w przypadku przeprowadzenia udanego ataku na klucz, po jego wymianie osoba, która uzyskała nieautoryzowany dostęp do danych, ponownie go utraci.
Dlatego też nie można bagatelizować tego punktu. Stanowi on jeden z fundamentów bezpieczeństwa informatycznego.
6) Nadzorowanie kluczy. Systemy, które wykorzystują klucze jak i je same należy regularnie monitorować. Szczególnie ważne jest wychwycenie wszelkich prób ataku lub manipulacji danymi. Wykrycie takiej aktywności powinno spowodować odpowiednią reakcję na powstały incydent zgodnie z polityką zarządzania, o której wspomniałem już wyżej.
Optymalne jest utworzenie czegoś na wzór listy. Umieścić należy na niej wszystkie istniejące klucze oraz daty ich ważności. Brak kontroli ważności klucza może doprowadzić nawet do kilkudniowych przestojów i z całą pewnością utrudni działanie w najmniej spodziewanym momencie.
Niezwykle ważne jest również zarządzanie i monitorowanie dostępów do modułów fizycznych. Szczególnie należy zwrócić uwagę na wszelkie próby nieautoryzowanego wejścia w ich posiadanie. Dlatego też moduły fizyczne powinny być przechowywane w miejscach o ograniczonym dostępie dla osób postronnych. Można umieszczać je np. w sejfach.
7) Niszczenie kluczy. Po ustaniu ważności klucza lub też standardowej wymianie należy dokonać jego zniszczenia. Proces usunięcia klucza należy dokonać natychmiast po wycofaniu go z użycia.
Przechowywanie nieaktualnych kluczy stanowi bezpośrednie zagrożenie, ponieważ poddanie ich kryptoanalizie może spowodować wykrycie mechanizmów specyfikacji ich tworzenia. Stąd już niedaleka droga do prób złamania tych, które są obecnie w użyciu.
Podsumowanie

Źródło: https://pixabay.com/pl/photos/klucz-serce-stokrotka-mi%C5%82o%C5%9B%C4%87-3087900/
Prawidłowe zarządzanie kluczami zapewnia zgodność z normami takimi jak GDPR czy PCI DSS. Wpływa to nie tylko na zwiększenie bezpieczeństwa danych i chroni przed atakami i nieautoryzowanym dostępem, ale zapewnia również lepszą kontrolę nad całym procesem życia klucza przy jednoczesnym utrzymaniu jego przejrzystość i stopnia kontroli. Często wręcz wymusza wprowadzenie automatyzacji, eliminując ryzyko błędu ludzkiego.
Należy pamiętać, że żyjemy w czasach, w których dostęp do informacji jest prosty. Zasoby wszelkiej wiedzy znajdują się na wyciągnięcie ręki. Z jednej strony jest to bardzo pożądane i pozytywne.
Z drugiej strony jednak trzeba pamiętać, że niestety medal ma dwie strony i niektórzy użytkownicy poszukają informacji mogących służyć do popełniania przestępstw komputerowych. Duża ilość stron internetowych, tutoriale, fora dyskusyjne, poradniki zawierają bardzo dużo wskazówek jak zostać potencjalnym cyberprzestępcą.
Wzrost cyberprzestępczości szczególnie niekorzystnie zaznaczył się podczas lockdownu. Nastąpił wówczas 4-krotny wzrost ataków hackerskich, natomiast ataków pishingowych zwiększył się aż o 600%. Skala tego zjawiska pokazuje, jak ważne jest prawidłowe zarządzanie kluczami kryptograficznymi. Element ten bowiem stanowi jedno z kluczowych ogniw wojny w cyberprzestrzeni.
Należy pamiętać, że jak do tej pory zwycięstwo należy do strony atakującej. Oznacza to, że należy przedsięwziąć wszelkie dostępne środki, aby zabezpieczyć swoją część informatycznego świata.
Stosowanie wszystkich zasad zarządzania kluczami kryptograficznymi z dużą dozą prawdopodobieństwa odstręczy napastników i pozwoli nam maksymalnie dobrze zabezpieczyć swoje niematerialne dobra.
Artykuł napisał dla Was mgr inż. Arkadiusz Kozub




