Bezpieczeństwo w internecie- szyfrowanie

Download Report

Transcript Bezpieczeństwo w internecie- szyfrowanie

Kryptografia asymetryczna
Kryptografia asymetryczna to rodzaj kryptografii, w którym używa
się zestawów dwu lub więcej powiązanych ze sobą kluczy,
umożliwiających wykonywanie różnych czynności
kryptograficznych.
Najważniejsze zastosowania kryptografii asymetrycznej –
szyfrowanie i podpisy cyfrowe – zakładają istnienie 2 kluczy –
prywatnego i publicznego, przy czym klucza prywatnego nie da się
łatwo odtworzyć na podstawie publicznego. W niektórych innych
zastosowaniach kluczy może być więcej.
Algorytmy mające zastosowanie w kryptografii asymetrycznej
wykorzystują operacje jednokierunkowe - takie, które da się
łatwo przeprowadzić w jedną stronę a bardzo trudno w drugą.
Np. mnożenie jest łatwe, a faktoryzacja trudna (na czym opiera
się RSA). Potęgowanie modulo jest łatwe, a logarytmowanie
dyskretne jest trudne (na czym opierają się ElGamal, DSA i
ECC).
Historia
Kryptografia asymetryczna została oficjalnie wynaleziona przez
cywilnych badaczy Martina Hellmana, Whitfielda Diffie i
niezależnie przez Ralpha Merkle w 1976 roku. Dopiero pod
koniec XX wieku brytyjska służba wywiadu elektronicznego
GCHQ ujawniła, że pierwsza koncepcja systemu szyfrowania z
kluczem publicznym została opracowana przez jej pracownika
Jamesa Ellisa już w 1965 roku, a działający system stworzył w
1973 roku Clifford Cocks, również pracownik GCHQ. Odkrycia
te były jednak objęte klauzulą tajności do 1997 roku. Obecnie
kryptografia asymetryczna jest szeroko stosowana do wymiany
informacji poprzez kanały o niskiej poufności jak np. Internet.
Stosowana jest także w systemach elektronicznego
uwierzytelniania, obsługi podpisów cyfrowych, do szyfrowania
poczty (OpenPGP) itd.
Szyfrowanie
Klucz publiczny używany jest do zaszyfrowania informacji,
klucz prywatny do jej odczytu. Ponieważ klucz prywatny jest
w wyłącznym posiadaniu adresata informacji, tylko on może
ją odczytać. Natomiast klucz publiczny jest udostępniony
każdemu, kto zechce zaszyfrować wiadomość.
Krok 1: Alice przesyła do Boba swój klucz publiczny
Kroki 2 & 3: Bob szyfruje wiadomość kluczem publicznym Alice,
która to następnie otrzymuje wiadomość i rozszyfrowuje ją.
Szyfry współczesne
Współcześnie możemy podzielić metody szyfrowania
na 3 grupy:
* szyfry asymetryczne
* symetryczne szyfry blokowe
* symetryczne szyfry strumieniowe
Szyfry blokowe
to procedury, które szyfrują niewielkie bloki danych (znacznie mniejsze od
typowej wiadomości), współcześnie jest to najczęściej 128 bitów (AES),
choć do niedawna przeważały 64-bitowe bloki (DES, 3DES, Blowfish,
IDEA). Klucze są znacznie mniejsze, mają zwykle od 128 do 256 bitów, przy
czym wartości mniejsze od 80 (DES – 56) są uważane za niewystarczające.
Typowy szyfr blokowy składa się z kilkunastu dość prostych rund
przekształcających blok. Operacje używane w tych szyfrach są zwykle
proste, ale pochodzą z "różnych światów", np. używa się dodawania, XOR,
przesunięć cyklicznych, różnego typu S-BOXów, mnożenia modulo liczb
pierwszych itd. Już kilka rund takich operacji zupełnie zaburza jakikolwiek
porządek i jest bardzo trudne do analizowania.
Ponieważ szyfr blokowy szyfruje jedynie niewielką ilość informacji, używane
są różne tryby szyfrowania, które umożliwiają szyfrowanie większych
wiadomości.
Szyfry strumieniowe
szyfrują każdy znak tekstu jawnego osobno, generując znak strumienia
szyfrującego i przekształcając go na przykład z użyciem funkcji XOR
ze znakiem danych, w związku z czym nie jest konieczne oczekiwanie
na cały blok danych, jak w przypadku szyfrów blokowych.
Najpopularniejszym współczesnym szyfrem strumieniowym jest RC4.
Inne popularne szyfry strumieniowe to A5/1 i A5/2 stosowane w
telefonii komórkowej. Do szyfrów strumieniowych należą też
historyczne szyfry polialfabetyczne i monoalfabetyczne.
Niektóre z trybów szyfrów blokowych – CFB, OFB, CTR – działają jako
szyfry strumieniowe, generując strumień szyfrujący i XORując dane.
Osobnym szyfrem w swojej klasie jest one time pad.
Podpis elektroniczny
Definicje podpisu elektronicznego:
Można podać trzy definicje podpisu elektronicznego:
a) podpis elektroniczny to ciąg danych w postaci elektronicznej, które wraz z danymi,
do których zostały dołączone lub z którymi są logicznie powiązane, służą do
identyfikacji osoby składającej podpis elektroniczny
b) podpis elektroniczny, podpis cyfrowy, sygnatura cyfrowa, DSA (ang. digital
signature), zaszyfrowane za pomocą klucza prywatnego nadawcy streszczenie
komunikatu dodane do komunikatu jako podpis. Odbiorca może sprawdzić podpis
cyfrowy, odszyfrowując go za pomocą jawnego klucza nadawcy i porównując z
wynikiem zastosowania funkcji streszczającej do otrzymanego komunikatu.
c) definicja podpisu cyfrowego wg. PN-I-02000 (Polska Norma) - przekształcenie
kryptograficzne danych umożliwiające odbiorcy danych sprawdzenie autentyczności i
integralności danych oraz zapewniające nadawcy ochronę przed sfałszowaniem
danych przez odbiorcę.
Cztery główne warunki podpisu cyfrowego:
1. uniemożliwienie podszywania się innych pod daną osobę
(uwierzytelnienie osoby, autentyfikacja)
2. zapewnienie wykrywalności wszelkiej zmiany w danych transakcji
(integralność transakcji)
3. zapewnienie niemożliwości wyparcia się podpisu przez autora
4. umożliwienie weryfikacji podpisu przez osobę niezależną
Zasada działania podpisu elektronicznego
Podpisy elektroniczne opiera się o tzw. szyfry asymetryczne.
W przypadku szyfrów asymetrycznych inny klucz służy do kodowania wiadomości, a
inny do jej rozkodowywania. Klucze te połączone są ścisłą zależnością matematyczną,
jednak na tyle złożoną, że znajomość samego algorytmu szyfrowania oraz klucza
użytego do kodowania w praktyce nie pozwala na znalezienie klucza rozkodowującego
a tym samym na rozszyfrowanie wiadomości. Podstawową zaletą szyfru
asymetrycznego jest więc możliwość ujawnienia klucza używanego do
zaszyfrowywania wiadomości. Nazywany jest on kluczem publicznym. Inaczej sprawa
wygląda z kluczem do rozkodowywania wiadomości - jest zachowany w tajemnicy
przez właściciela i nazywany kluczem prywatnym.
Poza bezpieczeństwem niewątpliwym atutem szyfrów asymetrycznych jest łatwość
zarządzania kluczami. W praktyce klucze publiczne są wysyłane na specjalne
serwery, dzięki którym każda zainteresowana osoba może je w dowolnej chwili
poznać. Jeżeli chcemy wysłać znajomemu zaszyfrowaną wiadomość, wystarczy
sprawdzić na takim serwerze jaki jest jego klucz publiczny, tym kluczem zaszyfrować
wiadomość i wysłać. Przeczytać będzie ją mógł tylko ktoś kto zna klucz prywatny
odbiorcy a więc on sam.
Aby wyjaśnić w jaki sposób generowany jest podpis elektroniczny należy
wprowadzić pojęcie funkcji skrótu. Funkcja skrótu pozwala uzyskać z wiadomości o
dowolnej długości tekst (reprezentację tekstową liczby) o stałej długości. Dobra
funkcja skrótu jest:
- jednokierunkowa tzn. mając wartości funkcji skrótu niemożliwe jest wygenerowanie
odpowiadającej jej wiadomości
- dla różnych wiadomości generuje różne wartości tzn. nie ma dwóch różnych
wiadomości, dla których wartość funkcji skrótu byłaby taka sama
Generowanie podpisu elektronicznego.
Procedura generacji podpisu wygląda następująco: nadawca wiadomości "A" oblicza
wartość funkcji skrótu dla wiadomości, którą chce wysłać, a następnie szyfruje
otrzymany krótki tekst za pomocą swojego swojego prywatnego klucza. Wynik tej
operacji jest podpisem elektronicznym dla danej wiadomości. Teraz "A" wysyłając
podpisaną wiadomość do "B" tworzy trzyczęściową przesyłkę składającą się z:
- wiadomości do "B"
- wcześniej wygenerowanego podpisu cyfrowego
- doklejonego własnego klucza publicznego
W celu zweryfikowania podpisu odbiorca wiadomości "B" wykonuje następujące
czynności:
- oblicza wartość funkcji skrótu dla otrzymanej wiadomości
- wiedząc, że wiadomość pochodzi od "A" używa jego klucza publicznego do
deszyfrowania podpisu elektronicznego
Podpis elektroniczny musi spełniać te same warunki co podpis
odręczny. W praktyce jest od niego bardziej wiarygodny. Aby się o tym
przekonać należałoby obalić kilka mitów o komputerach. Pierwszym
mitem, z którego nieprawdziwości trzeba zdać sobie sprawę, jest
opinia, że "komputerem wszystko da się policzyć". Nic bardziej
mylnego. Możliwość złamania podpisu elektronicznego jest czysto
teoretyczna, bo rezultat otrzymalibyśmy po setkach albo tysiącach lat
obliczeń a trudno sobie wyobrazić sytuację, w której ujawnienie danych
po takim czasie mogłoby cokolwiek zmienić. Pozornie więc
matematyka wygrywa z komputerami, ponieważ stwarza problemy,
których praktycznie nie da się przy ich pomocy rozwiązać. Dzięki
umiejętnemu połączeniu matematyki i komputerów, możemy stworzyć
systemy zabezpieczeń znacznie skuteczniejsze niż dotychczas.
Znaczniki czasu
Podpis elektroniczny daje nową możliwość zabezpieczeń.
Umożliwia niepodważalne oznaczenie czasu złożenia podpisu.
Wyklucza to ponowne i wielokrotne wprowadzenie do obiegu tego
samego podpisanego kiedyś dokumentu. Dowolna osoba mogłaby
zachować kopię wystawionego na nią czeku w swoim komputerze, a
po zrealizowaniu przedstawić starą kopię w innym banku tydzień
później i ponownie zrealizować ten sam czek. Powtarzając tę operację
wielokrotnie mogłaby dorobić się fortuny ale algorytmy podpisu
elektronicznego na ogół są wyposażone w datowniki (ang.
timestamps). Wzmacnia to istotnie siłę kryptograficzną tych
algorytmów. Data i czas podpisu są dołączane do dokumentu i
podpisywane razem z jego treścią. W podanym wyżej przykładzie bank
przechowywałby ten znacznik czasu w bazie danych i przed transakcją
mógłby porównać "nowy" czek z przechowywanym w bazie danych,
przede wszystkim przez sprawdzenie znacznika czasu na oryginalnym
czeku.
Certyfikaty i urzędy certyfikacji
Samo zastosowanie technik kryptograficznych to jednak
dopiero połowa zadania. Zaszyfrowanie lub elektroniczne
podpisanie dokumentu nie daje bowiem gwarancji, że osoba,
która użyła klucza prywatnego jest tą za którą się podaje.
Gwarancję taką ma dać system certyfikacji kluczy.
"Papierowym" dokumentem tożsamości każdej osoby jest jej
dowód osobisty natomiast elektronicznym jej identyfikatorem
będzie właśnie certyfikat.
Certyfikat cyfrowy to elektroniczne zaświadczenie, za
pomocą którego dane służące do weryfikacji podpisu
elektronicznego są przyporządkowane do określonej osoby i
potwierdzają jej tożsamość. Fizycznie jest to ciąg informacji
zapisanych na odpowiednim nośniku np. karcie procesorowej.
Certyfikat cyfrowy posiada następujące informacje:
- unikalny numer seryjny
- tożsamość urzędu certyfikacji wydającego certyfikat
- okres ważności certyfikatu
- identyfikator właściciela certyfikatu (imię, nazwisko, pseudonim,
e-mail itp.)
- klucz publiczny właściciela certyfikatu
- podpis cyfrowy urzędu certyfikacji potwierdzający autentyczność
certyfikatu
Certyfikacji dokonuje odpowiedni organ, będący czymś
w rodzaju notariusza, a więc instytucją zaufania publicznego,
poświadczającą autentyczność danego klucza publicznego.
Jest to tzw. Zaufana Trzecia Strona
(ang. Trusted Third Party).
Zadaniem urzędu certyfikacji jest wydawanie
i zarządzanie certyfikatami potwierdzającymi,
że dana osoba jest rzeczywiście tą,
za którą się podaje.
Wiele firm korzysta z podpisu elektronicznego i certyfikatów w
elektronicznej wymianie handlowej. Przykładem jest platforma
horyzontalna B2B Marketplanet, gdzie wykorzystywane są certyfikaty
Signetu. Oczywiście, podpisywać elektronicznie mogą też zwykli
śmiertelnicy przesyłając dowolne, prywatne listy. Należy jednak
pamiętać, że istnieje problem z darmowymi kontami pocztowymi.
Zwykle w listach przesyłanych przez darmowe serwery pocztowe
dodawane są stopki reklamowe. W efekcie tego odbiorca listu
otrzyma informację, że podpis jest nieważny. Stopka reklamowa
zmieniła bowiem treść wiadomości, a jak wiadomo, podpis ma
właśnie zapewnić nas, że wiadomości nie zmieniono podczas jej
wysłania. Mimo że stopka nie ingeruje w treść wiadomości, certyfikat
tak właśnie ją zinterpretuje.
Wybrane centra certyfikacji
www.podpis.onet.pl
www.certum.pl
www.signet.pl
www.polcert.pl
www.sigillum.pl