Odkrita ranljivost v SSL 3.0

Matej Huš

15. okt 2014 ob 21:24:43

Googlovi raziskovalci Bodo Möller, Thai Duong in Krzysztof Kotowicz so odkrili ranljivost v šifrirnem protokolu SSL 3.0, ki napadalcu omogoča izluščiti podatke, čeprav se ti prenašajo po varni povezavi, če uspe nadzorovati promet med strežnikom in uporabnikom (man-in-the-middle). Imenuje se POODLE (Padding Oracle On Downgraded Legacy Encryption).

SSL 3.0 je poldrugo desetletje star protokol, ki ima cel kup ranljivosti in problemov. Uporablja tokovno šifro RC4 ali blokovno šifro (CBC) in za RC4 je znano, da pri uporabi iste skrivnosti sčasoma uhajajo podatki, ki jih lahko napadalec izkoristi. Kljub temu je še lani 40 odstotkov spletnih povezav uporabljalo RC4. Vse to so razlogi, da se SSL 3.0 dandanes skorajda ne uporablja več, saj so ga nadomestili varnejši TLS 1.0, TLS 1.1 in TLS 1.2.

Odjemalec in strežnik uporabita najvišjo (zadnjo) različico, ki je obema poznana, zato načeloma SSL 3.0 ne bi smel biti več aktualen. Problem nastopi, kadar odjemalec uporablja downgrade dance, kakor se imenuje trik, ki ga nekateri odjemalci uporabljajo za izogibanje hroščem. Če je vzpostavljanje povezave (handshake) neuspešno in odjemalec ne prejme odziva strežnika, v katerem mu ta sporoči najvišjo podprto verzijo TLS, odjemalec v tem primeru sam poizkuša vzpostaviti povezavo z nižjimi verzijami. Napadalec, ki nadzoruje promet, lahko poskrbi za neuspelo vzpostavitev povezave s TLS 1.2, 1.1 in 1.0, kar odjemalca prisili v poskus s SSL 3.0. Strežnik, ki je šele sedaj dejansko prejel zahtevo za vzpostavitev povezave, pa tako vidi, kakor da je SSL 3.0 najvišji podprt protokol na strani odjemalca.

Potem lahko izkoristi odkrito ranljivost, ki so jo poimenovali POODLE. V vrivanjem JavaScripta lahko napadalec poskrbi, da brskalnik poizkuša znova in znova prenesti isto sliko, pri čemer vsakokrat pošlje sejni piškotek. Če so zahtevki primerni skonstruirani, lahko tako izlušči piškotek, ki mu omogoča ugrabitev seje. Tako se strežniku predstavlja kot odjemalec, odjemalcu pa kot strežnik, čeprav naj bi bila povezava med njima šifrirana.

Napake ni mogoče odpraviti, ne da bi podrli združljivost SSL 3.0. Google zato priporoča, da na odjemalcih onemogočimo uporabo SSL 3.0, na strežnikih pa poskrbimo za dosledno uporabo funkcije TLS_FALLBACK_SCSV, ki prepreči vsiljeno uporabo nižje verzije. Na ta način bodo SSL 3.0 uporabljali samo še tisti prastari odjemalci, ki res ne podpirajo ničesar višjega. Ali je vaš brskalnik ranljiv, lahko preverite na tej strani.

Mozilla je že napovedala, da bo v Firefoxu 34, ki izide 25. novembra onemogočila uporabo SSL 3.0 (ročno pa to že lahko storite). Izklop je priporočljiv tudi v Internet Explorerju in v Chromu.