Zapewnianie bezpieczeństwa w sieciach
Ryszard Wiatr
Przedmiot: Sieci komputerowe
Wykład 11
Zabezpieczenie sieci (informacji)
to uzyskiwanie pewności, że informacja
i usługi w sieci nie będą dostępne dla uzytkowników nieupoważnionych
Bezpieczeństwo sieci
Zabezpieczenie
zasobów fizycznych
Zabezpieczenie
informacji
Polityka zarządzania informacją
Ludzie są najsłabszym ogniwem w systemie informatycznym:
- zła wola pracownika
- nieodpowiedzialność
- nieświadomośc polityki informacyjnej firmy
Pracownik powinien być świadomy polityki zarządzania informacją w firmie:
- jak ważna jest informacja w mojeje organizacji?
- prawa autorskie, polityka firmy w dziedzinie powielania dokumentów
chronionych prawem autorskim
- jaką część dostępnej mi informacji mogę omawiać z innymi pracownikami,
z osobami spoza firmy
- czy firma używa informacji należących do innych podmiotów
- jakich informacji można udzielac klientom
- czy wolno mi zdalnie łaczyc się z zasobami firmy
To zbiór zasad dotyczących dostępu do informacji i jej ochrony
Firma
A
Firma
B
Firma
C
Gdy kilka organizacji wymienia informację, to powstaje wypadkowa
polityka informacyjna; organizacja nie zna skutków komunikacji i interakcji
i innymi organizacjami, chyba że uzgodniły swoje polityki na poziomie
wzajemnego zaufania
Tu organizacja A nie udostępnia swoich informacji organizacji C, ale może ona
docierać do niej pośrednio, mimo że polityka informacyjna każdej organizacji
jest przestrzegana
Zapewnianie bezpieczeństwa w intersieci
Autoryzacja
uwierzytelnianie
integralność
Zapewnienie
poufności
Zapewnienie
dostępności
Mechanizmy
uwierzytelniania
rozwiązywanie problemu
potwierdzania tożsamości
Uwierzytelnianie słabe - korzystanie z adresów IP: mechanizm ten nie zapewnia
uniknięcia ataków ze strony przestępców połaczonych z nie zabezpieczoną siecią,
bo przestępca, któremu uda się zdobyć kontrolę nad pośredniczącym ruterem,
może się podawać za klienta uprawnionego
Zapewnienie bezpiecznych usług -
szyfrowanie z kluczem publicznym
Poza mocnym uwierzytelnieniem szfrowanie umożliwa też rozwiązanie
problemu
poufności
- nadawca może zagwarantować, że tylko odbiorca może
odczytać informację.
Szyfrowanie z kluczem publicznym umożliwia rozwiązanie zagadnienia
uwierzytelnienia, autoryzacji i poufności. Mechanizm szyfrowania powinien być
stosowany zarówno przez klienta jak i przez serwer
Zewnętrzna intersieć
Sieć wewnętrzna
firmy
część zewnętrzna
część wewnętrzna
zapora ogniowa firmy
Zapora ogniowa
- zapewnia mechanizmy
kontroli dostępu do sieci
i ochrony sieci wewnętrznej przed niepożądanymi połączeniami z zewnątrz
Strefa bezpieczeństwa
- przy wielu połączeniach z siecia zewnętrzną
należy zainstalować wiele zapór ogniowych, tworząc taką strefę
Organizacja, której sieć ma wiele połączeń zewnętrznych, musi zainstalować
zaporę ogniową przy każdym z połączeń zewnętrznych i musi zapewnić
koordynację działania wszystkich zapór.
Brak jednolitych ograniczeń dostępu we wszystkich zaporach może stanowić
zagrożenie dla całej organizacji
Podstawa działania implementacji zapory ogniowej to
filtr pakietów
2 Ruter 1
sieć zewnętrzna
sieć wewnętrzna
Interfejs
IP nadawcy
IP odbiorcy
Protokół
Port nadawcy
Port odbiorcy
2
2
1
2
2
2
*
*
128.5.*.*
*
*
*
*
*
*
*
*
*
TCP
TCP
TCP
UDP
UDP
TCP
21
23
25
43
69
79
*
*
*
*
*
*
Ruter z dwoma interfejsami i przykład konfiguracji filtrów pakietów.
Ruter + filtr pakietów to główny składnik ściany ogniowej
„Odwrócenie” działania filtra pakietów:
administrator konfiguruje zaporę tak, by blokowała wszystkie datagramy
poza tym, które są skierowane do określonych sieci, komputerów i portów,
dla których pozwala się na komunikację ze światem zewnętrznym
Konfiguracja filtra przy
założeniu, że komunikacja
nie jest dozwolona
Zapoznanie się z polityką
informacyjną organizacji
Pozwolenie na wybrane
połączenia, portów,
komputerów
Skutecza zapora ogniowa, wykorzystująca filtrowanie pakietów, powinna odcinać
dostęp wszystkich nadawców IP, odbiorców IP, protokołów i portów protokołów
poza tymi komputerami, sieciami i usługami, które dana organizacja decyduje się
udostępnić na zewnątrz. Filtr pakietów umożliwiający administratorowi określenie,
które datagramy należy przepuszczać (a nie - które należy blokować) może znacznie
ułatwić wprowadzanie takich ograniczeń
Skutki ograniczenia dostępu
Jeśli zapora ogniowa organizacji odfiltrowuje wszystkie przychodzące
datagramy poza skierowanymi do portów odpowiadających usługom,
które organizacja udostępnia na zewnątrz, to programy wewnątrz
zapory ogniowej nie mogą być klientami serwerów na zewnątrz
organizacji
Zewnętrzna intersieć
Sieć wewnętrzna
firmy
Komputer-
-bastion
Obejście ręczne
Komputer - bastion będący częścią zapory ogniowej. Zapewnia on bezpieczny dostęp do
usług zewnętrznych, nie wymagając przepuszczania do wnętrza zapory datagramów
o dowolnym adresacie
Dostęp do usług przez zaporę ogniową
Zewnętrzna intersieć
Sieć wewnętrzna
firmy
KOMPUTER-BASTION
R1
R2
Implementacja zapory ogniowej za pomocą dwóch ruterów i jednego komputera - bastionu.
Firma przyłączona jest do internetu za pomoca łącza szeregowego
Komputer - bastion konieczny jest do komunikowania się poprzez zaporę ogniową, ale skuteczność
zapory zależy od zabezpieczeń tego komputera. Jeżeli włamywacz znajdzie lukę w zabezpieczeniach
systemu operacyjnego komputera bastionu, to może zyskać dostęp do komputerów
wewnątrz zapory
Sieć wewnętrzna
firmy
R1
R5
R4
R3
R2
KOMPUTER-BASTION
połączenia
zewnętrzne
Architektura zapory ogniowej, która umożliwia wiele połączeń zewnętrznych przy zastosowaniu
pojedynczej zapory. Obniża to koszty
Każdemu połaczeniu odpowiada tu osobny ruter
Monitorowanie
zapory ogniowej jest niezbędnym warunkiem jej skutecznego funkcjonowania
Monitorowanie aktywne - zapora ogniowa informuje administratora o każdej
próbie naruszenia zabezpieczeń. Zaleta to szybkość - administrator natychmiast
dowiaduje się o niebezpieczeństwie.
Monitorowanie pasywne - zapora rejestruje wszelkie nietypowe sytuacje w pliku.
Rejestruje się informacje o normalnym ruchu i datagramy odfiltrowywane.
Administrator powinien okresowo przeglądać zapisy
Szyfrowanie
Z kluczem
prywatnym
przestawianie liter
według pewnego,
z góry ustalonego
schematu
przestawianie bitów
(DES, 3DES, RC3, RC4)
ale jak przesłać sobie klucz?
Z kluczem
publicznym
Szyfrowanie z kluczem publicznym:
Każda ze stron generuje parę kluczy (
publiczny
+
prywatny
)
Każda ze stron publikuje swój klucz publiczny w sieci (jest on dostępny dla wszystkich)
Jeżeli A chce przesłać wiadomość do B to szyfruje ją kluczem publicznym B.
Z własności algorytmu wynika, że tylko używając klucza prywatnego B można ją odtworzyć
(to jest typowy schemat
wymiany danych
).
Jeżeli B chce mieć pewność, że wymienia informacje rzeczywiście z A, to może np.
poprosić A o zaszyfrowanie pewnego tekstu jego kluczem prywatnym.
Jeżeli B będzie w stanie odtworzyć tekst używając klucza publicznego A to znaczy,
że rozmawia rzeczywiście z właściwym partnerem.
(to jest typowy schemat
autentyfikacji partnera
)
Jeżeli B po odebraniu wiadomości od A chce zabezpieczyć się przed sytuacją,
w której A zaprzeczy, że wysłał wiadomość, może poprosić A o zaszyfrowanie jej
dodatkowo swoim kluczem prywatnym (a następnie kluczem publicznym B). B będzie
w stanie ją odszyfrować (najpierw używając swojego klucza prywatnego,
a następnie publicznego klucza A) i A nie będzie mógł zaprzeczyć, że wiadomość wysłał
- wiadomość która dała się odszyfrować kluczem publicznym
A musiała być zaszyfrowana jego kluczem prywatnym.
(to jest typowy schemat
podpisu cyfrowego
)
Metoda
mieszana
Najważniejszym faktem dla tej metody stała się obserwacja,
że wada algorytmów symetrycznych nie polega na ich "słabości" -
dobierając odpowiednio długi klucz możemy uzyskać zabezpieczenie właściwie dowolnie "silne".
Problemem jest tylko uzgodnienie tych kluczy.
Natomiast algorytmy symetryczne są o wiele szybsze.
Wymyślono więc następujący schemat bezpiecznego przesyłania danych:
A generuje klucz K, który używany będzie później przy przesyłaniu danych
algorytmem symetrycznym.
A wysyła klucz K do B korzystając z jego klucza publicznego
B odczytuje klucz K korzystając ze swojego klucza prywatnego.
Strony dalej komunikują się korzystając z szyfrowania symetrycznego z użyciem klucza K
Metoda mieszana umożliwia:
Autentyfikację serwera/klienta
Można to zrealizować na etapie nawiązywania połączenia - właściwie sytuacja jest tu taka,
jakby używany był tylko algorytm asymetryczny.
Okresową wymianę kluczy
Strony mogą się umówić, że przykładowo co jakiś czas niszczą i od nowa generują klucze
symetryczne. Może to być ważne przy połączeniach trwających bardzo długo i takich,
po których przesyła się niewiele danych. Ktoś posiadający odpowiednio szybki komputer
i będący w stanie podsłuchać szyfrowaną transmisję mógłby wtedy jednak dane odszyfrować.
Przykłady zastosowania metody mieszanej to:
SSH
(Secure Shell)- protokół bezpiecznego logowania się do systemu zdalnego.
Zaletą SSH w porównaniu z logowaniem się przy pomocy telneta lub rsh
(oczywiście poza bezpieczeństwem) jest fakt, że można wyeliminować podawanie hasła
- do autentyfikacji wystarczający jest klucz prywatny klienta.
SSL
(Secure Socket Layer) - protokół bezpiecznych połączeń WWW, równierz FTP,
poczty elektronicznej i innych
Certyfikat
rozwiązuje problem autentykacji kluczy publicznych. Jest to zbiór danych
jednoznacznie identyfikujących pewną jednostkę (osobę, komputer)
oraz pozwalający stwierdzić, czy osoba, która się nim legitymuje jest rzeczywiście tym,
za kogo się podaje. Jest on potwierdzony przez zaufaną organizację,
zwaną w protokole
SSL certificate authority (CA).
Certyfikat zawiera:
Nazwę certyfikowanego obiektu
Identyfikator obiektu
Klucz publiczny obiektu
Czas ważności
Nazwę wystawcy certyfikatu
Identyfikator wystawcy
Podpis wystawcy - zawiera jednoznaczny skrót całego certyfikatu zaszyfrowany
przy pomocy klucza prywatnego wystawcy.
Przypadek szczególny:
certyfikat poświadczający tożsamość CA -
identyfikator wystawcy jest w nim równy identyfikatorowi obiektu,
a skrót certyfikatu jest szyfrowany kluczem publicznym obiektu!
Jest tak dlatego, bo CA jest instytucją zaufaną i jej tożsamości nie trzeba sprawdzać
(nie można, bo kto ją miałby potwierdzić?).
Łańcuch certyfikatów.
Nie musimy (a nawet nie powinniśmy) dla każdego obiektu
w danym systemie wystawiać certyfikatu potwierdzonego przez CA, gdyż spowodowałoby
to przeciążenie tych instytucji i niepotrzebny rozrost bazy danych.
Możemy na własne potrzeby ustanowić lokalny urząd certyfikacyjny który będzie
poświadczał lokalne certyfikaty, a sam będzie legitymował się certyfikatem
poświadczonym przez CA.
Łańcuch certyfikatów. Możliwe są dwie sytuacje:
Ustalamy, że wewnątrz naszej sieci ufamy wszystkim certyfikatom potwierdzonym
przez lokalny CA - wtedy możemy zrezygnować z usług zewnętrznej instytucji certyfikującej.
Jeżeli jednak chcemy sprawdzić, czy instytucja potwierdzająca certyfikat, który właśnie
otrzymaliśmy jest faktycznie tym, za kogo się podaje, zawsze możemy w analogiczny
sposób zweryfikować jej certyfikat. W ten sposób w końcu dojdziemy do kogoś komu ufamy
(w najgorszym razie będzie to któryś z międzynarodowych CA - ale komuś ufać musimy ).
Schemat działania protokołu SSL:
K
S ClientHello
K
S ServerHello
K
S Certificate
K
S ServerKeyExchange
K
S ServerHelloDone
K
S ClientKeyExchange
K
S ChangeCipherSpec
K
S Finished
K
S ChangeCipherSpec
K
S Finished
Klient wysyła do serwera zgłoszenie zawierające m.in. obsługiwaną wersję protokołu SSL, dozw. sposoby szyfrowania i kompresji danych
Serwer odpowiada podobnym komunikatem w którym zwraca klientowi wybrane parametry połączenia:
Serwer wysyła swój certyfikat pozwalając klientowi na sprawdzenie swojej tożsamości
Serwer wysyła informację o swoim kluczu publicznym. Rodzaj i długośc tego klucza jest określony przez typ algorytmu przesłany poprzednio
Serwer zawiadamia, że klient może przejść do następnej fazy zestawiania połączenia
Klient na podstawie ustalonych w poprzednich komunikatach dwóch liczb losowych (swojej i serwera) generujeklucz sesji używany do
faktycznej wymiany danych. Następnie wysyła go serwerowi używając jego klucza publicznego.
Klient zawiadamia, że serwer może przełączyć się na komunikację szyfrowaną
... oraz że jest gotowy do odbierania zakodowanych danych
Serwer zawiadamia, że wykonał polecenie - od tej pory wysyłał będzie tylko zaszyfrowane informacje
... i od razu wypróbowuje mechanizm - ten komunikat jest już wysyłany bezpiecznym kanałem