鉴于 POODLE,我们迫切需要关闭面向公众的网络服务器上的 SSL2/3 和 TLS 1.0。但是,我们是一个公共部门机构,大约 5-10% 的访问量是使用运行 Windows XP 和较低版本浏览器的计算机进行的,并且我们的用户并不是最精通技术的,如果他们尝试访问他们经常使用的网站却发现它“瘫痪”了,他们就会开始大量拨打我们的帮助热线。
我们想要做的是向旧版浏览器的用户显示一条消息,告知他们 SSL2/3 已不再有效,并建议他们升级操作系统/浏览器以继续使用您的网站。但是,似乎要检测 SSL2/3,我们必须在我们的服务器上启用 SSL2/3...
是否有其他安全的方式来检测通过 SSL2/3 的请求并做出相应的反应?
答案1
我唯一能想到的就是在网站前面安装一个仍然支持旧标准的代理,如果它检测到 SSL2 或 3 连接(或不受支持的浏览器字符串?),就将用户重定向到其他网站。
当然,要做到这一点,您需要一个代理,它可以安全地将旧协议与旧浏览器通信,而不会危及来自更安全端点的连接。这并不容易;您需要保持代理本身的修补和安全,而保证这一点的一部分就是禁用 SSL2 或 3 等不安全的协议,当然,如果这对您来说是一个问题,针对您网站的 PCI 审计将通过此代理并给出无用的结果。祝你好运。
回想一下,我之前曾急于回答这个问题,现在你可能只需要接受这个事实:是时候止损了。抛开其他不谈,我忍不住想,那些还没有从 IE6 升级的人要么不会升级,要么是企业网络的一部分,不能。
答案2
SSL 握手发生在任何应用程序级通信之前,因此如果您想禁止 2/3,那么浏览器将收到非常丑陋的消息。
另一方面,您可以启用 2/3 并让您的应用程序检测低版本并向用户返回特定的错误消息。不幸的是,此时他们已经向您发送了他们在旧 SSL 版本上拥有的任何会话 cookie 等,可能会暴露它们。阻止用户传输这些数据的唯一方法是在握手期间阻止旧 SSL 版本并忍受不优雅的用户体验。