Відключення SSLv3, але все ще підтримує SSLv2Hello в Apache


12

Багато клієнтів SSL, зокрема JDK 6, використовують протокол SSLv2Hello для рукостискання з сервером. Використання цього протоколу не означає, що ви використовуєте SSL 2.0 або 3.0 для цього питання; це лише рукостискання, щоб визначити, який протокол використовувати. [ http://tools.ietf.org/html/rfc5246#appendix-E.2]

Однак у Apache, якщо ви відключите підтримку SSLv3, це, очевидно, видаляє підтримку протоколу SSLv2Hello. Apache Tomcat має явну підтримку SSLv2Hello; тобто ви можете це ввімкнути, але не ввімкнути SSLv3.

Чи можна це зробити в Apache?

[Оновлення]

Це конфігурація мого протоколу:

  SSLProtocol +TLSv1 +TLSv1.1 +TLSv1.2 -SSLv3

However, in Apache, if you disable SSLv3 support, this apparently removes support for the SSLv2Hello protocol. Я запускаю Apache 2.2 з, SSLProtocol all -SSLv2 -SSLv3і рукостискання SSL 2 працює. Яка конфігурація працює саме в тому, що у вас є проблеми. Єдиний спосіб, яким я знаю відключити рукостискання SSL 2 - це включити режим FIPS.
Chris S

1
Який біль справлятись із цією застарілою підтримкою у 2014 році: (. Настав час, щоб усі запустили SSLv2 та SSLv3 та зробили підтримку універсальних розширень (наприклад, SNI).
Xavier Lucas,

2
@XavierLucas Замість того, щоб виконувати всі -SSLv2, -SSLv3, я вказую протоколи TLS, які я підтримую. Я не бачу, чому це було б інакше, але я перевірю.
Мет Х'юз

@ChrisS Я спробував обидва: SSLProtocol + TLSv1 + TLSv1.1 + TLSv1.2 -SSLv3 і всі -SSLv3 -SSLv2. Це працює з Apache 2.4.10. Жодна конфігурація не дозволяє передавати SSL 2 рукостискання. І я не торкнувся режиму FIPS; за замовчуванням - це вимкнено.
Мет Х'юз

Відповіді:


7

Мабуть, mod_ssl змінився протягом останнього року або близько того (я не знайшов точну прив'язку до джерела, але знайшов "проблему"). Зараз джерело робить це:

If SSLProtocol only includes only one Protocol:
    Handshake = That Protocol's Handshake Only
Else
    Handshake = SSLv2 Handshake

Для цього налаштування немає переопрацювання. Єдине, що ви могли зробити - це відредагувати джерело, перекомпілювати власну версію. Я створив diff для примушування сумісності SSLv2 Handshake, якщо ви хочете скласти власну.


1
Я можу підтвердити, що патч Кріса допомагає - curl (та програми, що використовують libcurl, такі як git) тепер можуть знову говорити з нашим сервером, незважаючи на те, що SSLv3 було відключено - без sslscanпозначення будь-яких уразливостей. Але пластир здається дещо інвазивним, і я хотів би попросити Кріса надіслати його на проект Apache для перегляду як можна швидше. Я сам подаю квиток, якщо Кріс не :-) Дякую вам, Кріс!
Михайло Т.

1
Було б краще додати окрему директиву, щоб застосувати режим сумісності. Якщо у мене є якийсь вільний час, я напишу це, але не думаю, що ця "виправка" є гарною ідеєю в перспективі.
Кріс S

Так, це, мабуть, те, що розглядають розробники Apache. Дивіться [потік] [1] Я почав там ... [1] mail-archives.apache.org/mod_mbox/httpd-dev/201410.mbox/…
Михайло Т.

1

Тож виявляється, це було проблемою весь час. Apache прийме рукостискання SSLv2 з будь-якою з конфігурацій, які я розмістив вище. Мене введено в оману помилкою рукостискання в думці, що це питання; це було лише проблемою конфігурації, коли сервер не довіряв клієнтові CA.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.