指定 Schannel 密码和密码强度
对于客户端/服务器信息交换,Schannel 的默认行为是根据注册表中启用的密码协商可用的最佳密码。 应用程序可以使用 SCHANNEL_CRED 结构的成员来限制连接允许的密码和密码强度,如下所示:
- 将 palgSupportedAlgs 成员设置为包含允许密码 的ALG_ID 数组。 有关详细信息,请参阅密码 ID。
- 将 dwMinimumCipherStrength 和/或 dwMaximumCipherStrength 成员设置为允许的最小和最大强度。 有关详细信息,请参阅密码强度值。
- 在调用 AcquireCredentialsHandle 函数时,通过 pAuthData 参数) 传递SCHANNEL_CRED (结构。 此函数返回凭据句柄。
- 在调用客户端 InitializeSecurityContext (General) 函数或服务器端 AcceptSecurityContext (General) 函数时指定凭据句柄。
密码 ID
Schannel 的默认行为是基于系统注册表中的 Schannel 条目请求可用的最佳密码。 不要更改系统注册表;它包含的 Schannel 设置将全局使用,并会影响其他应用程序。 有关有效常量的列表,请参阅 ALG_ID。
密码强度值
此 Schannel 功能通常用于限制与国内或导出强度密码的连接。 国内优势包括56位和128位,而出口强度限制为56位。 如果将最小值和最大值设置为零,则 Schannel 将使用所有可用的密码强度。
使用 TLS 或 SSL 3.0,将 dwMinimumCipherStrength 成员设置为 -1 (负一个) 以启用提供签名但不加密的“Null 密码”密码套件。 如果 dwMaximumCipherStrength 也设置为 -1,则仅启用“Null 密码”套件。 此设置仅用于开发,不应在生产系统中使用。
查询密码信息
若要检索凭据的密码强度设置,请调用 QueryCredentialsAttributes 函数,并将 SECPKG_ATTR_CIPHER_STRENGTHS 指定为 ulAttribute 参数。
若要检索凭据支持的算法列表,请调用 QueryCredentialsAttributes ,并将 SECPKG_ATTR_SUPPORTED_ALGS 作为 ulAttribute 参数。