hakin9 5 2004 atak jabber demo

background image

www.hakin9.org

28

Hakin9 Nr 5/2004

A

ta

k

www.hakin9.org

29

Hakin9 Nr 5/2004

Atak na szyfrowane połączenie Jabbera

P

opularne komunikatory, takie jak Gadu-
Gadu, do przesyłania wiadomości uży-
wają nieszyfrowanego tekstu. Z tego po-

wodu są niezwykle łatwe do podsłuchania. Więk-
szy poziom bezpieczeństwa oferują aplikacje ko-
rzystające z otwartego protokołu Jabber (patrz
Artykuł Paranoja w świecie komunikatorów
Hakin9 3/2004). Wynika to z faktu, że z Jabbe-
ra można korzystać za pośrednictwem warstwy
SSL, zapewniającej poufność połączenia.

Człowiek w środku

Zastosowanie sprawdzonych algorytmów
szyfrowania z wykorzystaniem długich (512-
i 1024-bitowych) kluczy, renegocjowanych co
pewną ilość danych, skutecznie zabezpiecza
nas przed wyciekiem informacji z nawiązanego
połączenia. Nietrudno jednak wyobrazić sobie
sytuację, w której ktoś stanie na drodze nasze-
mu połączeniu z serwerem, podszywając się
pod niego (patrz Rysunek 1). Klient nawiąże
więc szyfrowane połączenie, tyle że nie – jak by-
śmy się spodziewali – z serwerem, lecz z innym
komputerem. Komputer ten natomiast połączy
się z pierwotnym celem i od tego momentu sta-
nie się pośrednikiem przesyłającym informacje
w obie strony (od serwera do klienta i odwrot-

Atak man in the middle na

szyfrowane połączenie Jabbera

Piotr Tyburski

Użytkownicy komunikatorów

sieciowych chcą mieć pewność,

że przesyłane przez nich dane

pozostaną poufne. Aby osiągnąć

ten cel, sięgają po wyrafinowane

narzędzia kryptograficzne. Czy

to wystarczy do zapewnienia

pełnego bezpieczeństwa?

nie) – będzie więc mógł podsłuchiwać połącze-
nie. To właśnie jest nazywane atakiem man in
the middle
.

Podstawowym warunkiem powodzenia ta-

kiego ataku jest dostęp do komputera pośred-
niczącego w przesyłaniu pakietów IP pomię-
dzy użytkownikiem a serwerem. Najprostszym
przypadkiem jest sytuacja, w której atakują-
cy ma dostęp do bramy w sieci (z prawami ad-

Z artykułu nauczysz się...

• jak za pomocą filtra pakietów oraz progra-

mu socat przechwycić szyfrowane połączenie
Jabbera,

• jak postępować, aby mieć niemal stuprocentową

pewność, że nikt nie podsłucha sesji Jabbera.

Powinieneś wiedzieć...

• znać przynajmniej podstawy administracji syste-

mami uniksowymi,

• zakładamy, że czytelnik posiada podstawową

wiedzę o SSL,

• rozumieć, na czym polegają ataki man in the

middle (polecamy lekturę artykułu Sniffing w
ethernecie z przełącznikami
z numeru 2/2003).

background image

www.hakin9.org

28

Hakin9 Nr 5/2004

A

ta

k

www.hakin9.org

29

Hakin9 Nr 5/2004

Atak na szyfrowane połączenie Jabbera

ministratora). Przyjmijmy, że tak wła-
śnie jest. Jeśli atakujący nie ma do-
stępu do maszyny pośredniczącej,
może użyć technik w rodzaju ARP
spoofing
lub ARP poisoning (patrz
Artykuł Sniffing w sieciach przełącza-
nych – Hakin9
2/2003).

Atak na szyfrowaną sesję Jabbe-

ra powiedzie się, jeśli agresorowi uda
się przechwycić próby nawiązania po-
łączenia z komputera klienta do por-
tu 5223 serwera i przekierować je do
innego komputera. Na tej maszynie
specjalny program musi przyjąć zaini-

cjowane połączenie i zaraz potem na-
wiązać kolejne, tym razem z właści-
wym adresatem. Spróbujmy więc wy-
konać prawdziwy atak.

Skąd wziąć certyfikat

Aby przechwycenie szyfrowanej sesji
miało jakiekolwiek szanse powodze-
nia, potrzebny będzie spreparowany
certyfikat SSL serwera Jabbera – dzię-
ki temu klient Jabbera uzna, że ma do
czynienia z prawdziwym serwerem.
Podczas jego tworzenia należy oczy-
wiście podać takie dane, jakie znajdują

się na prawdziwym certyfikacie serwe-
ra (patrz Ramka Jak działa SSL).

Za pomocą pakietu OpenSSL

i dołączonego do niego skryptu po-
włoki CA.sh (ewentualnie jego perlo-
wej wersji CA.pl) generujemy certyfi-
kat CA (centrum certyfikującego) oraz
certyfikat serwera wraz z kluczami
prywatnymi. Skrypt CA.sh należy naj-
pierw zlokalizować w systemie:

$ locate CA.sh

Załóżmy, że CA.sh został znaleziony
w katalogu /etc/ssl/misc:

$ /etc/ssl/misc/CA.sh -newca

Po uruchomieniu skryptu należy
jeszcze podać dane identyfikacyj-
ne, które będą zapisane w certyfika-
cie, oraz hasło. Utworzony zostanie
katalog ./demoCA zawierający m.in.
plik cacert.pem (certyfikat naszej in-
stytucji certyfikującej) i cakey.pem
(klucz prywatny tego certyfikatu).

Teraz należy wygenerować certy-

fikat dla naszego serwera. W tym celu
wykonujemy następujące polecenie:

$ /etc/ssl/misc/CA.sh -newreq

Znów trzeba podać kilka informacji
(podobnie jak przy generowaniu ca-
cert
) oraz hasło. Zostało nam już tyl-
ko podpisanie wygenerowanego cer-
tyfikatu:

$ /etc/ssl/misc/CA.sh -sign

Po podaniu hasła do klucza prywat-
nego instytucji certyfikującej otrzy-
mujemy podpisany cyfrowo certy-
fikat ./newcert.pem oraz jego klucz
prywatny ./newreq.pem.

Realizacja ataku

Czas na przeprowadzenie właściwe-
go ataku. Wspomnianym specjalnym
programem, który przechwyci dane
szyfrowanej sesji Jabbera, będzie
w tym przypaku socat (patrz Ram-
ka Socat – prawdziwy sieciowy kom-
bajn
), który posłuży za pośrednika
między użytkownikiem a serwerem.

W opisie przechwycenia sesji po-

służymy się dla ułatwienia imionami:

Jak działa SSL

Kiedy firma Netscape projektowała standard SSL, chciała rozwiąząć problem ogrom-
nej podatności protokołu TCP/IP na podsłuchiwanie oraz ataki man in the middle. SSL
miał zapewnić zarówno szyfrowanie połączeń, jak i identyfikację obu stron. Tę rolę
spełnia użyta w protokole technika certyfikatów.

Połączenie SSL (Secure Socket Layer) jest tworzone na bazie zwykłego połącze-

nia TCP. Przesyłane nim dane szyfrowane są symetrycznie kluczem, który jest nego-
cjowany na początku sesji. W pierwszej fazie klient wysyła komunikat Client Hello za-
wierający informacje o wersji protokołu, identyfikatorze sesji oraz o obsługiwanych al-
gorytmach kryptograficznych. Serwer odpowiada komunikatem Server Hello, w któ-
rym znajduje się nowy lub istniejący numer sesji oraz informacja o dopuszczalnych al-
gorytmach szyfrowania. W następnej fazie serwer uwierzytelnia się poprzez przesła-
nie swojego certyfikatu. Klient sprawdza prawdziwość trzech warunków:

• certyfikat został podpisany przez znany i zaufany urząd certyfikujący (ang. Certifica-

te AuthorityCA); najważniejsze takie urzędy to Verisign, Thawte czy AT&T,

• certyfikat jest prawidłowy i nie stracił ważności (ani nie został odwołany),
• nazwa na certyfikacie odpowiada nazwie domenowej serwera.

Jeśli choć jeden z nich nie jest spełniony, klient zgłasza ostrzeżenie i pozostawia użyt-
kownikowi decyzję o kontynuacji połączenia. Jeśli połączenie nie zostaje przerwane,
serwer może dokonać analogicznego uwierzytelnienia klienta. Następnie obie strony
generują tak zwany klucz master. Klucz ten wykorzystywany jest do utworzenia kluczy
sesji używanych później do szyfrowania i deszyfrowania oraz sprawdzania integralno-
ści danych przesyłanych w ramach sesji SSL. Na koniec przesyłane są zaszyfrowane
wiadomości informujące o zakończeniu działania protokołu powitalnego i może nastą-
pić wymiana danych.

Rysunek 1.

Schemat ataku man in the middle na sesję SSL Jabbera

������

�������

�������

�������

��������������������������������������������������

����������������������������������������������

����������������������������������������������������

�������������������������������������������������

�������

�������������

���

��������

���


Wyszukiwarka

Podobne podstrony:
hakin9 6 2004 wykrywanie sniffingu demo
hakin9 5 2004 demaskowanie nadawcy demo
hakin9 5 2004 szelkod python demo
hakin9 6 2004 testy penetracyjne demo
hakin9 6 2004 przechowywanie danych demo
hakin9 5 2004 skanowanie portow demo
hakin9 5 2004 rozpoznawanie honeypotow demo
hakin9 6 2004 cisco ios demo
hakin9 5 2004 ddos obrona demo
hakin9 6 2004 inzynieria odwrotna demo
hakin9 6 2004 wykrywanie sniffingu demo

więcej podobnych podstron