Authentication 双向SSL验证

Authentication 双向SSL验证,authentication,ssl,certificate,verification,two-way,Authentication,Ssl,Certificate,Verification,Two Way,我试图了解更多关于双向SSL身份验证的详细信息。我想知道的是,当一个客户端收到另一个客户端的证书时,会执行哪些验证。(参见下图中的验证圆) 有人有所有步骤的列表吗?有我可以参考的标准文件吗?每台服务器的实现方式是否不同 我想问的主要是。。。服务器是否根据另一台服务器的主机名与证书通用名(CN)进行验证 我想问的主要是。。。是吗 服务器根据 其他服务器的主机名与 证书通用名(CN) 这是可配置的。 可以配置严格检查和不接受来自发送CN与FQDN不匹配的证书的实体的连接,尽管该证书被认为是可信的(

我试图了解更多关于双向SSL身份验证的详细信息。我想知道的是,当一个客户端收到另一个客户端的证书时,会执行哪些验证。(参见下图中的验证圆)

有人有所有步骤的列表吗?有我可以参考的标准文件吗?每台服务器的实现方式是否不同

我想问的主要是。。。服务器是否根据另一台服务器的主机名与证书通用名(CN)进行验证

我想问的主要是。。。是吗 服务器根据 其他服务器的主机名与 证书通用名(CN)

这是可配置的。
可以配置严格检查和接受来自发送CN与FQDN不匹配的证书的实体的连接,尽管该证书被认为是可信的(例如,由可信CA签名)。
可以放松这一点,不执行此检查并接受证书或将决策委托给用户。例如,IE显示一个弹出警告,指出证书名称与FQDN不匹配。是否仍要继续?

从安全角度来看,最安全的方法是进行严格的验证,正如@user384706所说,它是完全可配置的

您所讨论的场景是一台机器既是服务器又是客户机(就SSL/TLS连接而言,就是客户机)

通过验证连接是否来自所提供证书的CN(或者使用者的备选名称),您不一定能获得更多的安全性

有几个问题:

  • 如果SSL/TLS服务器将由既是最终用户又是服务器本身的客户机使用,那么根据您对特定证书期望的客户机类型,您将有两种不同的规则。您可以根据客户机证书是具有“服务器”扩展密钥使用扩展还是仅具有客户机扩展密钥使用扩展来制定规则,但这可能会有点复杂(为什么不)

  • 客户机(也是服务器)可能通过代理来,这取决于它所在的网络,在这种情况下,源IP地址将与您期望的不匹配

  • 通常,客户端证书身份验证依赖于这样一个事实,即假定私钥受到保护。如果服务器上的攻击者泄露了私钥,则攻击者在建立连接(或直接从泄露的服务器建立连接)时也可能有能力欺骗源IP地址。这就是说,服务器往往具有不受密码保护的私钥,因此,如果私钥被离散复制,可能会有所帮助

我认为有些工具非常严格,它们不仅验证CN是传入连接的FQDN:它们还检查它是否是源IP地址的反向DNS条目。这在实践中可能会导致许多问题,因为某些服务器的DNS中可能有多个CNAME条目,在这种情况下,CN是合法的,但不一定是该IP地址的主FQDN

这完全取决于系统的总体协议和总体架构

,最近发布,认为此场景超出范围


我能想到的最接近的参考是。

是规范,如果你想了解协议本身的血淋淋的细节。@Nemo,链接到TLS RFC(用于步骤列表)的要点很好。我将添加用于证书验证(验证它是否受信任)和验证证书是否与服务器的预期标识匹配。尽管在大多数情况下,这些RFC往往一起使用,但它们是独立的,并且根据应用程序的不同,可以有其他验证模型。