На IIS, як я виправити вразливість SSL 3.0 POODLE (CVE-2014-3566)?


53

Як зробити патч CVE-2014-3566 в системі Windows Server 2012 під управлінням IIS?

Чи є виправлення в оновленнях Windows, чи потрібно змінити реєстр, щоб відключити SSL 3.0 ?


1
На сторінці MS KB, на яку ви пов’язані, є Microsoft Fix it 50495 .
MattBianco

3
Я спробував запустити Fix it 50495 в Windows 2008, і він не вдався до помилки "Цей Microsoft Fix не застосовується до вашої операційної системи чи версії програми." Ну добре.
Джош

Відповіді:


58

Немає «латки». Це вразливість у протоколі, а не помилка в реалізації.

У Windows Server 2003 до 2012 R2 протоколи SSL / TLS контролюються прапорами реєстру, встановленими на HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols.

Щоб вимкнути SSLv3, щодо якого є вразливість POODLE, створіть підрозділ у вказаному вище місці (якщо його ще немає) з назвою, SSL 3.0а під цим - підрозділом з ім'ям Server(якщо його вже немає). У цьому місці ( HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 3.0\Server) створіть ім'я значення DWORD Enabledта залиште його встановленим у 0.

Відключення SSL 2.0, що ви також повинні робити, робиться так само, за винятком того, що ви будете використовувати ключ, названий SSL 2.0у вищевказаному шляху до реєстру.

Я не перевірив всі версії, але думаю, що, напевно, можна припустити, що перезавантаження необхідне, щоб ці зміни набули чинності.


3
перезавантажувати не потрібно принаймні на Windows Server 2012. ви можете перевірити до і після на poodlebleed.com , ввівши свою URL-адресу та 443 для порту SSL
Саймон

Дякую, чи знаєте ви, чи слід я відключити PCT, оскільки його нібито вимкнено за замовчуванням та ще не відключено таким чином?
Марк Бродхерст

@Simon, чи потрібно ще щось зробити, щоб зміни набули чинності? Я щойно робив оновлення реєстру на машині Server 2012, але все ще надходить повідомлення про те, що SSL3 увімкнено.
Абе Місслер

Я не вірю в це. Я припускаю, що ви використовуєте iis та Apache, і ви перевірили usjng цей веб-сайт. І ви впевнені, що маєте точний правильний ключ реєстру?
Саймон

* НЕ apache (я не знаю, звідки взявся мій Apache!)
Саймон

24

Просто для зручності установки я отримав цей файл "відключити ssl 2 та 3.reg" з відповіді Евана вище :

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server]
"Enabled"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server]
"Enabled"=dword:00000000

12

Powershell для відключення SSL2 та SSL3:

2..3 | %{ New-ItemProperty -Path "HKLM:SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL $_.0\Server" -Name Enabled -PropertyType "DWORD" -Value 0 -Force }

На жаль, вищезазначене працює лише в тому випадку, якщо підрозділи реєстру вже є. Було б добре побачити PS, який може створити їх, якщо їх немає, або оновити їх, якщо вони є.
Жанс

Ти впевнений? Моя створює їх для мене. Це може відрізнятись від нижчих версій Powershell та Windows (я використовую v2 на Server 2008 R2)
Василь Сиракіс,

2
Так ... дивіться скріншот, завантажений на: i.imgur.com/rctFH4D.png За допомогою PS 3.0 та WSMan 3.0.
Яанс


8

Ось PowerShell, який перевірить наявність ключів реєстру, створіть їх за потреби та введіть необхідні значення для відключення SSL 2.0 та SSL 3.0

$regPath1 = 'HKLM:SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 2.0'
$regPath2 = 'HKLM:SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 2.0\Server'
$regPath3 = 'HKLM:SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 3.0'
$regPath4 = 'HKLM:SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 3.0\Server'


If(!(Test-Path -Path $regPath1))
{
New-Item -Path $regPath1 -Force
}

If(!(Test-Path $regPath2))
{
New-Item -Path $regPath2 -Force
}
   New-ItemProperty -Path $regPath2 -Name DisabledByDefault -PropertyType DWORD -Value "1" -Force
   New-ItemProperty -Path $regPath2 -Name Enabled -PropertyType DWORD -Value "0" -Force 

If(!(Test-Path $regPath3))
{
New-Item -Path $regPath3 -Force
}

If(!(Test-Path $regPath4))
{
New-Item -Path $regPath4 -Force
}
   New-ItemProperty -Path $regPath4 -Name DisabledByDefault -PropertyType DWORD -Value "1" -Force
   New-ItemProperty -Path $regPath4 -Name Enabled -PropertyType DWORD -Value "0" -Force

Це можна розгорнути за допомогою SCCM або командного рядка - просто не забудьте запустити завдання SCCM або командний рядок як Адміністратор. Деякі веб-сайти з інформацією про реєстр вказують на необхідність перезавантаження після створення та / або модифікації ключів реєстру.


4

Або схопіть копію IISCrypto та натисніть кнопку найкращих практик, зніміть прапорець SSL 3.0 та застосуйте, а потім перезавантажте.


3

Вам не доведеться вимикати SSL3. Ви можете ввімкнути SSL3 і пом'якшити POODLE .

# Copy and paste this in PowerShell then restart your server
$cipherSuitesOrder = @(
    'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256',
    'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P384',
    'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256',
    'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P384',
    'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P256',
    'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384',
    'TLS_RSA_WITH_AES_128_CBC_SHA256',
    'TLS_RSA_WITH_AES_128_CBC_SHA',
    'TLS_RSA_WITH_AES_256_CBC_SHA256',
    'TLS_RSA_WITH_AES_256_CBC_SHA',
    'TLS_RSA_WITH_RC4_128_SHA',
    'TLS_RSA_WITH_3DES_EDE_CBC_SHA',
    'TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P256',
    'TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P256',
    'TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P384',
    'TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P384',
    'TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P256',
    'TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P384',
    'TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P256',
    'TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P384'
)
$cipherSuitesAsString = [string]::join(',', $cipherSuitesOrder)
New-ItemProperty -path 'HKLM:\SOFTWARE\Policies\Microsoft\Cryptography\Configuration\SSL\00010002' \
-name 'Functions' -value $cipherSuitesAsString -PropertyType 'String' -Force | Out-Null

За допомогою цих налаштувань у вас все ще буде підтримка IE6 (для SSLv3, що використовує RC4), і більш ніж прийнятна безпека конфігурації. Лише IE6 і справді старий клієнт використовували шифри SSLv3 або RC4.


3

Є хороший сценарій PowerShell, який допомагає в налаштуваннях IIS 7.5 і 8:

Цей скрипт PowerShell налаштовує ваш Інтернет-сервер інформації Internet 7.5 та 8.0 (IIS) для підтримки протоколів TLS 1.1 та TLS 1.2 із захищеною секретністю. Крім того, це підвищує безпеку ваших SSL-з'єднань, вимикаючи незахищені SSL2 та SSL3, а також усі незахищені та слабкі шифри, на які може перейти браузер. Цей сценарій реалізує поточні правила найкращої практики.

https://www.hass.de/content/setup-your-iis-ssl-perfect-forward-secrecy-and-tls-12


Гм, не впевнений, чому за це було проголосовано. Я сам користувався цією утилітою, і вона прекрасно працює.
Девід Томас

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