Tim*_*ver 11 windows ssl schannel
Microsoft提供传输层安全性(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
Run Code Online (Sandbox Code Playgroud)
DisabledByDefault和之间有什么区别Enabled?他们似乎多余.
Tre*_*r65 11
当DisabledByDefault标志设置为1时,默认情况下不使用SSL / TLS版本X。如果SSPI应用程序请求使用此版本的SSL / TLS,则将对其进行协商。简而言之,使用DisabledByDefault标志时不会禁用SSL 。
当Enabled标志设置为0时,SSL / TLS版本X被禁用,并且任何SSPI应用程序都不能对其进行协商(即使DisabledByDefault标志设置为0)。
有关更多信息,Microsoft文档描述了是否维护什么SSL版本以及如何禁用它。
在作为设置安全通道的一部分而传递给的SCHANNEL_CRED结构中,可以选择在bitmask字段中手动选择要支持的协议。AcquireCredentialsHandlegrbitEnabledProtocols
因此,Enabled控制您可以在此处启用哪些协议,同时DisabledByDefault指定如果您忽略此字段(即,将其保留为0),则是否启用该协议。
DisabledByDefault为1为残疾协议也是如此,除了设置Enabled到0。因此,DisabledByDefault如果忽略了该字段,则似乎无条件地使用它来自动生成该字段的值。该字段的注释说,不建议在新代码中使用它。因此,这两个注册表值几乎是多余的:
对于新开发,应用程序应设置
grbitEnabledProtocols为零,并默认使用系统上启用的协议版本。该成员仅由Microsoft统一安全协议提供程序安全软件包使用。
全局系统注册表设置优先于此值。例如,如果在注册表中禁用了SSL3,则无法使用此成员启用它。
目前尚不清楚如果尝试使用未启用的协议会发生什么。从最后一段判断,并且在AcquireCredentialsHandle这种情况下没有任何相关的错误代码,我想这很可能被忽略了。
| 归档时间: |
|
| 查看次数: |
5705 次 |
| 最近记录: |