use*_*627 6 security ssl https certificate
我正在浏览一些我通过HTTPS进行安全通信所继承的客户端代码,似乎它没有检查服务器证书中的通用名称(例如'CN ="example.com"'对照实际的URL这可能是故意的,因为我们的客户端应用程序需要与各种环境进行通信,因此在联系初始门户网站(例如example.com/main)和用户选择环境后,应用程序将被重定向到特定的IP,所以将来所有的请求看起来都像" http://127.0.0.1/page ".
然而,作为SSL新手,我不确定禁用此检查的含义.我的第一反应是,执行某种中间人攻击更容易,因为其他人可以复制我们的证书并伪装成我们的服务器之一.但是,如果我们进行常见的名称检查,您仍然可以使用自定义DNS设置执行相同的操作,因此它似乎并没有真正获得任何东西.是否有其他攻击让我们开放,否则我们不会这样做?
谢谢
如果您控制客户端代码,那么您可以将受信任的 CA 限制为您自己的。然后域检查就不那么重要了 - 您的任何服务器都可以伪装成另一个服务器。
如果您不控制客户端代码,则可以用可信 CA 签署的证书代替您的证书。
要使用“自定义 DNS 设置”执行相同的操作,攻击者应该利用 DNS 服务器(您的或客户端的)将 example.com 指向他控制的 IP,而不是仅仅复制证书。如果可能的话,我会将所有特定应用程序创建为 example.com 的子域,并使用通配符证书 (*.example.com) 来验证 CN。