SSL idzie do lamusa, ale Pudel nadal może zjeść ciastka użytkowników Internet Explorera
Już dawno temu powinniśmy się pożegnać z protokołem SSL 3.0.Mający 18 lat protokół to pokłosie ery panowania InternetExplorera 6. Znalazł zastosowanie na wielu webserwerach, a w związkuz tym, mimo że znalazł znacznie lepszych następców, kolejne generacje przeglądarek wciąż oferowały dla niegowsparcie.Trzeba było czekać na atak opisany wczoraj przez ludziz Google, by pojawiła się nadzieja, że SSL 3.0 odejdzie dolamusa.
„Pudel” – taką wdzięczną nazwą ochrzcili atak jegoodkrywcy (POODLE – Padding Oracle On Downgraded Legacy Encryption).Pozwala on m.in. na przechwycenie ciasteczek wykorzystywanych dologowania w serwisach internetowych i dotyczy nie jakiejśimplementacji, lecz samego schematu działania SSL 3.0. Ofiarami„pudla” mogą paść więc wszyscy użytkownicy oprogramowania,które z protokołu tego korzysta – w praktyce wszystkichprzeglądarek, których użytkownicy nie wymusili używania nowszegoprotokołu TLS.
Atak dokładnie objaśniłAdam Langley z Google. „Pudel” przypomina nieco znaną już„Bestię”, ale jest łatwiejszy w wykorzystaniu, nie wymagatakiej kontroli nad formatem niezaszyfrowanych danych. Jak to działa?Przede wszystkim napastnik musi zmusić przeglądarkę ofiary donawiązania połączenia nie po TLS, ale po starszej wersjiprotokołu. Normalnie przeglądarki robią to automatycznie, gdyodkryją, że połączenie TLS jest regularnie zrywane, nie możnawymienić powitania między serwerem i klientem.
Napastnik musi też przesłać odpowiednio spreparowany JavaScriptdo ofiary, nakłaniając ją np. do odwiedzenia swojej stronyinternetowej. Wtedy może zacząć się właściwa część ataku.Skrypt przesyła do serwera, którego ciasteczko z uwierzytelnionąsesją znajduje się w przeglądarce, żądanie GET. Normalnieprzesyłane dane po SSL 3.0, z wykorzystaniem szyfru CBC, dzielone sąprzed zaszyfrowaniem na bloki. Niepełne bloki dopełniane są doustalonej długości. Napastnik stara się tak zmanipulować pakiet,by w trakcie szyfrowania w trybie blokowym CBC zawartość ciasteczkaprzesunąć o jeden bajt. Na początku bierze się pierwszy bajtciasteczka w ostatnim bloku, uzupełnia go do ośmiu bajtów – ijuż po maksymalnie 256 żądaniach do serwerach odkrywa się wartośćpierwszego bajtu. W następnej iteracji w ostatnim bloku mamy jużbajt znany i nieznany. Po maksymalnie 256 żądaniach otrzymamywartość drugiego bajtu. By odczytać n-bajtowe ciasteczko wystarczywięc co najwyżej n*256 żądań. Względnie szybko napastnikzyskuje więc możliwość dostania się do konta ofiary.
Wszystkie szczegóły działania „Pudla” można znaleźć wprzygotowanym przez badaczy Bodo Möllera, Thai Duonga i KrzysztofaKotowicza (wszyscy z Google) biuletyniebezpieczeństwa.
Jak więc żyć w erze 18-letnich technik kryptograficznych, któreokazują się dziś być do niczego? Google chce przede wszystkimusunąć SSL 3.0 z Chrome. Liczy, że producenci innych przeglądareki serwerów pójdą w ich ślady, uznając że protokół ten zostałzłamany. Przeglądarki powinny wymuszać połączenia po TLS. Zalecateż korzystanie z TLS_FALLBACK_SCSV,wartości która blokuje przejścia do starszych wersji protokołówużywanych w HTTPS. Jest to jeszcze lepsze rozwiązanie, niż poprostu wyłączenie SSL 3.0, gdyż zabezpiecza przed wszelkimiprzyszłymi atakami na stare wersje protokołów.
Oczywiście oznacza to też koniec bezpiecznych połączeń dlaInternet Explorera 6 na Windows XP. Trudno jednak znaleźć jakiśsensowny kontekst mówienia o bezpieczeństwie w sytuacji, gdy ktośłączy się z Siecią za pomocą tak przestarzałego, praktycznieniewspieranego już oprogramowania. Tym jednak lepiej – jak zauważaLangley, Internet jest wielki i pełen bugów – a wwiększości to bugi tkwiące właśnie w starym oprogramowaniu.
Jeśli chcecie sprawdzić, czy Wasza przeglądarka jest podatna naatak, polecamy odwiedzenie strony Poodletest.com.Najnowszy Firefox 33 jest już na atak ten odporny, podobnie jak inajświeższa poprawkowa wersja Google Chrome 38. Internet Explorerniestety jednak wciąż daje się zmusić do użycia SSL 3.0 – jegoużytkownikom polecamy wyłączyć obsługę starego protokołu.Można to zrobić w Panelu Sterowania, wybierając Opcje internetowe,a następnie w zakładce Zaawansowane odznaczyć „Użyj SSl 3.0”.
Jeśli zaś chcecie sprawdzić wykorzystanie SSL 3.0 na stronachinternetowych, to najłatwiej to zrobić poleceniem openssls_client -ssl3 -connect [adresIPserwera]:443.Ciekawostką może być dla Was listawitryn, które w ogóle nie pozwalają na korzystanie z TLS.Najbardziej soczystym kąskiem na niej wydaje się być znany ilubiany Citibank, którego witryny, w tym i polska, działają tylkopo SSL 3.0. Jeśli więc korzystaćie z usług Citibanku –uważajcie, by Pudel nie zjadł wam jego ciastek.