Útoky na HTTPS PV210 - Bezpečnostní analýza síťového provozu
Pavel Čeleda, Radek Krejčí Ústav výpočetní techniky Masarykova univerzita
[email protected]
Brno, 5. listopadu 2014
Pavel Čeleda, Radek Krejčí
Útoky na HTTPS
11. 5. 2014, Brno
1 / 15
O čem budeme mluvit?
1
Protokol HTTPS
2
Certifikáty a PKI
3
Odposlech a dešifrování HTTPS
4
Modifikace HTTPS komunikace
5
Závěr
Pavel Čeleda, Radek Krejčí
Útoky na HTTPS
11. 5. 2014, Brno
2 / 15
Protokol HTTPS Hypertext Transfer Protocol Secure ve skutečnosti dvojice protokolů: SSL/TLS + aplikační protokol (HTTP) HTTP
IMAP
LDAP
SSL/TLS UDP
TCP IP
Aplikační�vrstva Transportní�vrstva Síťová�vrstva
historie protokolů SSL/TLS SSL (Secure Socket Layer ) – Netscape Communications TLS (Transport Layer Security ) – IETF (RFC standardy)
Pavel Čeleda, Radek Krejčí
Útoky na HTTPS
11. 5. 2014, Brno
3 / 15
Protokol HTTPS
SSL Klient Zahájení komunikace
SSL Server Client Hello Server Hello Certificate Server Hello Done
Ověření certifikátu Vytvoření Hlavního tajemství
Client Key Exchange Change Cipher Spec Encrypted Data
Šifrovaná komunikace
Vytvoření Hlavního tajemství
Change Cipher Spec Šifrovaná Data
Šifrovaná komunikace
...
Ukončení komunikace
Pavel Čeleda, Radek Krejčí
Closure Alert
Útoky na HTTPS
11. 5. 2014, Brno
4 / 15
Certifikáty a PKI
Certifikát – Sada identifikačních údajů (norma X.509) EV Certif. – (Extended Validation) – certifikát s přísnějšími podmínkami vydávání CA – Certifikační Autorita PKI – Public Key Infrastructure
Pavel Čeleda, Radek Krejčí
Útoky na HTTPS
11. 5. 2014, Brno
5 / 15
Ověření certifikátu
1
Kolikátého je dnes?
2
Znám tě?
3
Umíš se podepsat?
4
Jak se jmenuješ?
Pavel Čeleda, Radek Krejčí
Útoky na HTTPS
11. 5. 2014, Brno
6 / 15
Kolizní součty MD5
Pavel Čeleda, Radek Krejčí
Útoky na HTTPS
11. 5. 2014, Brno
7 / 15
Kolizní součty MD5
Pavel Čeleda, Radek Krejčí
Útoky na HTTPS
11. 5. 2014, Brno
7 / 15
Kolizní součty MD5
1
Vydání certifikátu útočníkovu serveru
Pavel Čeleda, Radek Krejčí
Útoky na HTTPS
11. 5. 2014, Brno
7 / 15
Kolizní součty MD5
1
Vydání certifikátu útočníkovu serveru
2
Kolizí MD5 vytvořený certifikát CA útočníka
Pavel Čeleda, Radek Krejčí
Útoky na HTTPS
11. 5. 2014, Brno
7 / 15
Kolizní součty MD5
1
Vydání certifikátu útočníkovu serveru
2
Kolizí MD5 vytvořený certifikát CA útočníka
3
CA útočníka vydává certifikáty serverům
Pavel Čeleda, Radek Krejčí
Útoky na HTTPS
11. 5. 2014, Brno
7 / 15
Kolizní součty MD5
1
Vydání certifikátu útočníkovu serveru
2
Kolizí MD5 vytvořený certifikát CA útočníka
3
CA útočníka vydává certifikáty serverům
4
MITM útok a přesměrování na podvodný server
Pavel Čeleda, Radek Krejčí
Útoky na HTTPS
11. 5. 2014, Brno
7 / 15
Kolizní součty MD5
1
Vydání certifikátu útočníkovu serveru
2
Kolizí MD5 vytvořený certifikát CA útočníka
3
CA útočníka vydává certifikáty serverům
4
MITM útok a přesměrování na podvodný server
5
Přenos důvěrnosti a platná kontrola certifikátu
Pavel Čeleda, Radek Krejčí
Útoky na HTTPS
11. 5. 2014, Brno
7 / 15
Null-prefix certifikáty Útok využívá chyby v implementaci ověřování certifikátu. Postup 1
Žádost útočníka o certifikát pro doménu www.paypal.cz\0.zlodej.cz
2
MITM útok a přesměrování oběti na útočníkův server vydávající se za www.paypal.cz
3
Klient ověřuje certifikát (vydaný pro www.paypal.cz\0.zlodej.cz)
4
Certifikát souhlasí
a)
b) w w w . p a y p a l . c z 0. z l o d e j . c z 0 * 0. z l o d e j . c z 0
Pavel Čeleda, Radek Krejčí
Útoky na HTTPS
w w w . p a 0y p a l . c z 0 www.paypal.cz
11. 5. 2014, Brno
8 / 15
Odposlech HTTPS MITM ARP spoofing, (DNS spoofing) ovládnutí aktivního prvku sítě (Chuck Norris botnet) nástroj sslsniff (http://www.thoughtcrime.org/software/sslsniff) Útočník v roli MITM může pomocí privátního klíče serveru dešifrovat komunikaci přerušit komunikaci oběťi a vystupovat jako koncový server Uživatel
MAC ADRESA UŽIVATELE
3 MAC ADRESA BRÁNY | ˇ MAC ADRESA ˇ ÚTOCNÍKA
1
https://mail.google.com
MAC ADRESA BRÁNY
3
2
3 2
MAC ADRESA UŽIVATELE | ˇ MAC ADRESA ˇ ÚTOCNÍKA
1 řádné síťové spojení 2 arpspoofing útok
Útočník (MITM)
3 přesměrovaný síťový provoz
MAC ADRESA ˇ ÚTOCNÍKA
Pavel Čeleda, Radek Krejčí
HTTPS server
Brána 1
Útoky na HTTPS
11. 5. 2014, Brno
9 / 15
SSL Strip
Uživatel
MITM
HTTPS server https://mail.google.com
sslstrip
Pavel Čeleda, Radek Krejčí
Útoky na HTTPS
11. 5. 2014, Brno
10 / 15
SSL Strip
Uživatel
MITM
HTTPS server https://mail.google.com
GET HTTP mail.google.com
sslstrip
Pavel Čeleda, Radek Krejčí
Útoky na HTTPS
11. 5. 2014, Brno
10 / 15
SSL Strip
Uživatel
MITM
HTTPS server https://mail.google.com
GET HTTP mail.google.com
HTTP 301 Moved Permanently http://mail.google.com
HTTP 301 Moved Permanently https://mail.google.com
sslstrip
Pavel Čeleda, Radek Krejčí
Útoky na HTTPS
11. 5. 2014, Brno
10 / 15
SSL Strip
Uživatel
MITM
HTTPS server https://mail.google.com
GET HTTP mail.google.com
HTTP 301 Moved Permanently http://mail.google.com
HTTP 301 Moved Permanently https://mail.google.com
GET HTTP mail.google.com
SSL mail.google.com Client hello
sslstrip
Pavel Čeleda, Radek Krejčí
Útoky na HTTPS
SSL negotiation ...
11. 5. 2014, Brno
10 / 15
SSL Strip
Uživatel
MITM
HTTPS server https://mail.google.com
GET HTTP mail.google.com
HTTP 301 Moved Permanently http://mail.google.com
HTTP 301 Moved Permanently https://mail.google.com
GET HTTP mail.google.com
SSL mail.google.com Client hello
sslstrip
HTTP 200 OK
SSL negotiation ... GET HTTP mail.google.com HTTP 200 OK HTTPS
Pavel Čeleda, Radek Krejčí
Útoky na HTTPS
11. 5. 2014, Brno
10 / 15
Zranitelnost renegociace SSL/TLS spojení I
renegociace = znovuvyjednání parametrů SSL/TLS spojení
Problém je přímo v (nejasné) specifikaci protokolu. Řeší RFC 5746 – TLS Renegotiation Indication Extension. Původně jen přidávání vlastních dat do požadavků klienta, ale bez možností získat výsledek.
Pavel Čeleda, Radek Krejčí
Útoky na HTTPS
11. 5. 2014, Brno
11 / 15
Zranitelnost renegociace SSL/TLS spojení II
SSL Klient
útočník
SSL Server
SSL/TLS spojení útočníka SSL/TLS spojení oběti nešifrované spojení
Pavel Čeleda, Radek Krejčí
Útoky na HTTPS
11. 5. 2014, Brno
12 / 15
Zranitelnost renegociace SSL/TLS spojení II
SSL Klient
útočník
SSL Server
Client Hello
SSL/TLS spojení útočníka SSL/TLS spojení oběti nešifrované spojení
Pavel Čeleda, Radek Krejčí
Útoky na HTTPS
11. 5. 2014, Brno
12 / 15
Zranitelnost renegociace SSL/TLS spojení II
SSL Klient
SSL Server
útočník Client Hello
Handshake SSL/TLS spojení útočníka SSL/TLS spojení oběti nešifrované spojení
POST /forum/send.php?text=ahoj\n X-tohle-ignoruj: vynucení renegociace
Pavel Čeleda, Radek Krejčí
Útoky na HTTPS
11. 5. 2014, Brno
12 / 15
Zranitelnost renegociace SSL/TLS spojení II
SSL Klient
SSL Server
útočník Client Hello
Handshake SSL/TLS spojení útočníka POST /forum/send.php?text=ahoj\n X-tohle-ignoruj:
SSL/TLS spojení oběti nešifrované spojení
vynucení renegociace Client Hello
Handshake
Pavel Čeleda, Radek Krejčí
Útoky na HTTPS
11. 5. 2014, Brno
12 / 15
Zranitelnost renegociace SSL/TLS spojení II
SSL Klient
SSL Server
útočník Client Hello
Handshake SSL/TLS spojení útočníka POST /forum/send.php?text=ahoj\n X-tohle-ignoruj:
SSL/TLS spojení oběti nešifrované spojení
vynucení renegociace Client Hello
Handshake GET /index.html\n \n
POST /forum/send.php?text=ahoj\n X-tohle-ignoruj: GET /index.html\n \n
Pavel Čeleda, Radek Krejčí
Útoky na HTTPS
11. 5. 2014, Brno
12 / 15
Zranitelnost renegociace SSL/TLS spojení III
SSL Klient
útočník
HTTPS Server
SSL/TLS spojení útočníka SSL/TLS spojení oběti nešifrované spojení
Pavel Čeleda, Radek Krejčí
Útoky na HTTPS
11. 5. 2014, Brno
13 / 15
Zranitelnost renegociace SSL/TLS spojení III
SSL Klient
útočník
HTTPS Server
Client Hello
SSL/TLS spojení útočníka SSL/TLS spojení oběti nešifrované spojení
Pavel Čeleda, Radek Krejčí
Útoky na HTTPS
11. 5. 2014, Brno
13 / 15
Zranitelnost renegociace SSL/TLS spojení III
SSL Klient
HTTPS Server
útočník Client Hello
Handshake SSL/TLS spojení útočníka SSL/TLS spojení oběti nešifrované spojení
GET /redirect.php\n X-přesměrování na HTTP\n X-ignoruj: vynucení renegociace
Pavel Čeleda, Radek Krejčí
Útoky na HTTPS
11. 5. 2014, Brno
13 / 15
Zranitelnost renegociace SSL/TLS spojení III
SSL Klient
HTTPS Server
útočník Client Hello
Handshake SSL/TLS spojení útočníka
GET /redirect.php\n X-přesměrování na HTTP\n X-ignoruj:
SSL/TLS spojení oběti nešifrované spojení
vynucení renegociace Handshake
Pavel Čeleda, Radek Krejčí
Client Hello
Útoky na HTTPS
11. 5. 2014, Brno
13 / 15
Zranitelnost renegociace SSL/TLS spojení III
SSL Klient
HTTPS Server
útočník Client Hello
Handshake SSL/TLS spojení útočníka
GET /redirect.php\n X-přesměrování na HTTP\n X-ignoruj:
SSL/TLS spojení oběti nešifrované spojení
vynucení renegociace Handshake
Client Hello
GET /index.html\n \n
Zpracovávaný požadavek 302 redirect
Pavel Čeleda, Radek Krejčí
Útoky na HTTPS
GET /redirect.php\n X-přesměrování na HTTP\n X-ignoruj: GET /index.html\n \n
11. 5. 2014, Brno
13 / 15
Zranitelnost renegociace SSL/TLS spojení III
SSL Klient
HTTPS Server
útočník Client Hello
Handshake SSL/TLS spojení útočníka
GET /redirect.php\n X-přesměrování na HTTP\n X-ignoruj:
SSL/TLS spojení oběti nešifrované spojení
vynucení renegociace Client Hello
Handshake GET /index.html\n \n
Zpracovávaný požadavek 302 redirect
GET /index.html\n \n
GET /redirect.php\n X-přesměrování na HTTP\n X-ignoruj: GET /index.html\n \n
sslstrip
Pavel Čeleda, Radek Krejčí
Útoky na HTTPS
11. 5. 2014, Brno
13 / 15
Závěr
Při útocích se jen vyjímečně jedná o chybu v protokolu SSL/TLS. Využívají se chyby v implementaci protokolu nebo zranitelnosti způsobené chybným používáním protokolu. Z hlediska obrany je nejdůležitější, ale zároveň nejobtížnější osvěta uživatelů.
Pavel Čeleda, Radek Krejčí
Útoky na HTTPS
11. 5. 2014, Brno
14 / 15
Dotazy
Děkuji za pozornost. Dotazy?
Pavel Čeleda, Radek Krejčí
Útoky na HTTPS
11. 5. 2014, Brno
15 / 15