Sieci komputerowe
Wykład 7.
Bezpieczeństwo w sieci
Paweł Niewiadomski
Katedra Informatyki Stosowanej
Wydział Matematyki UA
niewiap@math.uni.lodz.pl
Zagadnienia związane z
bezpieczeństwem
" Poufność (secrecy) informacja może
zostać odczytana tylko przez
uprawnionych użytkowników
" Uwierzytelnianie (authentication)
upewnienie się, że dany użytkownik jest
tym, za kogo się podaje?
Zagadnienia związane z
bezpieczeństwem
" Niezaprzeczalność (nonrepudiation)
upewnienie się, że dany użytkownik nie
może wyprzeć się pewnych swoich
czynności
" Nienaruszalność (integrity) upewnienie
się, że informacja nie została
zmodyfikowana w drodze od nadawcy do
odbiorcy
Co może stać się z
niezabezpieczoną informacją?
" Przykładowy e-mail:
Zamawiam 1 bilet lotniczy do Londynu
Proszę obciążyć moją kartę kredytową nr. xyz
Jan Kowalski, ul. Akacjowa 5 m. 36 Aódz
" Przykładowe problemy:
Ktoś może przechwycić numer karty kredytowej
Kowalskiego gdy e-mail będzie w drodze (poufność).
Kowalski może wysłać swoją wiadomość do kogoś,
kto jedynie podaje się za biuro podróży i ujawnić mu
swoje dane osobowe i numer karty kredytowej
(uwierzytelnianie).
Kowalski może twierdzić, że wcale nie wysłał takiego
zamówienia (niezaprzeczalność).
Ktoś po drodze może zmienić 1 na 20 , Londynu
na Honolulu (nienaruszalność)
Kryptografia
" Jak to działa?
Nadawca szyfruje wiadomość
Wiadomość jest przesyłana w formie
zaszyfrowanej przez sieć
Odbiorca odszyfrowuje wiadomość
" Sposoby szyfrowania:
kody zamiana słów np. rozmowa w
obcym języku
szyfry zamiana znaków bądz innych
arbitralnie wybranych kwantów informacji
Kryptografia
" Szyfrowanie podstawowe pojęcia:
niezaszyfrowana wiadomość tekst jawny
plaintext (P)
zaszyfrowana wiadomośc szyfrogram cipher (C)
Po stronie nadawcy ma miejsce transformacja
EK1(P) C
C transportowany jest przez sieć
Po stronie odbiorcy ma miejsce transformacja
DK2(C) P
E i D są ogólnie znanymi funkcjami dwóch
zmiennych:
" pierwsza zmienna dane (C lub P)
" druga zmienna klucz znany tylko odbiorcy i/lub nadawcy
(K1, K2)
Kryptografia
" Proste szyfry:
zamiana znaków łamigłówki z gazet
" przykład: ABCDEFGHI& QWERTYUIOP...
" BABCIA WQWEOQ
" klucze ciąg złożony z zaszyfrowanych kolejnych liter
alfabetu
zamiana kolejności znaków
" przykład wypisujemy tekst po pięć liter w linijce, a potem
spisujemy kolumny
" alamakotaatomekmapsa
alama
kotaa aktmlooaatmpmaesaaka
tomek
mapsa
" klucz ilość kolumn
bardzo łatwo odkryć klucz mając do dyspozycji
zaszyfrowany tekst
Kryptografia
" Prosta bezwarunkowo bezpieczna metoda
szyfrowania one-time pad połączona z
algorytmem XOR
klucz generowany losowo, jednorazowy
oraz długości co najmniej takiej, jak długość
wiadomości
algorytm szyfrowania (E): P xor K C
algorytm odszyfrowania (D): C xor K P
wady wynikają z powyższych cech klucza
Kryptografia
" Inne metody pośrednie
mniejsza odporność na złamanie szyfru, niż one-time
pad
większa wygoda użytkowania
" Zabezpieczenie przed aktywnymi atakami:
nadmiarowość informacji (redundancy) nie każdy
szyfrogram po odszyfrowaniu da prawidłowy tekst
jawny tekst jawny powinien zawierać jakiś rodzaj
sumy kontrolnej
" zabezpiecza przed przesyłaniem losowych informacji przez
intruza
znaczniki czasu (timestamp) informacja staje się
nieaktualna po pewnym czasie
" zabezpiecza przed ponownym przesyłaniem tej samej
zaszyfrowanej wiadomości (np. zamówienia)
Kryptografia - klucze
" EK1(P) C a" C = E (P,K1)
" DK2(C) P a" P = D (C,K2)
" E, D funkcje dwóch zmiennych
" K1, K2 klucze (druga zmienna)
tylko znając klucz możemy zaszyfrować/odszyfrować
wiadomość
algorytm nie powinien dawać możliwości znalezienia
klucza nawet, gdy mamy do dyspozycji P i
odpowiadający mu C
klucz jest często sumą kontrolną wygenerowaną na
podstawie jakiegoś hasła
im większa długość klucza, tym trudniej go odgadnąć
Kryptografia - klucze
" Szyfry symetryczne (metody klucza
tajnego)
K1=K2
DES, 3DES, IDEA, AES, RC5
" Szyfry asymetryczne (metody klucza
jawnego)
K1`"K2 jeden klucz ogólnodostępny, drugi
dostępny tylko konkretnej osobie
wiadomości zaszyfrowane przy pomocy K1
można odczytać tylko znając K2 i odwrotnie
RSA, DH, DSA
Kerberos
" System korzystający tylko z kluczy prywatnych
" Wykorzystany m.in. w Win 2000/2003 Server
" Oparty na
założeniu, że jest tylko jeden bezpieczny serwer
systemie tzw. biletów
" Obsługa:
uwierzytelniania
poufności
nienaruszalności
Kerberos - uwierzytelnianie
" Problem:
dwa hosty w sieci:
" klient
" serwer
Skąd serwer wie, że klient jest tym, za kogo się
podaje?
Skąd klient wie, że serwer jest tym, za kogo się
podaje?
Rozwiązanie zarówno klient jak i serwer muszą
dysponować hasłem, które po wymieszaniu (hash)
daje klucz odpowiednio serwera (KS) i klienta (KK)
Oba te hasła zna dodatkowo bezpieczny serwer
uwierzytelniający (SU)
Kerberos - uwierzytelnianie
" Gracze:
klient (K)
serwer (S)
serwer uwierzytelniający (SU)
serwer przyznający bilety (SPB)
Kerberos - uwierzytelnianie
" Sytuacja 1 - klient K loguje się do systemu
K SU: proszę o przyznanie biletu do SPB
SU K: BSPB, EKK (KK/SPB, Czasy, & )
" BSPB = EKSPB(KK/SPB, Czasy, & )
K podaje hasło generowany jest na jego
podstawie klucz KK
K odszyfrowuje wiadomość i uzyskuje KK/SPB
Teraz klient posiada BSPB oraz KK/SPB
Kerberos - uwierzytelnianie
" Sytuacja 2 - klient K chce uzyskać dostęp
do usługi na serwerze S
K SPB: BSPB, EKK/SPB (ID, TS,& )
" BSPB = EKSPB(KK/SPB, Czasy, & )
SPB odszyfrowuje BSPB i uzyskuje KK/SPB
SPB odszyfrowuje wiadomość i ustala
tożsamość K na podstawie ID
SPB K: BS, EKK/SPB(KK/S, Czasy,& )
" BS = EKS(KK/S, Czasy, & )
Kerberos - uwierzytelnianie
" Sytuacja 3 klient K chce skorzystać z usługi na
serwerze S
K S: BS, KKK/S(ID, TS,& )
" BS = EKS(KK/S, Czasy, & )
S odszyfrowuje bilet i uzyskuje KK/S
S odszyfrowuje wiadomość przy użyciu KK/S i
uzyskuje tożsamość użytkownika
S sprawdza w swojej bazie danych, czy użytkownik
ma prawo dostępu do usługi
dodatkowo, w celu uwierzytelnienia serwera może
mieć miejsce:
S K: KKK/S (IDS, TS, & )
Kerberos poufność i
nienaruszalność
" Nienaruszalność
K i S mogą wyliczać sumy kontrolne z
przesyłanych danych i szyfrować je przy
pomocy KK/S jeśli dane zostaną zmienione,
suma kontrolna nie będzie się zgadzać, bo
nikt oprócz S i K nie jest w stanie jej
poprawnie zaszyfrować
" Poufność
K i S mogą szyfrować wszystkie przesyłane
dane przy pomocy KK/S
zapewnia również nienaruszalność
Pretty Good Privacy
" Ochrona poczty elektronicznej:
poufność
uwierzytelnianie
niezaprzeczalność
nienaruszalność
" Wykorzystane technologie
kryptograficzne:
szyfrowanie asymetryczne
szyfrowanie symetryczne
tworzenie skrótów cyfrowych (hash)
PGP podstawy
" Gracze:
nadawca N
odbiorca O
wiadomość jawna P, wiadomość
zaszyfrowana C
" Klucze:
KNPr, KNPu klucze prywatny i publiczny
nadawcy
KOPr, KOPu klucze prywatny i publiczny
odbiorcy
KS jednorazowo generowany klucz sesji
PGP poufność i nienaruszalność
" Najprościej byłoby zaszyfrować całą
wiadomość algorytmem RSA z kluczem
publicznym odbiorcy, ale:
RSA b. wolny (100 x wolniejszy niż
DES/IDEA)
" Wiadomość generujemy następująco:
IDEAKS(P), RSAKPuO(Ks)
" Odbiorca odszyfrowuje KS przy pomocy
KPrO, a następnie odszyfrowuje P przy
pomocy KS
PGP Uwierzytelnianie i
niezaprzeczalność
" Podpis cyfrowy (digital signature) - DS
" Najprościej byłoby zaszyfrować całą wiadomość kluczem
prywatnym nadawcy, ale:
odszyfrowywanie powolne (algorytm RSA)
" N tworzy z wiadomości skrót cyfrowy (message digest)
przy pomocy algorytmu haszującego (np. MD5) i ten
skrót szyfruje przy pomocy KNPr:
RSAKNPr(MD5(P)) DS
" N dołącza DS do wiadomości
" O odszyfrowuje MD5(P) przy pomocy KNPu, a następnie
sam generuje skrót MD5 z otrzymanej wiadomości
" Jeżeli te dwa skróty są zgodne to:
N podpisał tą wiadomość
N podpisał tą wiadomość
PGP klucze
" Klucze prywatne przechowywane są w
odpowiedniej bazie w postaci
zaszyfrowanej:
IDEAMD5(hasło)(KPr)
" Klucze jawne innych użytkowników
również przechowywane są w
odpowiedniej bazie
PGP certyfikaty
" Problem ktoś może podszyć się pod inną osobę i
przesłać nam w jej imieniu swój klucz publiczny.
" Certyfikat cyfrowy sposób upewnienia się, że dany
klucz publiczny rzeczywiście pochodzi od tej, a nie innej
osoby
" Rodzaj dowodu osobistego . Zawiera:
wersję PGP
klucz publiczny użytkownika
jego dane osobowe
okres ważności
typ algorytmu asymetrycznego (RSA, DH, DHA)
preferowany algorytm symetryczny (IDEA, 3DES, CAST)
podpis cyfrowy właściciela klucza
jeden lub więcej podpisów cyfrowych osób trzecich
Certyfikaty X.509
" Również wykorzystywane w PGP
" Główne zastosowanie strony WWW
" Zawierają:
wersję X.509
klucz publiczny użytkownika
numer seryjny
unikatowy identyfikator użytkownika
okres ważności
unikatowy identyfikator instytucji certyfikującej
podpis cyfrowy instytucji certyfikującej
algorytm używany do podpisu
Secure Sockets Layer
" Zabezpiecza komunikację w sieci WWW:
wzajemne uwierzytelnianie klienta i serwera
poufna komunikacja
nienaruszalność danych
" Dodatkowa warstwa między warstwą aplikacji
(najczęściej HTTP) a warstwą transportu (TCP)
" Wykorzystane technologie kryptograficzne:
szyfrowanie asymetryczne
szyfrowanie symetryczne
tworzenie skrótów cyfrowych (hash)
SSL etapy
" Etap I nawiązanie połączenia
K S: wersja SSL, preferencje, LA
" LA informacja jednorazowa (nonce)
S K: Wersja SSL, wybór, LB
S K: Aańcuch certyfikatów X.509
" przeglądarki rozpoznają ok. 100 najważniejszych instytucji
certyfikujących
K S: EKSPu (PS)
" PS premaster secret wstępna tajna informacja
K i S znają LA, LB oraz PS generują na ich
podstawie klucz sesji (KSES) dalej używany do
szyfrowania danych
uwierzytelnianie K następuje już po nawiązaniu
bezpiecznego połączenia w ramach drugiego etapu
(standardowe formularze HTTP)
SSL etapy
" Etap II wymiana danych
podział danych na segmenty
kompresja segmentów
dodanie MAC (message authentication code)
MAC = Hash (segment, KSES) (algorytmy
MD5, SHA-1)
szyfrowanie przy użyciu KSES (algorytmy
symetryczne RC4, 3DES)
dodanie nagłówka
Wyszukiwarka
Podobne podstrony:
0708z sk zlm w07security howto 7 bif7pmbdlmrob6tcblpvwkf37huqfjqc5eeufry bif7pmbdlmrob6tcblpvwkf37huqfjqc5eeufrysecurity errorsW07 W08 SCRKlasyfikacje jÄ…kaniaSlow start up when using Norton Internet Security 2002 (3)W07 08 WYKLADY TIORB 2007 MECHANIZACJA CALOSC z rysunkamisecurity errorsWspółczynnik skCHRAPEK,podstawy robotyki, elementy sk?owe i struktura robotówsksecurity tipsjava security acl NotOwnerExceptionSHSpec 153 6205C29 Security Check Prepcheckingjava security NoSuchProviderExceptionwięcej podobnych podstron