扩展保护策略
本文介绍 ExtendedProtection 示例。
扩展保护是一种针对中间人 (MITM) 攻击提供保护的安全计划。 MITM 攻击是一种安全威胁,MITM 在该攻击中获取客户端凭据并将其转发给服务器。
讨论 (Discussion)
当应用程序通过 HTTPS 使用 Kerberos、Digest 或 NTLM 进行身份验证时,首先会建立一个传输层安全 (TLS) 通道,然后使用此安全通道进行身份验证。 但是,SSL 生成的会话密钥和身份验证期间生成的会话密钥之间没有任何绑定。 即使传输通道本身是安全的,任何 MITM 也可以在客户端和服务器之间建立自身,然后开始转发来自客户端的请求,因为服务器无法知道安全通道是从客户端还是 MITM 建立的。 此方案中的解决方案是将外部 TLS 通道与内部身份验证通道绑定,从而使服务器可以检测是否存在 MITM。
注意
仅当承载于 IIS 上时,此示例才有效。
注意
以下步骤特定于 Windows 7。
设置、生成和运行示例
从“控制面板”、“添加/删除程序”、“Windows 功能”安装 Internet Information Service。
在“Windows 功能”、“Internet Information Service”、“万维网服务”、“安全”和“Windows 身份验证”中安装“Windows 身份验证”。
在“Windows 功能”、“Microsoft .NET Framework 3.5.1”和“Windows Communication Foundation HTTP 激活”中安装“Windows Communication Foundation HTTP 激活”。
本示例要求客户端与服务器建立一个安全通道,因此它要求存在服务器证书,此证书可从 Internet 信息服务 (IIS) 管理器进行安装。
打开 IIS 管理器。 打开“服务器证书”,该证书会在选择根节点(计算机名称)时出现在“功能视图”选项卡中。
为了测试此示例,可以创建一个自签名证书。 如果不希望浏览器提示证书不安全,可将证书安装到受信任的证书根颁发机构存储中。
打开默认网站的“操作”窗格。 单击“编辑站点”和“绑定”。 如果 HTTPS 尚不存在,请将其作为类型添加,使用端口号 443。 分配在上一步中创建的 SSL 证书。
生成服务。 这会在 IIS 中创建一个虚拟目录,并根据需要为要进行 Web 承载的服务复制 .dll、.svc 和 .config 文件。
打开 IIS 管理器。 右击在上一步中创建的虚拟目录 (ExtendedProtection)。 选择“转换为应用程序”。
在 IIS 管理器中为此虚拟目录打开“身份验证”模块,并启用“Windows 身份验证”。
为此虚拟目录打开“Windows 身份验证”下的“高级设置”,并将其设置为“必需”。
通过从浏览器窗口(提供完全限定的域名)访问 HTTPS URL 可测试服务。 如果想要从远程计算机访问此 URL,请确保为所有传入 HTTP 和 HTTPS 连接打开了防火墙。
打开客户端配置文件,并为客户端或终结点地址特性提供完全限定的域名,以替换
<<full_machine_name>>
。运行客户端。 客户端与服务进行通信,这会建立安全通道并使用扩展保护。