1

我创建了一个 WCF 服务,它使用安全模式设置为“传输”的 basicHttpBinding,将证书绑定到端口。因此客户端可以通过 https 使用服务。

现在,经理让我在 https 中使用 AES128,我不知道该怎么做。如何使该 https 通道被 AES 加密?有可能还是有意义?

约翰尼

4

1 回答 1

1

HTTPS 传输安全性实际上是在 WCF 本身之外处理的,或者在 IIS(如果托管在其中)中,或者当您将证书绑定到端口时。

HTTPS(SSL 或 TLS)支持多种密码算法(例如 AES、3DES、RC4),客户端和服务器将根据各自支持的内容协商将哪一种用于 HTTPS 连接(完整的密码列表http://msdn .microsoft.com/en-us/library/windows/desktop/aa374757(v=vs.85).aspx)。

IIS(我假设将证书绑定到端口时)使用 Schannel 安全提供程序来处理 HTTPS。不幸的是,IIS 或 web.config 中没有任何内置设置可用于控制允许使用哪些密码。

因此,如果您只想强制使用 AES128,则必须编辑 Windows 注册表并禁止 Schannel 使用其他密码 ( http://support.microsoft.com/kb/245030 )。

这意味着转到注册表位置:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Ciphers

并禁用其中的所有密码(将“已启用”REG_DWORD 设置为 0x00000000),同时仅启用“AES 128/128”密码(如果缺少,请添加“AES 128/128”子项,然后添加启用值为 0xffffffff 的 DWORD)

于 2012-09-12T01:42:50.190 回答