На 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.