KRYPTOGRAFIA
Dziedzina nauki (spokrewniona z matematyką) zajmująca się zagadnieniami utajniania informacji poprzez jej szyfrowanie.
Kryptografia dzielona jest na kryptografię tradycyjną, z jednym tylko kluczem szyfrowania (zobacz: kryptografia symetryczna) oraz kryptografię z parą zależnych kluczy – kluczem prywatnym i publicznym (kryptografia asymetryczna).Poszczególne algorytmy szyfrujące nazywane są kryptosystemami. Z kryptografią związana jest nieodłącznie kryptoanaliza – nauka o \”łamaniu\” szyfrów. Natomiast kryptologia jest szerszym pojęciem, łączącym zarówno kryptografię jak i kryptoanalizę.
Zastosowania kryptografii
Kryptografia w sieci
Prawa patentowe
Zastosowania kryptografii
Kryptografia pozwala chronić poufne dane poprzez przekształcenie ich do postaci nieczytelnej dla osób nie posiadających właściwego klucza (szyfrowanie). W takiej postaci mogą być one bez obaw przechowywane w pamięciach masowych bądź przesyłane sieciami nie zapewniającymi należytego bezpieczeństwa (np. w Internecie).
Kryptografia pierwotnie używana była głównie do celów militarnych. Obecnie wzrost znaczenia elektroniczych dróg wymiany informacji przyczynił się do rozszerzenia jej zastosowań. Nowoczesne techniki kryptograficzne pozwalają na:
• bezpieczne (niemal niemożliwe do złamania) szyfrowanie wiadomości
• jednoznaczą identyfikację nadawcy wiadomości (nie może się on wyprzeć autorstwa wiadomości)
• zapewnienie integralności komunikatu (gwarancję, że nie został on zmodyfikowany)
Kryptografia w sieci
Ze względu na niefizyczną naturę przesyłanych Internetem materiałów, tradycyjne metody poświadczania ich autentyczności (pieczęcie, sygnatury, itp) są bezużyteczne. W komunikacji sieciowej zastąpiła je kryptografia, zyskując coraz większe znaczenie jako pewny sposób zabezpieczania poufności danych oraz ochrony prywatności w Sieci.
Procesom identyfikacji, uwierzytelniania oraz ukrywania informacji przed niepowołanymi osobami towarzyszą silne algorytmy szyfrowania. Zawierają je m.in. popularne programy zabezpieczające prywatność korespondencji e-mail (PGP) i bezpieczne protokoły transmisyjne (SSL). Pośrednio kryptografia znajduje zastosowanie w elektronicznych podpisach.
Prawa patentowe
W niektórych krajach wykorzystywanie algorytmów kryptograficznych podlega wielu restrykcjom. W Stanach Zjednoczonych uważane są one za technologie o znaczeniu militarnym, stąd obowiązują tam przepisy ograniczające eksport silnych algorytmów kryptograficznych. Tylko niektóre kategorie zagranicznych instytucji (np. banki) mogą ubiegać się o zakup amerykańskich technologii szyfrowania (przy czym niektóre kraje obłożone są embargiem bezwarunkowym – są wśród nich m.in. Rosja, Kuba, Afganistan, Korea Północna, Chiny, Pakistan, Chile, Kolumbia, Iran i Iran).
Większość amerykańskich narzędzi i programów szyfrujących (w tym przeglądarki WWW) produkowana jest w dwóch wersjach: krajowej i międzynarodowej, różniących się długością wykorzystywanych kluczy. Wersje przeglądarek z krótkimi kluczami wspierają jednak dodatkowo technologię SGS (Server Gated Cryptography), która pozwala na przeprowadzania transakcji w wybranymi instytucjami finansowymi przy użyciu kodowania z długim kluczem. Warunkiem jest, aby serwer tej instytucji mógł wylegitymować się odpowiednim certyfikatem SGS.
kryptosystem
Metoda (algorytm) szyfrowania danych. Zadaniem kryptosystemu jest uczynić odczytanie treści przekazu przez niepowołane osoby na tyle trudnym i czasochłonnym zadanem, że w praktyce niemożliwym Jednocześnie powienien on umożliwiać łatwe odszyfrowanie wiadomości dla stron znających tajny klucz.
O bezpieczeństwie informacji chronionej przy pomocy algorytmu w głównej mierze decyduje siła kryptosystemu, czyli jego odporność na złamanie. Na siłę kryptosystemu wpływ mają z kolei jakość algorytmu oraz długość i tajność klucza szyfrowania.
Kryptosystemy dzielą się na:
• bazujące na kluczu symetrycznym, gdzie wiadomości szyfrowane i deszyfrowane są przy pomocy jednego klucza. (zobacz: kryptografia symetryczna)
• wykorzystujące parę kluczy: znany każdemu klucz publiczny oraz utajniony, znany tylko nadawcy wiadomości klucz prywatny (zobacz: kryptografia asymetryczna).
Kryptosystemy podlegają prawu patentowemu a w wielu krajach również restrykcjom eksportowym.Kryptosystemami zajmuje się dziedzina wiedzy nazywana kryptografią, natomiast ich łamaniem kryptoanalizą.
kryptoanaliza
Dziedzina wiedzy zajmująca się analizowaniem i łamaniem kryptosystemów – odczytywaniem zaszyfrowanych wiadomości bez znajomości kluczy, które pozwalają na ich bezpośrednie odtajnienie.
kryptografia symetryczna; kryptografia z tajnym kluczem
symetric cryptography; secret key cryptography
Szyfrowanie z użyciem jednego klucza, wspólnego dla obu stron. Zarówno nadawca jak odbiorca wiadomości posługują się tym samym kluczem: nadawcy służy on do szyfrowania komunikatów, adresatowi – do odszyfrowywania zakodowanej treści.Zaletami tej metody jest szybkość, wydajność oraz odporność na ataki (\”łamanie\”).
Podstawową wadą tej metody jest konieczność uzgodnienia wspólnego klucza przed rozpoczęciem wymiany komunikatów. Musi zatem istnieć sposób bezpiecznego przekazania tajnego klucza. O ile w tradycyjnych zastosowaniach nie stanowi to większego problemu (jeżeli osoby mogą spotkać się i przekazać sobie klucz), o tyle w komunikacji za pośrednictwem Internetu istnieje możliwość przechwycenia klucza przez niepowołane osoby. W metodzie tej nie ma także nigdy powności, czy zaszyfrowana wiadomość pochodzi rzeczywiście od danej osoby.
Jest to podstawowy powód, dla którego w komunikacji za pomocą kanałów nie zapewniających należytego bezpieczeństwa wybiera się rozwiązania bazujące na kryptografii asymetrycznej.
klucz szyfrowania
Porcja informacji wykorzystywana przez algorytm kryptograficzny.
Klucz określa sposób działania algorytmu i determinuje postać zaszyfrowanej wiadomości. Dzięki temu osoby posługujące się tym samym kryptosystemem, lecz różnymi kluczami, nie mogą wzajemnie odczytać zakodowanych przez siebie wiadomości.
Klucz może mieć postać ciągu bitów (np. dla algorytmu DES) lub pary liczb (dla algorytmów wykorzystujących ideę kryptografii asymetrycznej – np. RSA).
kryptografia asymetryczna; kryptografia z kluczem publicznym
Wynaleziona w 1976 roku przez studenta Martina Hellmana oraz jego profesora Whitfielda Diffie\’go metoda kryptograficzna oparta na dwóch osobnych kluczach: jednym publicznym, służącym do szyfrowania oraz drugim – tajnym – do odczytywania wiadomości.
Kryptografia bazująca na kluczu niesymetrycznym w wielu przypadkach zapewnia znacznie wyższy poziom bezpieczeństwa niż dotychczas stosowana metoda z jednym, wspólnym dla komunikujących się stron kluczem (zobacz: kryptografia symetryczna).
Chociaż system autorstwa Hallmana i Diffie\’go został złamany w 1980 roku, sama idea dwóch osobnych kluczy legła u podstaw wielu innych systemów kryptograficznych (m.in. algorytmu RSA).
Dobrana para: klucz prywatny – klucz publiczny
Każdy z korespondentów dysponuje dwoma powiązanymi ze sobą kluczami, z których jeden jest kluczem prywatnym (tajnym, trzymanym w bezpiecznym miejscu), drugi zaś kluczem publicznym (przeznaczonym do propagowania wśród potencjalnych korespondentów).
Informacje zakodowane kluczem publicznym mogą być odczytane jedynie przy zastosowaniu odpowiadającego mu klucza prywatnego. Proces kodowania nie jest więc symetryczny – klucz stosowany do zaszyfrowania wiadomości nie pozwala na jej odszyfrowanie. Umożliwiają to specjalne funkcje matematyczne, które łatwo jest przeprowadzić w jedną stronę, lecz niezwykle trudno odwrócić (zobacz opis algorytmu RSA).
Zalety i wady systemu
Sposób powiązania pary kluczy zapewnia, że:
• każdy użytkownik dysponujący kluczem publicznym innej osoby może wysłać jej wiadomość będąc pewnym, że nikt poza nią nie będzie w stanie jej odczytać.
• Nie ma konieczności przekazywania tajnego klucza. Propagowany jest jedynie klucz publiczny, bezużyteczny dla potencjalnego \”włamywacza\”
• Nie można podszyć się pod właściciela klucza publicznego i w jego imieniu wysyłać wiadomości (do wysyłania niezbędny jest bowiem klucz prywatny).
• Nie można wyprzeć się wiadomości wysłanej i zaszyfrowanej własnym kluczem prywatnym (posiada go tylko właściciel). – Każda modyfikacja wysłanej wiadomości przez osoby trzecie może zostać łatwo wykryta (wiadomości nie będzie można odczytać kluczem publicznym)
Z drugiej strony, niedogodnością kryptografii niesymetrycznej jest duża złożoność algorytmów, a co za tym idzie, mała wydajność. Z tego powodu w nowoczesne rozwiązania kryptografię asymetryczną wykorzystują jedynie do ustanowienia bezpiecznego kanału transmisji. Kanałem tym, już bez obaw o przechwycenie, przesyłany jest następnie tajny klucz szyfru symetrycznego. Posłuży on do zapewnienia bezpieczeństwa transmisji szyfrowanej już w technologii kryptografii symetrycznej (szybszej i bardziej odpornej na ataki).
Klucze publiczne a cyfrowe certyfikaty
Chcąc wysłać komuś zaszyfrowaną wiadomość, musimy dysponować kopią jego klucza publicznego. Klucz taki możemy otrzymać od korespondenta za pośrednictwem poczty elektronicznej, pobrać go z jego strony WWW lub z centralnego serwera kluczy publicznych. Przed wysłaniem wiadomości warto się jednak upewnić się, że klucz publiczny faktycznie należy do danej osoby (nie został nam podrzucony fałszywy klucz publiczny).
Problem ten rozwiązują cyfrowe certyfikaty. Certyfikat wydawany jest przez instytucję zaufania publicznego (zobacz: Centrum Certyfikacji), która przedtem żąda przestawienia przez użytkownika dokumentów potwierdzających jego tożsamość. Większość współczesnych przeglądarek przygotowana jest do rozpoznawania i obsługi cyfrowych certyfikatów.
Z certyfikatami łaczy się również zagadnienie elektronicznego podpisu.
PGP (Pretty Good Privacy)
Dosł. \”Całkiem niezła prywatność\”. Stworzony w 1991 roku przez Phila Zimmermana program do szyfrowania wiadomości oraz sygnowania ich techniką cyfrowych podpisów.
PGP wykorzystuje zarówno algorytmy szyfrowania z kluczem symetrycznym (DES, IDEA) jak i kluczem asymetrycznym (RSA). System znajduje także zastosowanie jako narzędzie do szyfrowania plików na dysku twardym oraz metoda tworzenia wirtualnych sieci prywatnych (VPN – Virtual Private Network) bazujących na szyfrowanym połączeniu IP.
Ponieważ szyfrowanie z kluczem publicznym jest czynnością czasochłonną, PGP do kodowania wiadomości wykorzystuje wydajniejsze szyfrowanie tradycyjne – z pojedynczym kluczem. Klucz ten następnie szyfrowany jest za pomocą klucza prywatnego nadawcy i wraz z zakodowaną depeszą przesyłany siecią. Posiadacz klucza publicznego nadawcy odtwarza przy jego pomocy klucz pojedynczy i deszyfruje treść wiadomości.
Przykładowo, wiadomość o treści:
Całkiem niezła prywatność
po zaszyfrowaniu w PGP przyjmie następującą postać:
—–BEGIN PGP MESSAGE—–
Version: PGPfreeware 5.5.3i
for non-commercial use
qANQR1DBwA4D/60/p9Jq95YQAwCrK1qm1or
IdtMpQIguj5Y85c 4c5pv95uPqR4OxCw/XIuKfmO
TAQkwOl/Fb5BX7JzyCbP7hTSo i6qLW7oSeq/vu
QRjJXGGit8jivIG pQixftLq6g6h6W5A6Vrdl6ACTC
PYC/1A8vZaP69Ryxe+sBiTx9em77E38n5QIQ4wf
dQyRiiP8urpfKZqI7jLL+/gD77Hep5h4cu492CRbG
dgFsmVErapvCqTYIubj5vOyDXF rvAuQ8wEQn63
XN7nrER52KQZIK Mk7OXdQSNnwXVJhriskOqP9i
7xp UxCFgaiSo7RjfjgXURKEKpc7hUxo02Ifnq/QW
eoMRgNJR8MFxjk+FqE==OBsQ
—–END PGP MESSAGE—–
________________________________________
Potyczki z prawem
W Stanach Zjednoczonych wykorzystywanie algorytmów kryptograficznych (uważanych za technologie o znaczeniu militarnym) podlega wielu restrykcjom. Zabroniony jest m.in. eksport silnych systemów kryptograficznych poza granice USA. Phill Zimmerman doświadczył skutków takiej polityki na własnej osobie. Po udostępnieniu w 1991 roku programu PGP 2.3a w Internecie, wszczęto przeciwko niemu śledztwo, które toczyło się niemal trzy lata.PGP jest jednak obecnie dostępne na całym świecie w pełnej, \”nieocenzurowanej\” wersji. Jak to możliwe? Stało się tak dzięki wykorzystaniu niewielkiej luki w przepisach eksportowych. Stanowią one, iż restrykcją podlega postać elektroniczna technologii, zaś prawo nie wspomina ani słowem o formie drukowanej. Autor programu skwapliwie skorzystał z okazji – kody źródłowe PGP zostały wydrukowane i w tej postaci przewiezione do Europy. Tam kilkudziesięciu ochotników zeskanowało 6000 kartek papieru, po czym całość za pomocą programu rozpoznającego drukowane pismo zamieniono na kod źródłowy w postaci elektronicznej. Po skompilowaniu kodu, aplikację w wersji 5.0i udostępniono w Internecie – tym razem już całkowicie legalnie.
________________________________________
PGP dostępny jest dla najważniejszych systemów: DOS, Windows, różnych odmian Uniksa, Amigi, OS/2, etc. Istnieją dwie zasadnicze, różniące się typem licencji wersje: komercyjna (dla firm) oraz darmowa (do użytku prywatnego). Dostępne są także nakładki na popularne programy pocztowe (MS Outlook, Eudora, etc.).
SSL (Secure Sockets Layer)
Protokół kryptograficzny opracowany przez firmę Netscape Communications zapewniający bezpieczny kanał komunikacyjny między klientem a serwerem. Wykorzystywany do przesyłania zaszyfrowanych informacji przez Internet. Niepisany standard w dziedzinie tzw. bezpiecznej transmisji, \”rozumiany\” przez większość popularnych serwerów WWW.
Dlaczego SSL?
SSL a standardowe protokoły Internetu
Charakterystyka SSL
Przebieg sesji SSL
SSL w przeglądarce internetowej
Coś za coś…
Dlaczego SSL?
Standardowo, dokumenty i pliki przesyłane są poprzez Internet w niezaszyfrowanych pakietach. Istnieje więc niebezpieczeństwo przechwycenia ich i odczytania przez osobę (hakera) dysponującego odpowiednimi narzędziami i wiedzą. Jednak, gdy używany jest protokół SSL, wiadomości przed przesłaniem są szyfrowane, a tym samym stają się praktycznie bezużyteczne (bo nieczytelne) dla kogoś komu uda się je przechwycić.
SSL a standardowe protokoły Internetu
SSL jest protokołem ogólnego przeznaczenia. W założeniu stanowi uzupełnienie protokołów już istniejących, działając poniżej warstwy aplikacji (HTTP, FTP, SMTP, telnet, etc.) a powyżej warstw sieci i transportu (TCP/IP). Jego zadaniem jest stworzenie wirtualnego, odpornego na próby podsłuchiwania kanału transmisji dla informacji przesyłanych przez aplikacje (serwery i klienty WWW, FTP, poczty elektronicznej i inne).
Charakterystyka SSL
Podstawowe cechy protokołu SSL:
• Certyfikowanie, czyli metody autoryzacji serwerów internetowych i klientów.
• Szyfrowanie – poufność przesyłanych informacji
• Sumy kontrolne – integralność danych
Protokół SSL używany jest wszystkim przez witryny e-commerce, gdzie możliwość dokonania zakupów bez obawy o przechwycenie poufnych danych (np. numerów kart kredytowych) jest szczególnie ważna.
Przebieg sesji SSL
SSL wykorzystuje dwa rodzaje kryptografii: symetryczną (z pojedynczym kluczem) oraz niesymetryczną (z kluczem prywatnym i publicznym).
Pierwszą operacją po nawiązaniu połączenia jest wymiana informacji uwierzytelniających serwera oraz, jeżeli zachodzi taka konieczność, klienta. W tej fazie wykorzystywane są cyfrowe certyfikaty, wystawiane po szczegółowej kontroli wiarygodności przez niezależne urzędy CA (Certification Authorities). Certyfikaty poza informacjami o charakterze ogólnym zawierają także klucze publiczne ich właścicieli. Za pomocą certyfikatów można więc zweryfikować autentyczność zarówno serwera jak i klienta.
Podczas pierwszego połączenia komputery uzgadniają także rodzaj algorytmu kryptograficznego, jakiego będą używać – wybierany jest zawsze najmocniejszy z dostępnych obu stronom. Następnie każda z maszyn generuje tzw. klucz sesji (symetryczny), który posłuży jej do szyfrowania wysyłanych informacji. Klucze te zostają zakodowane przy pomocy klucza publicznego \”rozmówcy\” i przekazane drugiej stronie. Każdy z komputerów dekoduje klucz sesji za pomocą własnego klucza prywatnego i od tego momentu klucz sesji może już służyć do deszyfrowania otrzymywanych danych.
Nawiązanie bezpiecznego połączenia opiszemy (w uproszczeniu) na przykładzie klienta próbującego odczytać przy pomocy przeglądarki ważne informacje o swoim koncie bankowym:
1. Serwer banku przesyła swój certyfikat do komputera klienta.
2. Komputer klienta weryfikuje autentyczność certyfikatu banku.
3. Komputer klienta wydobywa z certyfikatu klucz publiczny instytucji.
4. Na podstawie informacji zawartych w certyfikacie banku klient stwierdza, że może przyjąć algorytm kryptograficzny o długości klucza 128 bitów.
5. Komputer klienta generuje klucz sesyjny, który posłuży do szyfrowania transmisji.
6. Komputer Klienta szyfruje klucz sesyjny za pomocą klucza publicznego banku i przesyła go do serwera banku.
7. Serwer Banku wykorzystuje swój klucz prywatny do rozkodowania klucza sesyjnego.
SSL w przeglądarce internetowej
SSL obsługiwany jest przez większość popularnych przeglądarek internetowych, m.in. Netscape Navigator, Internet Explorer, Operę oraz Lynx. Istotną rolę odgrywa długość zaimplementowanych w programie kluczy, czyli liczba składających się nań bitów. Im klucz jest dłuższy, tym trudniej jest go złamać. Współcześnie używane klucze sesji liczą 128-bitów, klucze publiczne – 1024 bity i ten poziom bezpieczeństwa można uznać za wystarczający. Jednakże ze względu na narzucone przez Stany Zjednoczone ograniczenia w eksporcie technologii kryptograficznych (ITAR), poza USA przeglądarki rozpowszechniane są w tzw. wersjach międzynarodowych – z krótszym, 40-bitowym kluczem głównym oraz 512-bitowym kluczem publicznym. Posiadacze Netscape Navigatora mogą ominąć te obostrzenia instalując nakładkę o nazwie Fortezza, która zwiększa długość kluczy do oryginalnych wartości.
Fakt, iż bieżące połączenie nawiązane zostało z użyciem protokołu SSL, można sprawdzić w okienku adresu przeglądarki. Adres URL strony zaczyna się wówczas od liter \”https://\” (zamiast zwykłego \”http://\”), a przeglądarka informuje, że \”Za chwilę obejrzysz strony w bezpiecznym połączeniu. Informacje wymieniane z tą witryną nie są widoczne dla nikogo innego w sieci Web\”. Każdorazowe przejście z dokumentu chronionego protokołem SSL do dokumentu niezaszyfrowanego poprzedzane jest wyświetleniem okna z takim ostrzegawczym komunikatem (i vice versa). Równocześnie na pasku stanu (u dołu ekranu) pojawia się ikona zamkniętej kłódki. Kliknięcie w ten symbol umożliwia zapoznanie się z informacjami o certyfikacie posiadanym przez serwer instytucji której strony odwiedzamy.
Jeżeli o serwerze wiadomo, że obsługuje protokół SSL, można pobrać z niego dowolny dokument w trybie bezpiecznego połączenia poprzez niewielką modyfikację adresu URL. Wystarczy zastąpić prefiks \”http\” ciągiem \”https\” – np. zamiast:
http://www.firma.pl/dokument.html
należy podać:
https://www.firma.pl/dokument.html
Identyczny prefiks mają adresy wszystkich oglądanych w bezpiecznym połączeniu stron WWW. Z kolei formularze służące do podawania poufnych informacji posiadają odpowiednio zmodyfikowany prefiks adresu URL w atrybucie action znacznika