Technologie bezpieczeństwa w systemach
informatycznych
dr inż. Grzegorz Bliźniuk
Bezpieczeństwo systemów informatycznych
wykład 4
Plan wykładu 4
1. Zagadnienie bezpieczeństwa aplikacji
internetowych
2. Kryptografia w zapewnieniu bezpieczeństwa
3. Zapory sieciowe firewall
4. Sieci VPN
5. Protokoły sieciowe IPsec, PPTP, L2TP, SSL, TLS
6. Podsumowanie
Zagadnienie
bezpieczeństwa aplikacji
internetowych
Bezpieczeństwo systemów informatycznych, wykład 2, slajd 4
Zagadnienie bezpieczeństwa aplikacji internetowych
Bezpieczeństwo aplikacji internetowych jest rozumiane
w
odniesieniu
do
dowolnych
programów lub ich
komponentów wykorzystujących podczas swojego działania
dowolne technologie
– w szczególności – protokoły
internetowe.
Nie
są to więc wyłącznie strony www!
Internet jest dostarczany w technologiach stacjonarnych i
mobilnych,
przewodowych
i
bezprzewodowych,
na
komputery i dowolne inne
urządzenia cyfrowe.
Zajmując
się
zatem
bezpieczeństwem
aplikacji
internetowych
należy zatem brać pod uwagę bardzo
powszechne obecnie zjawisko konwergencji cyfrowej.
Bezpieczeństwo systemów informatycznych, wykład 2, slajd 5
Zagadnienie bezpieczeństwa aplikacji internetowych
W naszym rozumieniu aplikacje internetowe
są pisane w dowolnych
językach programowania i na dowolne systemy operacyjne. Istotne jest
to,
że wszystkie ich funkcje są obsługiwane za pośrednictwem protokołu
HTTP/HTTPS.
HTTP jest
protokołem klient-serwer, bezstanowym (nie zna historii
połączeń o powiązań z innymi połączeniami) i tekstowym. HTTPS, to
zaszyfrowana wersja HTTP (HTTP + SSL).
Nie
są zatem aplikacjami w naszym rozumieniu statyczne strony
internetowe dostarczane z
serwerów WWW.
Bezpieczeństwo systemów informatycznych, wykład 2, slajd 6
Wprowadzenie
Rodzaje
najczęstszych ataków na aplikacje internetowe:
• Ciągi ataków SQL Injection - zmiana zapytań
• Ciągi skryptów krzyżowych (Cross Site Scripting, XSS) –
osadzanie innych
kodów aplikacji, np. JavaScript
• Zakodowane wersje innych klas
• Przesyłanie na serwer plików o złośliwych (niedozwolonych)
nazwach
• Wykradanie plików cookie za pomocą ataków XSS (zmiana
zachowania aplikacji)
• Kodowanie danych w Internecie (Base64, Base36, Base16,
Base8, Unix, HTML)
– przekłamywanie, zamiana kodów
Kryptografia w zapewnieniu
bezpieczeństwa aplikacji
internetowych
Bezpieczeństwo systemów informatycznych, wykład 2, slajd 8
Kryptografia w zapewnieniu bezpieczeństwa
Kryptologia (z
κρυπτός – kryptos – "ukryty" i λόγος –
logos
– "słowo") – dziedzina wiedzy o przekazywaniu
informacji w
sposób zabezpieczony przed niepowołanym
dostępem.
Kryptologię dzieli się na:
kryptografię, czyli wiedzę o układaniu systemów
kryptograficznych,
kryptoanalizę, czyli wiedzę o ich łamaniu.
Bezpieczeństwo systemów informatycznych, wykład 2, slajd 9
Kryptografia w zapewnieniu bezpieczeństwa
Algorytmy symetryczne
– nadawca i odbiorca wiadomości
używają tego samego klucza szyfrującego. Jeżeli nie używają
tego samego klucza, to jeden
może być łatwo wyliczony na
podstawie drugiego.
Przykładowe algorytmy symetryczne:
DES (3DES) - Data Encryption Standard
AES - Advanced Encryption Standard
MAC - Message Authentication Code
– funkcje skrótu
(haszujące) z tajnym kluczem
SHA-1, MD5 - inne funkcje
haszujące
WPA, WEP
– w sieciach WiFi
Używane na przykład do zapewnienia poufności poczty
elektronicznej, aplikacji w bankomatach
Bezpieczeństwo systemów informatycznych, wykład 2, slajd 10
Kryptografia w zapewnieniu bezpieczeństwa
Algorytmy asymetryczne
– istnieją dwa różne, powiązane ze
sobą matematycznie klucze szyfrujące: publiczny i prywatny. Do
szyfrowania
wiadomości używa się klucza publicznego, a do
deszyfrowania
– klucza prywatnego.
Przykładowe zastosowania:
Podpis elektroniczny z
infrastrukturą klucza publicznego (PKI)
Protokoły HTTPS, SSL, TLS, SSH
Sieci VPN
Algorytmy:
Diffiego-Hellmana (1976), Rivesta-Shamira-Adlemana RSA
(1978), Cramera-Shoupa, ElGamala,
bazującego na krzywych
eliptycznych, DSA
Zapory sieciowe firewall
Bezpieczeństwo systemów informatycznych, wykład 2, slajd 12
Zapory sieciowe firewall
Zapora sieciowa (ang. firewall
– ściana ogniowa) – jeden ze sposobów
zabezpieczania sieci i
systemów przed intruzami z sieci zewnętrznej.
Termin ten
może odnosić się zarówno do dedykowanego sprzętu
komputerowego wraz ze specjalnym oprogramowaniem, jak i do samego
oprogramowania
blokującego niepowołany dostęp do komputera, na
którego straży stoi. Pełni rolę połączenia ochrony sprzętowej i
programowej sieci
wewnętrznej LAN przed dostępem z zewnątrz tzn.
sieci publicznych, Internetu, chroni
też przed nieuprawnionym wypływem
danych z sieci lokalnej na
zewnątrz.
Często jest to komputer wyposażony w system operacyjny z
odpowiednim oprogramowaniem. Do jego podstawowych
zadań należy
filtrowanie
połączeń wchodzących i wychodzących oraz tym samym
odmawianie
żądań dostępu uznanych za niebezpieczne.
Na podstawie: Wikipedia
Bezpieczeństwo systemów informatycznych, wykład 2, slajd 13
Zapory sieciowe firewall
Firewall
– ilustracja koncepcji
Bezpieczeństwo systemów informatycznych, wykład 2, slajd 14
Zapory sieciowe firewall
Najczęściej używanymi technikami obrony są:
• Filtrowanie pakietów, czyli sprawdzanie pochodzenia pakietów i
akceptowanie
pożądanych.
• Stosowanie algorytmów identyfikacji użytkownika (hasła, cyfrowe
certyfikaty).
• Zabezpieczanie programów obsługujących niektóre protokoły (np.
FTP, TELNET).
1.
Bardzo
ważną funkcją zapory sieciowej jest monitorowanie ruchu
sieciowego i zapisywanie
najważniejszych zdarzeń do dziennika
(
log’u). Umożliwia to administratorowi wczesne dokonywanie zmian
konfiguracji. Poprawnie skonfigurowany firewall powinien
odeprzeć
wszelkie znane typy
ataków. Na zaporze można zdefiniować strefę
ograniczonego zaufania
– podsieć, która izoluje od wewnętrznej sieci
lokalne serwery
udostępniające usługi na zewnątrz.
Bezpieczeństwo systemów informatycznych, wykład 2, slajd 15
Zapory sieciowe firewall
2.
Zapory
filtrujące: monitorują przepływające przez nie pakiety
sieciowe i
przepuszczają tylko zgodne z regułami ustawionymi na
danej zaporze (zapora
pracująca dodatkowo jako router). Zwykle w
niewielkich sieciach jest zapora
sprzętowa bądź wydzielony
komputer z systemem operacyjnym Linux. Obecnie
najczęściej
wykorzystywana metoda filtrowania w Linuksie to
reguły oparte na
iptables.
Dostępne są także zamknięte komercyjne rozwiązania
programowe, z
których wiele posiada bardzo wymyślne własności i
rozbudowany system
możliwych do
zintegrowania
rozwiązań, pozwalających nie tylko na analizę i
filtrowanie
pakietów IP, ale także na sprawdzanie poprawności
pakietów z punktu widzenia wyższych warstw modelu ISO/OSI, a
nawet na prowadzenie ochrony antywirusowej.
3.
Translacja
adresów sieciowych (NAT) - (ang. network address
translation): polega na dokonywaniu zamiany adresu IP hosta
wewnętrznego
w
celu
ukrycia
go
przed
zewnętrznym
monitorowaniem.
Mechanizm
ten
jest
również
nazywany
maskowaniem adresu IP.
Bezpieczeństwo systemów informatycznych, wykład 2, slajd 16
Zapory sieciowe firewall
4.
Zapory
pośredniczące (proxy): wykonujące połączenie z serwerem
w imieniu
użytkownika. Przykładowo, zamiast uruchomienia sesji
http
bezpośrednio do zdalnego serwera WWW, uruchamiana jest
sesja z
zaporą i dopiero stamtąd uruchamiane jest połączenie z
systemem zdalnym.
Cała komunikacja na serwer http przechodzi
przez proxy,
które może filtrować ruch. Proxy, jeśli ma taką
funkcjonalność, potrafi rozpoznać komendy http jak i analizować
zawartość pobieranych stron WWW (działa w warstwie aplikacji
modelu ISO/OSI).
Zabezpieczające działanie zapory, z punktu
widzenia klienta, polega w tym wypadku na tym,
iż możliwe jest
blokowanie wybranej
treści (ang. content filtering), aby nie dotarła
ona do klienta (np. strony ze
słowami wulgarnymi, o treści
pornograficznej itp.).
5.
Współcześnie często pracująca zapora sieciowa jest rozwiązaniem
hybrydowym
analizującym pakiety od warstwy łącza danych do
aplikacji modelu OSI.
Umożliwia realizację złożonych polityk
bezpieczeństwa oraz integrację z systemami IDS.
Sieci VPN
Bezpieczeństwo systemów informatycznych, wykład 2, slajd 18
Sieci VPN
VPN (
Virtual Private Network)
– wydzielone
tzw.
połączenie tunelowe w innej sieci (np. Internecie),
przez
który płynie ruch w ramach sieci prywatnej pomiędzy
klientami
końcowymi.
Węzły sieci VPN są przezroczyste dla przesyłanych
pakietów. W celu bezpiecznego i efektywnego przesyłu
danych w sieciach VPN,
są one kompresowane i
szyfrowane. Do szyfrowania w sieciach VPN
używa się
algorytmów asymetrycznych.
Przykłady: PPTP, L2TP, OpenVPN, IPSec, Hamachi,
SSTP, CheckPoint
Protokoły IPsec, PPTP,
L2TP, SSL, TLS
Bezpieczeństwo systemów informatycznych, wykład 2, slajd 20
Protokół IPsec
IPsec (
Internet Protocol Security) jest zbiorem
protokołów
służących
implementacji
bezpiecznych
połączeń oraz wymiany kluczy szyfrowania pomiędzy
komputerami w Internecie.
IPsec jest
również wykorzystywana do tworzenia połączeń
VPN. Wtedy uruchamiane
są dwa kanały komunikacji:
1.
Kanał kryptograficzny służący do uwierzytelniania i
szyfrowania kluczami kryptograficznymi,
2.
Kanał transportowy (może być ich więcej niż jeden) do
przekazywania zaszyfrowanych
pakietów danych
IPsec
wykorzystuje
komunikację
jednokierunkową,
szyfrowanie asymetryczne i symetryczne
(protokół IKE).
Bezpieczeństwo systemów informatycznych, wykład 2, slajd 21
Protokół IPsec
Protokół szyfrujący IKE wykorzystywany przez IPsec
umożliwia realizację następujących czynności:
1.
uwierzytelnienie obu stron komunikacji wobec siebie za pomocą
jednej z poniższych metod (ustalanych przez administratora):
1.
hasło znane obu stronom (shared secret)
2.
Podpisy RSA
(konieczna ręczna wymiana kluczy publicznych
stron)
3.
Certyfikaty X.509 (najbardziej uniwersalna)
– infratruktura PKI
2.
nawiązanie bezpiecznego kanału dla potrzeb IKE nazywanego
ISAKMP SA (Security Association)
3.
bezpieczne uzgodnienie kluczy kryptograficznych oraz parametrów
tuneli IPsec
4.
ewentualna ich renegocjacja co określony czas (np. co 8 godzin)
Bezpieczeństwo systemów informatycznych, wykład 2, slajd 22
Protokół PPTP
PPTP (ang. Point to Point Tunneling Protocol) jest
protokołem komunikacyjnym służącym do tworzenia tuneli
VPN.
Umożliwia zdalne łączenie sieci lub stacji roboczych.
Stanowi jeden z
protokołów dostępnych w MS-Windows.
Protokół wielokrotnie łamany - nie stosować wtedy,
kiedy konieczne jest zapewnienie wysokiego poziomu
bezpieczeństwa przesyłu danych.
Bezpieczeństwo systemów informatycznych, wykład 2, slajd 23
Protokół L2TP
L2TP (ang. Layer Two Tunneling Protocol, 1999 r., Cisco)
jest
protokołem komunikacyjnym korzystającym z IPsec.
Wspiera tunelowanie VPN ruchu
pakietów w IP, IPX,
NetBEUI wraz z przekazywaniem tego ruchu w postaci
datagramów w połączeniach PPP.
Ruch ten
może być przesyłany z np. wykorzystaniem
protokołów IP, X.25 lub FrameRelay.
Bezpieczeństwo systemów informatycznych, wykład 2, slajd 24
Protokół L2TP
Ilustracja
działania
tunelu L2TP
Bezpieczeństwo systemów informatycznych, wykład 2, slajd 25
Protokół SSL
SSL (ang. Secure Socket Layer, 1994 r., Netscape)
stanowi
uporządkowanie protokołów szyfrujących w postaci
wspierającej inne protokoły transmisji danych. Najbardziej
powszechnym zastosowaniem SSL jest dostarczenie
kryptografii do
protokołu HTTP. W ten sposób powstał
protokół HTTPS.
SSL
może wspierać również inne protokoły, które nie mają
własnego szyfrowania danych, np.: Telnet, SMTP, POP,
IMAP czy FTP.
SSL ma
swoją implementację open source o nazwie
OpenSSL.
Bezpieczeństwo systemów informatycznych, wykład 2, slajd 26
Protokół SSL
SSL
składa się z dwóch podprotokołów:
SSL Handshake
– definiuje metody negocjowania
parametrów bezpiecznej sesji, czyli algorytmów
szyfrowania danych,
algorytmów uwierzytelniania i
integralności informacji; SSL Change Cipher – protokół
zmiany specyfikacji szyfru SSL; SSL Alert Protocol
–
protokół alarmowy SSL
SSL Record
– definiuje format przesyłanych pakietów
danych
Bezpieczeństwo systemów informatycznych, wykład 2, slajd 27
Protokół SSL
Pierwsze wersje SSL
były łatwe do złamania.
SSL w wersji 3 (1996 r.) dopuszcza m.in.
następujące
algorytmy szyfrowania (symetrycznego i asymetrycznego:
DES, 3DES, RSA, DSS, RC2, RC4, IDEA, Diffiego-
Hellmana.
SSL wykorzystuje
infrastrukturę CA – autoryzowanych
urzędów certyfikujących – zgodnie z PKI.
Są to zaufane
instytucje
weryfikujące prawo do posługiwania się domeną. Osoba
uprawniona
wysyła do wybranego urzędu swój klucz publiczny, nazwę
domeny i inne dane
niezbędne do wygenerowania certyfikatu w postaci
żądania podpisania certyfikatu (Certificate Signing Request - CSR). Po
przejściu procedury sprawdzającej, certyfikat jest podpisywany. Jeśli
serwer przedstawi certyfikat niepodpisany przez CA, w
większości
przeglądarek i klientów pocztowych w czasie próby połączenia
użytkownik zobaczy odpowiednie ostrzeżenie.
Bezpieczeństwo systemów informatycznych, wykład 2, slajd 28
Protokół TLS
TLS (ang. Transport Layer Security, 1999 r., IETF)
przejął
dorobek SSL
począwszy od jego wersji 3.0. Od tej pory
koncepcja SSL jest rowijana w postaci
protokołu TLS.
Zatem, obecnie koncepcja kryptografii, autoryzowanych
urzędów certyfikacyjnych jest wspólnym dorobkiem
wcześniejszego SSL i obecnego TLS.
Najnowsza wersja TLS, to TLS 1.2,
którego najnowszy
wydanie pochodzi z marca 2011 r.
TLS wspiera
protokoły HTTP, FTP, SMTP, NNTP i XMPP.
Wspiera
również budowanie tuneli VPN. Korzysta z niego
OpenVPN.
Bezpieczeństwo systemów informatycznych, wykład 2, slajd 29
Podsumowanie
1. Przejrzeliśmy wybór metod i protokołów zapewniających
bezpieczeństwo transmisji danych w sieciach teleinformatycznych.
2. Mamy dwie metody szyfrowania kryptograficznego:
1. Symetryczną
2. Asymetryczną
3. Podpis elektroniczny bazuje na metodzie asymetrycznej oraz
infrastrukturze PKI.
4. Protokoły szyfrujące implementują różne algorytmy szyfrowania
asymetrycznego i symetrycznego
5. Wspierają one również budowę tuneli VPN, które w połączeniu z
metodami
kryptograficznymi
stanowią
obecnie
najbardziej
bezpieczną, znaną człowiekowi metodę zabezpieczania ruchu danych
w sieciach łączących systemy informatyczne.
dziękuję za uwagę