Pudel: Czy wyłączenie SSL V3 na serwerze jest naprawdę rozwiązaniem?


39

Czytałem cały dzień o luce w zabezpieczeniach Poodle i jestem teraz trochę zdezorientowany w porównaniu do Security and Revenue.

Jeśli wyłączę SSL V3 na serwerze (SSL V2 i V3 oba zostaną wyłączone dla Apache) klienci (przeglądarki), którzy nie obsługują żadnego protokołu, ale SSL V3 nie będą mogli połączyć HTTPS z serwerem.

Jest to więc sytuacja, w której zarówno klient, jak i serwer muszą komunikować się z TLS 1.1 1.2 i tak dalej

Jeśli któryś z nich używa SSL V3, a drugi nie obsługuje niższych wersji, co się stanie? Brak połączenia z SSL.

Widziałem kilka aktualizacji w Firefoksie, być może wyłączono SSL V3 w tym, co zwykle musimy robić w opcjach. Wymusi to połączenie z niższymi wersjami i TLS

Ale czy wyłączenie SSL V3 naprawdę jest rozwiązaniem tego problemu?


4
Co rozumiesz przez „To wymusi całe połączenie z niższymi wersjami i TLS”? SSLv1 i SSLv2 zostały wyłączone na długi czas, ponieważ zostały uszkodzone. Protokół SSLv3 został odrzucony, ale w wielu przypadkach pozostawiono włączone, aby obsługiwać starsze oprogramowanie. Do jakiej dolnej wersji się odnosisz? TLSv1.0, v1.1, v1.2, ... są późniejszymi standardami i można je uznać za „wyższą wersję SSL”, tylko numery wersji zostały zresetowane wraz ze zmianą nazwy.
Håkan Lindqvist

Cześć, więc zrozumiałem do tej pory: jeśli wyłączę SSL V3 i V2 na serwerze, zgodnie z zaleceniami Red Hat, bezpieczne połączenie będzie odbywało się za pomocą protokołu TLS. A jeśli przeglądarki wywołują TLS z serwerem, nie będzie problemu z bezpiecznymi połączeniami. Nie mam dokładnych informacji na temat różnicy między wersjami SSL i TLS.
sandeep.s85

Odpowiedzi:


52

Najpierw wyjaśnijmy trochę:

  • Protokół TLS zastąpił protokół SSL. Protokół TLS 1.0 pojawił się później i jest aktualizacją protokołu SSL 3.0.

    TLS 1.2> TLS 1.1> TLS 1.0> SSL 3.0> SSL 2.0> SSL 1.0

  • Wersje SSL wcześniejsze niż 3.0 miały poważne luki w zabezpieczeniach i są wyłączone / nieobsługiwane przez nowoczesnych klientów i serwery. SSL 3.0 prawdopodobnie wkrótce pójdzie tą samą drogą.

  • Spośród obecnie używanych protokołów „Pudel” najsilniej wpływa na SSL 3.0, gdzie nie ma możliwości złagodzenia. Istnieje podobny atak na niektóre implementacje TLS 1.0 i 1.1 , na który pozwala specyfikacja - upewnij się, że twoje oprogramowanie jest aktualne.


Powód, dla którego „Pudel” jest zagrożeniem nawet w przypadku nowoczesnych klientów i serwerów, wynika z wdrożenia przez klientów mechanizmu awaryjnego. Nie wszystkie serwery będą obsługiwać najnowsze wersje, więc klienci będą wypróbowywać każdą wersję od najnowszej do najnowszej (TLS 1.2, TLS 1.1, TLS 1.0, SSL 3.0), dopóki nie znajdzie takiej, którą obsługuje serwer. Dzieje się tak przed rozpoczęciem szyfrowanej komunikacji, więc osoba atakująca typu man-in-the-middle (MITM) może zmusić przeglądarkę do powrotu do starszej wersji, nawet jeśli serwer obsługuje wyższą. Jest to znane jako atak obniżający protokół.

W szczególności w przypadku „Pudla”, o ile zarówno klient, jak i serwer obsługują protokół SSL 3.0, osoba atakująca MITM może wymusić użycie tego protokołu.

Kiedy więc wyłączysz SSL 3.0, ma to dwa efekty:

  • Klientów obsługujących wyższe wersje nie można nakłonić do powrotu do wersji podatnej na atak ( TLS Fallback SCSV to nowy proponowany mechanizm zapobiegający atakowi obniżenia protokołu, ale jeszcze nie wszyscy klienci i serwery go obsługują). To jest powód, dla którego chcesz wyłączyć SSL 3.0. Zdecydowana większość klientów prawdopodobnie należy do tej kategorii, co jest korzystne.

  • Klienci, którzy w ogóle nie obsługują TLS (jak wspomnieli inni, IE6 na XP jest właściwie jedynym, który nadal jest używany dla HTTPS) nie będzie w stanie połączyć się za pośrednictwem połączenia szyfrowanego. Jest to prawdopodobnie niewielka część bazy użytkowników i nie warto poświęcać bezpieczeństwa większości osób, które są aktualne, aby zaspokoić tę mniejszość.


8
Cześć Bob, tu Alice. Podobnie jak wyjaśnienie, w jaki sposób Mallet może korzystać z Pudla.
BatteryBackupUnit

+1 Nie wiedziałem o ataku na obniżenie protokołu.
developerwjk

1
UPDATE: "...everything less than TLS 1.2 with an AEAD cipher suite is cryptographically broken, including many implementations which conform to current specifications." zdnet.com/article/poodle-not-fixed-some-tls-systems-vulnerable
BlueCacti

@GroundZero > Ale okazuje się, że niektóre implementacje TLS nadal nie sprawdzały bajtów wypełniania, pomimo możliwości tego. => konkretnie, podczas gdy implementacje TLS 1.0 i 1.1 mogą być zepsute (a specyfikacja pozwala na ich zerwanie w ten sposób, co nie jest dobre), nie jest tak złe jak SSL 3.0, gdzie sama specyfikacja była zepsuta i nie było sposób na obejście zgodnej implementacji. Również „wyłączenie” obsługi TLS 1.0 i 1.1 na serwerze jest znacznie trudniejszym problemem niż wyłączenie SSL 3.0 - wpłynie to na znacznie większą część użytkowników.
Bob

Wygląda na to, że podatne są przede wszystkim implementacje po stronie serwera (?) - napraw swoją implementację TLS na serwerze i powinieneś być w porządku (?) [Nie analizowałem tego wystarczająco, aby potwierdzić, że przeglądarki i inni klienci nie są narażeni na wpływ , ale sugerują to sformułowania w połączonym artykule i jego źródle].
Bob

27

Twoja ocena jest poprawna. Klienci będą musieli użyć nowszych protokołów, aby połączyć się z serwerem po wyłączeniu SSL 3. Protokół SSL 3 jest wadliwy i nie będzie „łatki”. Wyłączenie SSL 3 jest jedynym rozwiązaniem.

W tym momencie wiele witryn wyłączyło protokół SSL 3, aby praktycznie nieuniknione była konieczność aktualizacji przez użytkowników starszych przeglądarek. Zakładając, że rejestrujesz ciągi agenta użytkownika, możesz przejrzeć swoje dzienniki i podjąć świadomą decyzję o wyłączeniu protokołu SSL 3. Myślę, że jest prawdopodobne, że tylko niewielki procent odwiedzających witrynę korzysta z przeglądarek, które nie byłyby w stanie obsłużyć nowszych protokołów.

[fwiw - raporty cloudflare 1,12% użytkowników to użytkownicy IE6 XP w zależności od SSLv3]


1
Chociaż prawdą jest, że protokół SSLv3 jest wadliwy, a jedynym prawdziwym rozwiązaniem jest wyłączenie protokołu SSLv3. Istnieje również ograniczenie dla ataku pudla, który nie wymaga wyłączenia SSLv3, jeśli możesz zaakceptować szyfr RC4 dla klientów TLS 1.0, ponieważ pudel wpływa tylko na szyfry trybu CBC (AES). Opisałem to tutaj: serverfault.com/q/637848/249649
cypres

2
TLS_FALLBACK_SCSVnie ogranicza jednak ataku starszych klientów. Pozwala to tylko starszym klientom nadal korzystać z wadliwego protokołu, jednocześnie zapobiegając niepożądanym obniżeniom wersji protokołu dla nowych klientów. Ostatecznie pozostawienie włączonego protokołu SSLv3 dla dowolnych klientów potencjalnie naraża ich ruch na ataki.
Evan Anderson

RC4 łagodzi ten atak dla starszych klientów, a nie scsv. Ale raczej nie używamy RC4, dlatego też zalecam wyłączenie SSLv3, jeśli to w ogóle możliwe.
cypres

1
@cypres - Tak - „TLS_FALLBACK_SCSV” nie pomaga starszym klientom. Twierdziłbym, że użycie szyfru, który wykazuje poważne słabości, również nie jest pomocne. Musimy pozwolić, aby był to „dzień flagi”, który eliminuje SSL 3.0 z „sieci”. Jasne - jeśli masz starsze urządzenia, urządzenia wbudowane itp., Które nie obsługują TLS w przedsiębiorstwie, możesz uruchomić protokół SSL 3.0. Myślę jednak, że nieodpowiedzialne jest zachęcanie kogokolwiek do dalszego korzystania z SSL 3.0 w publicznym Internecie.
Evan Anderson

Dzisiaj wyłączyłem SSLv3 w Firefoksie i zezwalałem tylko na TLS i widzę sporo problemów z połączeniem ssl podczas przeglądania stron internetowych. Obsługuję setki serwerów Linux, na których włączono sslv3. Mogę się mylić, ale najlepszym rozwiązaniem tej sytuacji jest to, że producenci systemów operacyjnych nie wypuszczą łatki, aby nic nie można było zrobić po stronie klienta. Problem polega na tym, że nie można przewidzieć wpływu.
sandeep.s85

20

Tak, wyłączenie SSL3 sprawi, że użytkownicy, którzy nie obsługują TLS, nie będą mogli uzyskać dostępu do Twojej witryny.

Jednak z praktycznego punktu widzenia sprawdź, jakie przeglądarki należą do tej kategorii. Zarówno Chrome, jak i Firefox obsługują TLS, a nawet rezygnują z obsługi SSL3 z powodu tego błędu. IE obsługuje go od IE7. Jedyną przeglądarką, która nie obsługuje, ale jest nadal używana w skali globalnej, jest IE6, a jedynym powodem, który nadal jest używany, są 2 powody:

  1. Każdy, kto ma pękniętą wersję XP i nie ma możliwości korzystania z Chrome lub Firefox;
  2. Każdy, kto przestrzega zasad korporacyjnych lub rządowych z ograniczeniami dotyczącymi wyboru przeglądarki.

W obu przypadkach IE6 jest używany, ponieważ jest to domyślna przeglądarka systemu Windows XP dostarczana z oryginalną instalacją. Ponadto jedynym powodem, dla którego IE6 nadal ma (mały) udział w rynku światowym, jest fakt, że wielu użytkowników w Chinach.

Krótko mówiąc: oto 3 pytania:

  1. Czy masz znaczącą chińską bazę użytkowników?
  2. Czy Twoja witryna zapewnia obsługę IE6, mimo że jest przestarzała i zepsuta?
  3. Czy Twoja witryna jest produktem używanym przez rząd lub korporację z ograniczeniami wyboru przeglądarki?

Jeśli którakolwiek z tych 3 odpowiedzi jest prawdziwa, musisz znaleźć alternatywne rozwiązanie. Jeśli wszystkie 3 są fałszywe, po prostu wyłącz je i gotowe. A jeśli potrzebujesz alternatywnego rozwiązania, czy cholernie trudno jest przekonać tę niewielką część bazy użytkowników, która nadal używa IE6, aby przełączyć się z 13-letniej przeglądarki.


7

W swoim pytaniu wspominasz o „ Apache ” i „ przeglądarkach ”, ale tytuł jest bardziej ogólny.

Jak zauważają Evan i inni, problem jest prawie całkowicie rozwiązany w przypadku HTTPS. Ale istnieje wiele innych protokołów, które serwer może szyfrować, a obsługa TLS jest znacznie gorsza wśród tej bazy klientów (jak się dowiedziałem dziś rano, kiedy nakazuję „brak SSL3” na serwerze IMAP / S).

Obawiam się więc, że odpowiedź brzmi: „ zależy to od tego, jakie usługi szyfrujesz, a także od obsługi klienta TLS wśród bazy użytkowników ”.

Edycja : tak, o to mi chodziło, choć cieszę się, że się zgadzasz. Wyłączenie sslv3 odbywa się dla poszczególnych usług. Na przykład sposobem na wyłączenie go w dovecot jest włożenie

ssl_cipher_list = ALL:!LOW:!SSLv2:!SSLv3:!EXP:!aNULL

w dovecot.conf. Większy problem polega na tym, że podczas gdy większość przeglądarek toleruje utratę sslv3, klienci innych usług wydają się być znacznie mniej tolerancyjni. Zepsułem dziś rano około połowy moich użytkowników, kiedy wyłączyłem to w dovecot; Telefony z Androidem z pocztą K-9 i Outlook na Win7 to dwa, które znam na pewno, ale z moich logów wynika, że ​​było ich więcej.

Wyłączenie SSLv3 nadal jest nie tylko prawidłowym rozwiązaniem, ale jest jedynym rozwiązaniem; ale będzie bolało.

Edycja 2 : podziękowania dla dave_thompson_085 za wskazanie, że wyłączenie szyfrów SSLv3 w dovecot wyłącza nie tylko protokół SSLv3, ale także TLSv1.0 i TLSv1.1, ponieważ nie mają szyfrów, których nie ma wcześniejszy protokół. Dovecot (przynajmniej wcześniejsze wersje, w tym ta, którą używam) wydaje się nie mieć możliwości konfigurowania protokołów, a nie szyfrów. To prawdopodobnie wyjaśnia, dlaczego to zrujnowało tak wielu klientów.


1
Przeczytałem również, że wpłynie to nie tylko na serwery sieciowe, ale także na każdą usługę działającą na serwerze, która korzysta z SSL, tj. Serwery WWW, serwery LDAP, demony SSH, serwery POP3, serwery SMTP. Dla serwerów internetowych mamy konfigurację w Apache plik konfiguracyjny mod_ssl jako SSLProtocol Wszystkie -SSLv2 -SSLv3 Musimy również przyjrzeć się innym usługom i dowiedzieć się, w jaki sposób zapobiegamy używaniu protokołu
SSLv3

Rzeczywisty atak POODLE, jak opisano w poradniku bezpieczeństwa , opiera się na sporej liczbie próśb z pewną możliwością kontroli ze strony atakującego. W kontekście HTTPS i przeglądarek jest to możliwe dzięki skryptom, ale w kontekście np. IMAPS nie jestem przekonany, że jest to praktyczne. Pozbycie się protokołu SSLv3 na wszystkich platformach jest oczywiście idealne, ale po prostu nie jestem pewien, czy w szczególności POODLE ma znaczenie dla niektórych z tych innych przypadków.
Håkan Lindqvist

Håkan, w miarę upływu czasu, coraz bardziej się z tobą zgadzam.
MadHatter obsługuje Monikę

3
Wyłączenie szyfrów !SSLv3 w openssl faktycznie wyłącza wszystkie protokoły oprócz TLSv1.2, co może nie być dobre dla twoich rówieśników. Dlatego wyłączenie protokołu jest lepsze, ale AFAICS tylko w dovecot 2.1+. Zobacz security.stackexchange.com/questions/71872/… .
dave_thompson_085

@ dave_thompson_085: kiedy mówisz „ wyłączanie ... w openssl ”, czy masz na myśli „ wyłączanie ... w dovecot ”? Jeśli tak, zgadzam się z tobą i zmienię moją odpowiedź w świetle tych informacji, jeśli możesz wyjaśnić zgodnie z żądaniem.
MadHatter obsługuje Monikę

6

Wyłączenie SSLv3 jest najlepszym rozwiązaniem, ale nie zgadzam się, że jest to jedyne rozwiązanie. Jak opisuje CloudFlare, użycie protokołu SSLv3 jest bardzo niskie , więc większość administratorów nie powinna mieć problemu z jego wyłączeniem.

Jeśli masz wymaganie speciel dla protokołu SSLv3, być może musisz obsługiwać IE6 w systemie Windows XP lub musisz obsługiwać bardzo stare oprogramowanie, istnieje inny sposób jego złagodzenia.

Sposobem na złagodzenie tego i utrzymanie protokołu SSLv3 jest użycie RC4 i obsługa TLS Fallback SCSV, który zapewnia OpenSSL 1.0.1j. W poście kwalifikacyjnym o pudlu RC4 to „pewien niepewny szyfr strumieniowy, którego nazwy nikt nie chce wymieniać”.

To właśnie robi Google na mail.google.com, a opisują to również we wpisie na blogu: http://googleonlinesecurity.blogspot.se/2014/10/this-poodle-bites-exploiting-ssl-30.html


2
Naprawdę nie jestem pewien, co jest gorsze, pozostawiając system otwarty na Poodle lub redukcję do RC4 ...
Brian Knoblauch,

Klienci obsługujący TLS 1.1+ nie przechodzą na RC4. Nie jestem ekspertem, ale uważam, że pudel jest gorszy.
cypres

Czy RC4 nie jest skrótem od Raw Cleartext?
Hagen von Eitzen

1
Na pewno żartujesz, ale podnieś ważny punkt. To nie jest tak źle zepsute, to naprawdę dobra odpowiedź na to w kwestii bezpieczeństwa: security.stackexchange.com/a/32498
cypres

2

W rozmowie brakuje jednego szczegółu, w oparciu o oryginalne pytanie warto zanotować. TLS 1.0 jest również określany jako SSL 3.1, więc oryginalny plakat, powinieneś spojrzeć na swoją konfigurację, czy korzystasz z wersji 3.0 lub 3.1


-3

Jak w przypadku większości rzeczy, odpowiedź brzmi „to zależy”. Jedyną przeglądarką w jakimkolwiek „powszechnym” użyciu, która nie obsługuje TLS, jest IE6. Niestety różne raporty podają, że IE6 może stanowić nawet kilka procent globalnych żądań HTTP (patrz: http://news.netcraft.com/archives/2014/10/15/googles-poodle-affects-oodles.html ) . Dobrą wiadomością, jeśli jesteś w Ameryce Północnej, jest to, że jest to stosunkowo rzadkie w USA. Aby być bezpiecznym, powinieneś spojrzeć na statystyki agenta użytkownika z dzienników www. W moim przypadku było tak mało odcisków palców IE6 ua, że ​​przypuszczałem, że wszystkie pochodzą z narzędzi testujących.

Możesz przetestować swoje witryny za pomocą testera ssllab, aby zobaczyć, jak reagują różni agenci.

https://www.ssllabs.com/ssltest/

TL; DR - SSLv3 nie działa; niech żyje TLS.


15
IE6 nie jest ostatnią wersją kompatybilną z XP, jest to wersja, z którą XP został dostarczony. IE8 to ostatnia wersja zgodna z XP.
Håkan Lindqvist

6
-1 z powodu faktycznej nieprawidłowości wskazującej, że IE6 to najnowsza wersja na XP.
TomTom

may be as much as a few percent of global HTTP requests. Chciałbym źródło tego. CloudFlare mówi o użytkowaniu: In other words, even on an out-of-date operating system, 98.88% Windows XP users connected using TLSv1.0+( blog.cloudflare.com/... ). To o wiele mniej niż „kilka procent” na całym świecie.
faker

1
Podejrzewam, że klienci cloudflares to głównie duże firmy z Ameryki Północnej. Podane przeze mnie statystyki pochodzą z netcraft: news.netcraft.com/archives/2014/10/15/... „Mimo swojego wieku i końca obsługi Microsoft przez Windows XP, IE6 pozostaje popularna, co stanowi ponad 3,8% odwiedzin na całym świecie i 12,5% w Chinach. Ta luka może wywołać dzwonek śmierci w IE6 i Windows XP. ”
Joshua Hoblitt
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.