- Michls Tech Blog
- 3 thoughts on “Windows: Disable DES and Triple DES (3DES)”
- Ограничение использования определенных криптографических алгоритмов и протоколов в Schannel.dll
- Сводка
- Наборы шифров
- Ключи реестра, определенные для Schannel
- Ключ SCHANNEL
- Подкайка SCHANNEL\Protocols
- Подкайка SCHANNEL\Ciphers
- Наборы шифров FIPS 140-1
- Master secret computation by using FIPS 140-1 cipher suites
Michls Tech Blog
a measure to protect your Windows System against Sweet32 attacks is to disable the DES and Triple DES.
To do this, add 2 Registry Keys to the SCHANNEL Section of the registry.
As registry file
or from command line
3 thoughts on “Windows: Disable DES and Triple DES (3DES)”
. Disable TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 1024), 64-bit block cipher 3DES vulnerable to SWEET32 attack .
. References
:: Get OS version:
:: stackoverflow.com/questions/13212033/get-windows-version-in-a-batch-file
:: OS Name to OS version:
:: msdn.microsoft.com/en-us/library/windows/desktop/ms724832(v=vs.85).aspx
:: Windows command comparing
:: stackoverflow.com/questions/9278614/if-greater-than-batch-files
:: Find OS version:
for /f “tokens=4-7 delims=[.] ” %%i in (‘ver’) do (if %%i==Version (set v=%%j.%%k) else (set v=%%i.%%j))
echo %v%
:: Check if OS version is greater than or equal to “6.2” (Win2012 or up)
if %v% GEQ 6.2 (reg add “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\Triple DES 168” /f & reg add “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\Triple DES 168” /v Enabled /d 0 /t REG_DWORD /f)
:: Check if OS version is less than “6.2” (before Win2012)
if %v% LSS 6.2 (reg add “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\Triple DES 168/168” /f & reg add “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\Triple DES 168/168” /v Enabled /d 0 /t REG_DWORD /f)
reg query “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\
. End of disabling 3DES cipher .
Ограничение использования определенных криптографических алгоритмов и протоколов в Schannel.dll
В этой статье описывается ограничение использования определенных криптографических алгоритмов и протоколов в Schannel.dll файле. Эта информация также применяется к приложениям независимых поставщиков программного обеспечения (ISV), которые написаны для API шифрования Microsoft (CAPI).
Оригинальная версия продукта: Windows Server 2003
Исходный номер КБ: 245030
Эта статья применима к Windows Server 2003 и более ранним версиям Windows. Ключи реестра, применимые к Windows Server 2008 и более поздним версиям Windows, см. в tLS Registry Settings.
Сводка
Следующие поставщики криптографических служб (CSPs), включенные в Windows NT 4.0 Пакет обновления 6, получили сертификаты для проверки криптографии FIPS-140-1.
- Поставщик шифрования Microsoft Base (Rsabase.dll)
- Microsoft Enhanced Cryptographic Provider (Rsaenh.dll) (неэкспортная версия)
Поставщик безопасности Microsoft TLS/SSL, Schannel.dll, использует указанные здесь CSPs для ведения безопасной связи по SSL или TLS в своей поддержке служб internet Explorer и Internet Information Services (IIS).
Вы можете изменить файл Schannel.dll для поддержки Шифра Suite 1 и 2. Однако программа также должна поддерживать Пакет шифров 1 и 2. Наборы шифров 1 и 2 не поддерживаются в IIS 4.0 и 5.0.
В этой статье содержатся необходимые сведения для настройки поставщика безопасности TLS/SSL для Windows NT 4.0 Пакет обновления 6 и более поздних версий. Вы можете использовать реестр Windows для управления использованием определенных наборов шифров SSL 3.0 или TLS 1.0 в отношении криптографических алгоритмов, поддерживаемых базовым поставщиком криптографии или расширенным поставщиком шифрования.
В Windows NT 4.0 Пакет обновления 6 файл Schannel.dll не использует поставщика шифрования Microsoft Base DSS (Dssbase.dll) или расширенного поставщика шифрования Microsoft DS/Diffie-Hellman (Dssenh.dll).
Наборы шифров
SSL 3.0 и TLS 1.0 (RFC2246) с 56-битными пакетами экспортного шифра INTERNET-DRAFT для TLS draft-ietf-tls-56-bit-ciphersuites-00.txtпредоставляют варианты использования различных наборов шифров. Каждый набор шифров определяет алгоритмы обмена ключами, проверки подлинности, шифрования и MAC, которые используются в сеансе SSL/TLS. При использовании RSA в качестве алгоритмов обмена ключами и проверки подлинности термин RSA отображается только один раз в соответствующих определениях набора шифров.
Поставщик Windows NT 4.0 Пакет обновления 6 Microsoft TLS/SSL security Provider поддерживает следующий SSL 3.0-определенный cipherSuite при использовании базового поставщика шифрования или расширенного поставщика шифрования:
SSL 3.0 | Набор шифров |
---|---|
SSL_RSA_EXPORT_WITH_RC4_40_MD5 | |
SSL_RSA_WITH_RC4_128_MD5 | |
SSL_RSA_WITH_RC4_128_SHA | |
SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5 | |
SSL_RSA_WITH_DES_CBC_SHA | |
SSL_RSA_WITH_3DES_EDE_CBC_SHA | |
SSL_RSA_EXPORT1024_WITH_DES_CBC_SHA | |
SSL_RSA_EXPORT1024_WITH_RC4_56_SHA |
Ни SSL_RSA_EXPORT1024_WITH_DES_CBC_SHA, ни SSL_RSA_EXPORT1024_WITH_RC4_56_SHA не определены в тексте SSL 3.0. Однако несколько поставщиков SSL 3.0 поддерживают их. Это относится к Корпорации Майкрософт.
Windows NT 4.0 Пакет обновления 6 Поставщик безопасности Microsoft TLS/SSL также поддерживает следующий код cipherSuite с определением TLS 1.0 при использовании базового поставщика шифрования или расширенного поставщика шифрования:
TLS 1.0 | Набор шифров |
---|---|
TLS_RSA_EXPORT_WITH_RC4_40_MD5 | |
TLS_RSA_WITH_RC4_128_MD5 | |
TLS_RSA_WITH_RC4_128_SHA | |
TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 | |
TLS_RSA_WITH_DES_CBC_SHA | |
TLS_RSA_WITH_3DES_EDE_CBC_SHA | |
TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA | |
TLS_RSA_EXPORT1024_WITH_RC4_56_SHA |
Набор шифров, определяемый с помощью первого 0x00, не является частным и используется для открытых интероперабельных коммуникаций. Поэтому поставщик Windows NT 4.0 Пакет обновления 6 Microsoft TLS/SSL Security Provider следует процедурам использования этих наборов шифров, как указано в SSL 3.0 и TLS 1.0, чтобы убедиться в возможности обеспечения связи.
Ключи реестра, определенные для Schannel
В этот раздел, описание метода или задачи включены действия, содержащие указания по изменению параметров реестра. Однако неправильное изменение параметров реестра может привести к возникновению серьезных проблем. Поэтому следует в точности выполнять приведенные инструкции. Для дополнительной защиты создайте резервную копию реестра, прежде чем редактировать его. Так вы сможете восстановить реестр, если возникнет проблема. Дополнительные сведения о том, как создать и восстановить реестр, см. в этой информации, как создать и восстановить реестр в Windows.
Любые изменения содержимого ключа CIPHERS или ключа HASHES вступает в силу немедленно, без перезапуска системы.
Ключ SCHANNEL
Начните редактор реестра (Regedt32.exe), а затем найдите следующий ключ реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL
Подкайка SCHANNEL\Protocols
Чтобы система мог использовать протоколы, которые не будут согласованы по умолчанию (например, TLS 1.1 и TLS 1.2), измените данные значения DWORD значения DisabledByDefault на 0x0 в следующих ключах реестра в ключе Протоколы:
- SCHANNEL\Protocols\TLS 1.1\Client
- SCHANNEL\Protocols\TLS 1.1\Server
- SCHANNEL\Protocols\TLS 1.2\Client
- SCHANNEL\Protocols\TLS 1.2\Server
Значение DisabledByDefault в ключе реестра в ключе Протоколы не имеет приоритета над значением grbitEnabledProtocols, которое определяется в структуре, содержаной данные учетных данных SCHANNEL_CRED Schannel.
Подкайка SCHANNEL\Ciphers
Ключ реестра шифров под ключом SCHANNEL используется для управления использованием симметричных алгоритмов, таких как DES и RC4. Ниже приводится допустимый ключ реестра под ключом Ciphers.
Создание подкайки шифров SCHANNEL в формате: SCHANNEL\(VALUE)\(VALUE/VALUE)
RC4 128/128
Подмышка шифров: SCHANNEL\Ciphers\RC4 128/128
Этот подкай относится к 128-битной RC4.
Чтобы разрешить этот алгоритм шифра, измените данные значения DWORD значения включенного значения на 0xffffffff . Или измените данные значения DWORD на 0x0. Если не настроить значение Включено, включено значение по умолчанию. Этот ключ реестра не применяется к экспортируемом серверу, у него нет сертификата SGC.
Отключение этого алгоритма фактически отключит следующие значения:
- SSL_RSA_WITH_RC4_128_MD5
- SSL_RSA_WITH_RC4_128_SHA
- TLS_RSA_WITH_RC4_128_MD5
- TLS_RSA_WITH_RC4_128_SHA
Triple DES 168
Подмышка шифров: SCHANNEL\Ciphers\Triple DES 168
Этот ключ реестра относится к 168-битной triple DES, как указано в ANSI X9.52 и Draft FIPS 46-3. Этот ключ реестра не применяется к экспортной версии.
Чтобы разрешить этот алгоритм шифра, измените данные значения DWORD значения включенного значения на 0xffffffff . Или измените данные DWORD на 0x0. Если не настроить значение Включено, включено значение по умолчанию.
Отключение этого алгоритма фактически отключит следующие значения:
Для версий Windows, выпускаемой до Windows Vista, ключ должен быть Triple DES 168/168.
RC2 128/128
Подмышка шифров: SCHANNEL\Ciphers\RC2 128/128
Этот ключ реестра относится к 128-битной RC2. Он не применяется к экспортной версии.
Чтобы разрешить этот алгоритм шифра, измените данные значения DWORD значения включенного значения на 0xffffffff . В противном случае измените данные значения DWORD на 0x0. Если не настроить значение Включено, включено значение по умолчанию.
RC4 64/128
Подмышка шифров: SCHANNEL\Ciphers\RC4 64/128
Этот ключ реестра относится к 64-битной RC4. Он не применяется к экспортной версии (но используется в Microsoft Money).
Чтобы разрешить этот алгоритм шифра, измените данные значения DWORD значения включенного значения на 0xffffffff . В противном случае измените данные значения DWORD на 0x0. Если не настроить значение Включено, включено значение по умолчанию.
RC4 56/128
Подмышка шифров: SCHANNEL\Ciphers\RC4 56/128
Этот ключ реестра относится к 56-битной RC4.
Чтобы разрешить этот алгоритм шифра, измените данные значения DWORD значения включенного значения на 0xffffffff. В противном случае измените данные значения DWORD на 0x0. Если не настроить значение Включено, включено значение по умолчанию.
Отключение этого алгоритма фактически отключит следующее значение:
RC2 56/128
Подмышка шифров: SCHANNEL\Ciphers\RC2 56/128
Этот ключ реестра относится к 56-битной RC2.
Чтобы разрешить этот алгоритм шифра, измените данные значения DWORD значения включенного значения на 0xffffffff . В противном случае измените данные значения DWORD на 0x0. Если не настроить значение Включено, включено значение по умолчанию.
DES 56
Подмышка шифров: SCHANNEL\Ciphers\RC2 56/56
Этот ключ реестра относится к 56-битной des, как указано в FIPS 46-2. Его реализация в Rsabase.dll и Rsaenh.dll проверяется в рамках программы проверки криптографического модуля FIPS 140-1.
Чтобы разрешить этот алгоритм шифра, измените данные значения DWORD значения включенного значения на 0xffffffff . В противном случае измените данные значения DWORD на 0x0. Если не настроить значение Включено, включено значение по умолчанию.
Отключение этого алгоритма фактически отключит следующие значения:
RC4 40/128
Подмышка шифров: SCHANNEL\Ciphers\RC4 40/128
Этот ключ реестра относится к 40-битной RC4.
Чтобы разрешить этот алгоритм шифра, измените данные значения DWORD значения включенного значения на 0xffffffff . В противном случае измените данные значения DWORD на 0x0. Если не настроить значение Включено, включено значение по умолчанию.
Отключение этого алгоритма фактически отключит следующие значения:
RC2 40/128
Подмышка шифров: SCHANNEL\Ciphers\RC2 40/128
Этот ключ реестра относится к 40-битной RC2.
Чтобы разрешить этот алгоритм шифра, измените данные значения DWORD значения включенного значения на 0xffffffff . В противном случае измените данные значения DWORD на 0x0. Если не настроить значение Включено, включено значение по умолчанию.
Отключение этого алгоритма фактически отключит следующие значения:
NULL
Подмышка шифров: SCHANNEL\Ciphers\NULL
Этот ключ реестра не означает шифрования. По умолчанию он отключен.
Чтобы отключить шифрование (отключите все алгоритмы шифров), измените значение DWORD значения включенного значения на 0xffffffff . В противном случае измените данные значения DWORD на 0x0.
Hashes
Подмышка шифров: SCHANNEL/Hashes
Ключ реестра hashes под ключом SCHANNEL используется для управления использованием алгоритмов хеширования, таких как SHA-1 и MD5. Ниже приводится допустимый ключ реестра под ключом Hashes.
MD5
Подмышка шифров: SCHANNEL\Hashes\MD5
Чтобы разрешить этот алгоритм хаширования, измените данные значения DWORD значения Включено на значение по умолчанию 0xffffffff. В противном случае измените данные значения DWORD на 0x0.
Отключение этого алгоритма фактически отключит следующие значения:
- SSL_RSA_EXPORT_WITH_RC4_40_MD5
- SSL_RSA_WITH_RC4_128_MD5
- SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5
- TLS_RSA_EXPORT_WITH_RC4_40_MD5
- TLS_RSA_WITH_RC4_128_MD5
- TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5
SHA
Подмышка шифров: SCHANNEL\Hashes\SHA
Этот ключ реестра относится к безопасному алгоритму хаша (SHA-1), как указано в FIPS 180-1. Его реализация в Rsabase.dll и Rsaenh.dll проверяется в рамках программы проверки криптографического модуля FIPS 140-1.
Чтобы разрешить этот алгоритм хаширования, измените данные значения DWORD значения Включено на значение по умолчанию 0xffffffff. В противном случае измените данные значения DWORD на 0x0.
Отключение этого алгоритма фактически отключит следующие значения:
- SSL_RSA_WITH_RC4_128_SHA
- SSL_RSA_WITH_DES_CBC_SHA
- SSL_RSA_WITH_3DES_EDE_CBC_SHA
- SSL_RSA_EXPORT1024_WITH_DES_CBC_SHA
- SSL_RSA_EXPORT1024_WITH_RC4_56_SHA
- TLS_RSA_WITH_RC4_128_SHA
- TLS_RSA_WITH_DES_CBC_SHA
- TLS_RSA_WITH_3DES_EDE_CBC_SHA
- TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA
- TLS_RSA_EXPORT1024_WITH_RC4_56_SHA
KeyExchangeAlgorithms
Подмышка шифров: SCHANNEL/KeyExchangeAlgorithms
Ключ реестра KeyExchangeAlgorithms под ключом SCHANNEL используется для управления использованием ключевых алгоритмов обмена, таких как RSA. Ниже приводится допустимый ключ реестра в ключе KeyExchangeAlgorithms.
PKCS
Подмышка шифров: SCHANNEL\KeyExchangeAlgorithms\PKCS
Этот ключ реестра относится к RSA как к алгоритмам обмена ключами и проверки подлинности.
Чтобы разрешить RSA, измените данные значения DWORD значения Включено на значение по умолчанию 0xffffffff. В противном случае измените данные DWORD на 0x0.
Отключение RSA фактически отключит все шифры SSL и TLS на основе RSA, поддерживаемые поставщиком безопасности Windows NT4 SP6 Microsoft TLS/SSL.
Наборы шифров FIPS 140-1
Возможно, вам нужно использовать только те наборы шифров SSL 3.0 или TLS 1.0, которые соответствуют алгоритмам FIPS 46-3 или FIPS 46-2 и FIPS 180-1, предоставленным поставщиком шифрования Microsoft Base или Enhanced Cryptographic.
В этой статье мы называем их шифрами FIPS 140-1. В частности, они являются следующими:
- SSL_RSA_WITH_DES_CBC_SHA
- SSL_RSA_WITH_3DES_EDE_CBC_SHA
- SSL_RSA_EXPORT1024_WITH_DES_CBC_SHA
- TLS_RSA_WITH_DES_CBC_SHA
- TLS_RSA_WITH_3DES_EDE_CBC_SHA
- TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA
Чтобы использовать только наборы шифров FIPS 140-1, как определено здесь и поддерживается Windows NT 4.0 Пакет обновления 6 Поставщик безопасности Microsoft TLS/SSL с базовым криптографическим поставщиком или расширенным криптографическим поставщиком, настройте данные значения DWORD значения Включено в следующих ключах реестра для 0x0:
- SCHANNEL\Ciphers\RC4 128/128
- SCHANNEL\Ciphers\RC2 128/128
- SCHANNEL\Ciphers\RC4 64/128
- SCHANNEL\Ciphers\RC4 56/128
- SCHANNEL\Ciphers\RC2 56/128
- SCHANNEL\Ciphers\RC4 40/128
- SCHANNEL\Ciphers\RC2 40/128
- SCHANNEL\Ciphers\NULL
- SCHANNEL\Hashes\MD5
И настройте данные значения DWORD значения Включено в следующих ключах реестра для 0xffffffff:
- SCHANNEL\Ciphers\DES 56/56
- SCHANNEL\Ciphers\Triple DES 168/168 (не применяется в экспортной версии)
- SCHANNEL\Hashes\SHA
- SCHANNEL\KeyExchangeAlgorithms\PKCS
Master secret computation by using FIPS 140-1 cipher suites
Процедуры использования шифров FIPS 140-1 в SSL 3.0 отличаются от процедур использования шифров FIPS 140-1 в TLS 1.0.
В SSL 3.0 ниже приводится определение master_secret вычислений:
В TLS 1.0 ниже приводится определение master_secret вычислений:
Выбор варианта использования только шифров fiPS 140-1 в TLS 1.0:
Из-за этой разницы клиентам может потребоваться запретить использование SSL 3.0, даже если разрешенный набор наборов шифров ограничен только подмножество шифров fips 140-1 suites. В этом случае измените значение DWORD значения включенного значения на 0x0 в следующих ключах реестра в ключе Протоколы:
- SCHANNEL\Protocols\SSL 3.0\Client
- SCHANNEL\Protocols\SSL 3.0\Server
Данные включенного значения в этих ключах реестра в ключе Протоколы имеют приоритет над значением grbitEnabledProtocols, которое определяется в структуре, содержаной данные для учетных данных SCHANNEL_CRED Schannel. По умолчанию включено значение 0xffffffff.