【发布时间】:2013-04-02 09:57:06
【问题描述】:
我正在托管一个网络应用程序,该应用程序使用 TLS 和双向(双向)身份验证来进行所有连接。我的 Web 应用程序在 Windows Server 2012 上使用 IIS 8 托管,并且在 IIS 中配置为需要 SSL 并且还需要客户端证书。当我从浏览器访问网络应用程序时,系统会提示我输入证书,一切似乎都很好。
但是,当我查看数据包捕获时,我看到 TLS 会话以单向身份验证会话开始,然后发送请求,然后将会话重新协商为 2 向身份验证会话,然后响应在这个 2-way 认证会话中发送。
这是不可接受的,原因如下:
- 请求未通过 2 路经过身份验证的 TLS 连接发送。
- 这会无缘无故地添加额外的 TLS 会话协商。
- 很难验证是否使用了 2 向身份验证,因为经过 2 向身份验证的握手消息在初始的 1 向身份验证会话中进行了加密
- 除非您正确执行,否则 TLS 会话重新协商存在与之相关的安全漏洞。
我的猜测是 IIS 在应用适当的 SSL 设置之前需要知道您尝试访问的站点,因此它以“默认”单向身份验证会话开始,并在收到请求后确定它需要使用2路身份验证。由于我在 IIS 上托管的所有内容都需要双向身份验证,因此我希望这是“默认”行为。是否有某种方法可以对 Web 应用程序进行编码或将 IIS(或 Windows Server 2012)配置为始终以 2 路身份验证的 TLS 会话开始?
【问题讨论】:
-
感谢您发布此信息!