czwartek, lutego 14, 2008

Znowu SSL
Ale w szerszym zakresie. SSL stosuje elementy kryptografii a właściwie kodowanie trzech typów:
  1. hash - kodowanie w jedną stronę, służy do sprawdzenie nienaruszalności danych, jest to algorytm obliczający skrót jakiegoś długiego dokumentu. Skrót ten ma być unikalny. Każdy inny dokument daje w wyniku inny skrót. Zwykle ten skrót poddaje się szyfrowaniu. Odbiorca odszyfrowuje skrót ponownie i oblicza skrót na podstawie otrzymanej wiadomości. Oba te skróty powinny być jednakowe.
  2. symetryczne - do szyfrowanie treści służy jeden i ten sam klucz. Obliczenia związane z szyfrowaniem kluczem symetrycznym są szybkie i służą do szyfrowania dużych treści przesyłanych informacji. Problem jest jednak z wymianą tego klucza (dostarczeniem) do nadawcy i odbiorcy tak aby haker nie mógł go przechwycić.
  3. asymetryczne - stosowane są dwa klucze: prywatny (u nadawcy-autora) i publiczny (dostępny wszystkim). Do szyfrowania mogą służyć oba klucze. Szyfrując kluczem publicznym kogoś powodujemy, że tylko on może odczytać wiadomość. Szyfrując swoim kluczem prywatnym wszyscy inni mogą wiadomość odczytać. Problem jest jednak weryfikacją kto stoi za tym kluczem.
Ten ostatni problem rozwiązują certyfikaty właściciela. Są wydawane przez tzw. zaufane urzędy i stanowią paczkę informacji (klucz publiczny właściciela, informację o nim oraz informację o wystawcy/wystawcach certyfikatu oraz dodatkowo klucz publiczny urzędu wystawiającego).
Certyfikat jest zaszyfrowany kluczem prywatnym tego urzędu. Kiedy odbiorca odczytuje certyfikat przy pomocy klucza publicznego urzędu to wie, że dane pochodzą od tego urzędu, a dane te to informacja o nadawcy.
W celu zapanowania nad wydanymi certyfikatami każdy z nich ma okres ważności (dlatego trzeba go odnawiać) i stworzono listę certyfikatów odwołanych (CRL).
Urzędy certyfikacyjne są wbudowane w przeglądarki internetowe i podczas aktualizacji przeglądarek mogą być dodane lub usunięte.
Jak to działa razem?
  • Połączenie inicjuje klient i podaje serwerowi swoje możliwości kodowania
  • Serwer odpowiada wysyłając do klienta swoje możliwości i swój certyfikat oraz losowe dane
  • Klient sprawdza certyfikat czy jest ważny i zaufany
  • Gdy certyfikat serwera jest OK to klient wysyła losowo wygenerowany klucz sesji i koduje go kluczem publicznym serwera (może też wysłać dane autentykujące go zakodowane też kluczem pub. serwera)
  • Serwer to odbiera i rozkodowuje swoim kluczem prywatnym, teraz ma klucz od klienta tzw. master key (mają dzięki temu ten sam klucz). Posłuży on do generowanie klucz sesji
Źródło: TechRepublic

Brak komentarzy: