Ограничение использования определенных криптографических алгоритмов и протоколов в Schannel.dll.
В этой статье описывается ограничение использования определенных криптографических алгоритмов и протоколов в файле Schannel.dll. Эти сведения также применимы к приложениям независимых поставщиков программного обеспечения (ISV), написанным для API шифрования (CAPI) Microsoft.
Применяется к: Windows Server 2003
Оригинальный номер базы знаний: 245030
Примечание.
Эта статья применяется к Windows Server 2003 и более ранним версиям Windows. Разделы реестра, применимые к Windows Server 2008 и более поздним версиям Windows, см. в Параметры реестра TLS.
Сводка
Следующие поставщики служб шифрования (CSP), включаемые в пакет обновления 6 для Windows NT 4.0, получили сертификаты для проверки шифрования FIPS-140-1.
- Поставщик базового шифрования Microsoft (Rsabase.dll)
- Поставщик улучшенного шифрования Microsoft (Rsaenh.dll) (версия не для экспорта)
В рамках поддержки Internet Explorer и служб IIS поставщик безопасности TLS/SSL Microsoft, файл Schannel.dll, использует перечисленные поставщики услуг шифрования для безопасного обмена данными по протоколу SSL или TLS.
Schannel.dll vj;можно изменить для поддержки комплектов шифров 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 DSS (Dssbase.dll) или поставщик расширенного шифрования Microsoft DS/DS/Diffie-Excelman (Dssenh.dll).
Комплекты шифров
SSL 3.0 и TLS 1.0 (RFC2246) с 56-разрядными комплектами шифров с поддержкой экспорта для TLS draft-ietf-tls-56-bit-ciphersuites-00.txt INTERNET-DRAFT предоставляют возможности использования других комплектов шифров. Каждый комплект шифров определяет алгоритмы обмена ключами, проверки подлинности, шифрования и кодов проверки подлинности сообщения, используемые в сеансе SSL/TLS. При использовании RSA в качестве алгоритмов как для обмена ключами, так и для проверки подлинности, термин RSA отображается только один раз в соответствующих определениях комплекта шифров.
Поставщик безопасности TLS/SSL Microsoft для Windows NT 4.0 с пакетом обновления 6 поддерживает следующий определенный в SSL 3.0 комплект шифров при использовании поставщика базового шифрования или поставщика расширенного шифрования:
SSL 3.0 | Комплект шифрования |
---|---|
SSL_RSA_EXPORT_WITH_RC4_40_MD5 | { 0x00,0x03 } |
SSL_RSA_WITH_RC4_128_MD5 | { 0x00,0x04 } |
SSL_RSA_WITH_RC4_128_SHA | { 0x00,0x05 } |
SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5 | { 0x00,0x06 } |
SSL_RSA_WITH_DES_CBC_SHA | { 0x00,0x09 } |
SSL_RSA_WITH_3DES_EDE_CBC_SHA | { 0x00,0x0A } |
SSL_RSA_EXPORT1024_WITH_DES_CBC_SHA | { 0x00,0x62 } |
SSL_RSA_EXPORT1024_WITH_RC4_56_SHA | { 0x00,0x64 } |
Примечание.
Ни SSL_RSA_EXPORT1024_WITH_DES_CBC_SHA, ни SSL_RSA_EXPORT1024_WITH_RC4_56_SHA не определены в тексте SSL 3.0. Тем не менее, их поддерживают несколько поставщиков SSL 3.0. В их число входит Microsoft.
При использовании поставщика базового или расширенного шифрования поставщик безопасности TLS/SSL Microsoft для Windows NT 4.0 с пакетом обновления 6 также поддерживает следующий комплект шифров, определенный в TLS/SSL 1.0:
TLS 1.0 | Комплект шифрования |
---|---|
TLS_RSA_EXPORT_WITH_RC4_40_MD5 | { 0x00,0x03 } |
TLS_RSA_WITH_RC4_128_MD5 | { 0x00,0x04 } |
TLS_RSA_WITH_RC4_128_SHA | { 0x00,0x05 } |
TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 | { 0x00,0x06 } |
TLS_RSA_WITH_DES_CBC_SHA | { 0x00,0x09 } |
TLS_RSA_WITH_3DES_EDE_CBC_SHA | { 0x00,0x0A } |
TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA | { 0x00,0x62 } |
TLS_RSA_EXPORT1024_WITH_RC4_56_SHA | { 0x00,0x64 } |
Примечание.
Комплект шифров, определенный с помощью первого байта 0x00, не является частным и используется для открытого операционно-совместимого обмена данными. Поэтому поставщик безопасности TLS/SSL Microsoft для Windows NT 4.0 с пакетом обновления 6 следует процедурам использования этих комплектов шифров, указанных в SSL 3.0 и TLS 1.0, для обеспечения операционной совместимости.
Разделы реестра, относящиеся к Schannel
Важно!
В этот раздел, описание метода или задачи включены действия, содержащие указания по изменению параметров реестра. Однако неправильное изменение параметров реестра может привести к возникновению серьезных проблем. Поэтому следует в точности выполнять приведенные инструкции. Для дополнительной защиты создайте резервную копию реестра, прежде чем редактировать его. Так вы сможете восстановить реестр, если возникнет проблема. Для получения дополнительной информации о том, как создать резервную копию и восстановить реестр, см. статью Сведения о резервном копировании и восстановлении реестра Windows.
Примечание.
Любые изменения содержимого разделов CIPHERS или HASHES вступают в силу немедленно, без перезагрузки системы.
Раздел SCHANNEL
Запустите редактор реестра (Regedt32.exe) и найдите следующий раздел реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL
Подраздел SCHANNEL\Протоколы
Чтобы разрешить системе использовать не согласованные по умолчанию протоколы (например 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
Подраздел реестра Ciphers в разделе SCHANNEL используется для управления использованием симметричных алгоритмов, например DES и RC4. Ниже указаны допустимые ключи реестра в подразделе Ciphers.
Создайте в SCHANNEL подраздел «Ciphers» в следующем формате: SCHANNEL\(VALUE)\(VALUE/VALUE)
RC4 128/128
Подраздел Ciphers: SCHANNEL\Ciphers\RC4 128/128
Этот подраздел относится к 128-разрядному шифру RC4.
Чтобы разрешить этот алгоритм шифрования, измените значение DWORD параметра Enabled на 0xffffffff. Или измените значение DWORD параметра на 0x0. Если параметр Enabled на настроен, используется значение по умолчанию. Этот раздел реестра не применяется к серверу для экспорта без сертификата 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
Подраздел Ciphers: SCHANNEL\Ciphers\Triple DES 168
Этот раздел реестра относится к 168-разрядному шифру Triple DES, указанному в ANSI X9.52 и Draft FIPS 46-3. Этот раздел реестра не применяется к версиям с поддержкой экспорта.
Чтобы разрешить этот алгоритм шифрования, измените значение DWORD параметра Enabled на 0xffffffff. Или измените значение DWORD на 0x0. Если параметр Enabled на настроен, используется значение по умолчанию.
Отключение этого алгоритма фактически запрещает следующие значения:
SSL_RSA_WITH_3DES_EDE_CBC_SHA
SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA
TLS_RSA_WITH_3DES_EDE_CBC_SHA
TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
Примечание.
Для версий Windows, выпущенных до Windows Vista, необходимо использовать раздел Triple DES 168/168.
RC2 128/128
Подраздел Ciphers: SCHANNEL\Ciphers\RC2 128/128
Этот раздел реестра относится к 128-разрядному шифру RC2. Он не применяется к версии с поддержкой экспорта.
Чтобы разрешить этот алгоритм шифрования, измените значение DWORD параметра Enabled на 0xffffffff. В противном случае измените значение DWORD на 0x0. Если параметр Enabled на настроен, используется значение по умолчанию.
RC4 64/128
Подраздел Ciphers: SCHANNEL\Ciphers\RC4 64/128
Этот раздел реестра относится к 64-разрядному шифру RC4. Он не применяется к версиям с поддержкой экспорта (но используется в Microsoft Money).
Чтобы разрешить этот алгоритм шифрования, измените значение DWORD параметра Enabled на 0xffffffff. В противном случае измените значение DWORD на 0x0. Если параметр Enabled на настроен, используется значение по умолчанию.
RC4 56/128
Подраздел Ciphers: SCHANNEL\Ciphers\RC4 56/128
Этот раздел реестра относится к 56-разрядному шифру RC4.
Чтобы разрешить использование этого алгоритма шифрования, измените значение DWORD параметра Enabled на 0xffffffff. В противном случае измените значение DWORD на 0x0. Если параметр Enabled на настроен, используется значение по умолчанию.
Отключение этого алгоритма фактически запрещает следующее значение:
- TLS_RSA_EXPORT1024_WITH_RC4_56_SHA
RC2 56/128
Подраздел Ciphers: SCHANNEL\Ciphers\RC2 56/128
Этот раздел реестра относится к 56-разрядному шифру RC2.
Чтобы разрешить этот алгоритм шифрования, измените значение DWORD параметра Enabled на 0xffffffff. В противном случае измените значение DWORD на 0x0. Если параметр Enabled на настроен, используется значение по умолчанию.
DES 56
Подраздел Ciphers: SCHANNEL\Ciphers\DES 56/56
Этот раздел реестра относится к 56-разрядному шифру DES, указанному в FIPS 46-2. Его реализация в файлах Rsabase.dll и Rsaenh.dll проверяется в рамках программы проверки криптографического модуля FIPS 140-1.
Чтобы разрешить этот алгоритм шифрования, измените значение DWORD параметра Enabled на 0xffffffff. В противном случае измените значение DWORD на 0x0. Если параметр Enabled на настроен, используется значение по умолчанию.
Отключение этого алгоритма фактически запрещает следующие значения:
- SSL_RSA_WITH_DES_CBC_SHA
- TLS_RSA_WITH_DES_CBC_SHA
RC4 40/128
Подраздел Ciphers: SCHANNEL\Ciphers\RC4 40/128
Этот раздел реестра относится к 40-разрядному шифру RC4.
Чтобы разрешить этот алгоритм шифрования, измените значение DWORD параметра Enabled на 0xffffffff. В противном случае измените значение DWORD на 0x0. Если параметр Enabled на настроен, используется значение по умолчанию.
Отключение этого алгоритма фактически запрещает следующие значения:
- SSL_RSA_EXPORT_WITH_RC4_40_MD5
- TLS_RSA_EXPORT_WITH_RC4_40_MD5
RC2 40/128
Подраздел Ciphers: SCHANNEL\Ciphers\RC2 40/128
Этот раздел реестра относится к 40-разрядному шифру RC2.
Чтобы разрешить этот алгоритм шифрования, измените значение DWORD параметра Enabled на 0xffffffff. В противном случае измените значение DWORD на 0x0. Если параметр Enabled на настроен, используется значение по умолчанию.
Отключение этого алгоритма фактически запрещает следующие значения:
- SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5
- TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5
NULL
Подраздел Ciphers: SCHANNEL\Ciphers\NULL
Этот параметр реестра подразумевает отсутствие шифрования. По умолчанию он отключен.
Для отключения шифрования (запрещения всех алгоритмов шифрования) измените значение DWORD параметра Enabled на 0xffffffff. В противном случае измените значение DWORD на 0x0.
Hashes
Подраздел Ciphers: SCHANNEL/Hashes
Подраздел Hashes раздела SCHANNEL используется для управления использованием алгоритмов хэширования, таких как SHA-1 и MD5. Ниже приведены допустимые параметры реестра в подразделе Hashes.
MD5
Подраздел Ciphers: SCHANNEL\Hashes\MD5
Чтобы разрешить этот алгоритм хэширования, измените значение DWORD параметра Enabled на значение по умолчанию 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
Подраздел Ciphers: SCHANNEL\Hashes\SHA
Этот раздел реестра относится к алгоритму SHA (SHA-1), указанному в FIPS 180-1. Его реализация в файлах Rsabase.dll и Rsaenh.dll проверяется в рамках программы проверки криптографического модуля FIPS 140-1.
Чтобы разрешить этот алгоритм хэширования, измените значение DWORD параметра Enabled на значение по умолчанию 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
Подраздел Ciphers: SCHANNEL/KeyExchangeAlgorithms
Ключ реестра KeyExchangeAlgorithms в разделе SCHANNEL используется для управления использованием алгоритмов обмена ключами, таких как RSA. Ниже приведены допустимые параметры реестра в разделе KeyExchangeAlgorithms.
Стандарты шифрования с открытым ключом
Подраздел Ciphers: SCHANNEL\KeyExchangeAlgorithms\PKCS
Этот раздел реестра относится к RSA в качестве алгоритмов обмена ключами и проверки подлинности.
Чтобы разрешить RSA, измените значение DWORD параметра Enabled на значение по умолчанию 0xffffffff. В противном случае измените значение DWORD на 0x0.
Отключение RSA фактически запрещает все комплекты шифров SSL и TLS на основе RSA, поддерживаемые поставщиком безопасности TLS/SSL Microsoft для Windows NT4 c пакетом обновления 6.
Комплекты шифров FIPS 140-1
Рекомендуется использовать только комплекты шифров SSL 3.0 или TLS 1.0, соответствующие алгоритмам FIPS 46-3, FIPS 46-2 и FIPS 180-1, предоставляемым поставщиками базового или расширенного шифрования Microsoft.
В этой статье мы называем их комплектами шифров 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, указанные здесь, и поддерживаемые поставщиком безопасности TLS/SSL Microsoft для Windows NT 4.0 с пакетом обновления 6, с поставщиком базового шифрования или поставщиком расширенного шифрования, в следующих разделах реестра необходимо установить для параметра Enabled значения 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 параметра Enabled0xffffffff для следующих ключей реестра:
SCHANNEL\Ciphers\DES 56/56
-
SCHANNEL\Ciphers\Triple DES 168/168
(неприменимо в версии с поддержкой экспорта) SCHANNEL\Hashes\SHA
SCHANNEL\KeyExchangeAlgorithms\PKCS
Вычисление главной копии секрета с помощью комплектов шифров FIPS 140-1
Процедуры использования комплектов шифров FIPS 140-1 в SSL 3.0 отличаются от процедур использования комплектов шифров FIPS 140-1 в TLS 1.0.
В SSL 3.0 вычисление главной копии секрета определяется следующим образом:
ВTLS 1.0 вычисление главной копии секрета определяется следующим образом:
где:
Выбор параметра для использования в TLS 1.0 только комплектов шифров FIPS 140-1:
Из-за этого различия пользователям может потребоваться запретить использование SSL 3.0 даже если разрешенный набор комплектов шифров ограничен подмножеством комплектов шифров FIPS 140-1. В этом случае измените необходимо изменить данные значения DWORD параметра Enabled на 0x0 в следующих ключах реестра подраздела Протоколы:
SCHANNEL\Protocols\SSL 3.0\Client
SCHANNEL\Protocols\SSL 3.0\Server
Предупреждение
Значение параметра Enabled в этих разделах реестра подраздела Протоколы имеют приоритет над значением grbitEnabledProtocolsSCHANNEL_CRED
, определенным в структуре, содержащей данные учетных данных Schannel. По умолчанию для параметра Enabled установлено значение 0xffffffff.
Примеры файлов реестра
В этом разделе статьи приведены два примера содержимого файлов реестра для конфигурации. Это файлы Export.reg и Non-export.reg.
При использовании компьютера под управлением Windows NT 4.0 с пакетом обновления 6 и экспортируемыми файлами Rasbase.dll и Schannel.dll, выполните export.reg, чтобы убедиться, что компьютер использует только комплекты шифров FIPS TLS 1.0.
На компьютере под управлением Windows NT 4.0 с пакетом обновления 6, на котором используются не экспортируемые файлы Rasenh.dll и Schannel.dll, выполните Non-export.reg, чтобы убедиться, что компьютером используются только комплекты шифров FIPS TLS 1.0.
Для того, файл Schannel.dll распознал изменения, внесенные в разделе реестра SCHANNEL, необходимо перезапустить компьютер.
Чтобы восстановить параметры реестра по умолчанию, удалите раздел реестра SCHANNEL и все его содержимое. Если эти разделы реестра отсутствуют, Schannel.dll восстанавливает разделе при перезагрузке компьютера.