В чем разница между ключами реестра DisabledByDefault и Enabled SSL/TLS в Microsoft Windows?
Корпорация Майкрософт предоставляет руководство по оптимальной практике для безопасности транспортного уровня (TLS). Этот документ описывает ключи реестра, которые могут включать или отключать определенный протокол.
https://docs.microsoft.com/en-us/dotnet/framework/network-programming/tls
Например, чтобы включить TLS 1.2, вы можете добавить следующие ключи реестра.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:FFFFFFFF
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:FFFFFFFF
В чем разница между DisabledByDefault
а также Enabled
? Они кажутся излишними.
2 ответа
В SCHANNEL_CRED
структура, которая передается AcquireCredentialsHandle
как часть настройки безопасного канала, вы можете вручную выбрать протоколы для поддержки, в grbitEnabledProtocols
поле битовой маски.
Таким образом, Enabled
определяет, какие протоколы вы можете включить здесь, пока DisabledByDefault
указывает, включен ли протокол, если вы пропустите это поле (т.е. оставьте его как 0
).
- Управление протоколами SSL/TLS и комплектами шифров для AD FS | В статье Microsoft Docs рекомендуется установить
DisabledByDefault
в1
для отключенных протоколов тоже в дополнение к настройкеEnabled
в0
, Так выглядитDisabledByDefault
используется безоговорочно для автоматического создания значения для этого поля, если оно опущено.
В примечании к полю сказано, что его не рекомендуется использовать в новом коде. Таким образом, эти два значения реестра почти избыточны:
Для новой разработки приложения должны быть установлены
grbitEnabledProtocols
обнулить и использовать версии протокола, включенные в системе по умолчанию.Этот элемент используется только пакетом безопасности Microsoft Unified Security Protocol Provider.
Параметры глобального системного реестра имеют приоритет над этим значением. Например, если SSL3 отключен в реестре, его нельзя включить с помощью этого члена.
Неясно, что произойдет, если вы попытаетесь использовать не включенный протокол. Судя по последнему абзацу и отсутствию каких-либо AcquireCredentialsHandle
Код ошибки для этого случая, я думаю, это, вероятно, игнорируется.
DisabledByDefault и Enabled не являются избыточными
когда DisabledByDefault
установлен флаг 1, SSL / TLS версии X по умолчанию не используется. Если приложение SSPI запрашивает использование этой версии SSL / TLS, оно будет согласовано. Короче говоря, SSL не отключается при использовании DisabledByDefault
флаг.
когда Enabled
установлен флаг 0, версия X SSL / TLS отключена и не может быть установлена ни одним приложением SSPI (даже если DisabledByDefault
флаг установлен в 0).
Для получения дополнительной информации документация Microsoft описывает, какая версия SSL поддерживается или нет, и как ее отключить.