相互认证TLS

问题描述 投票:1回答:1

在不限制客户端证书的情况下,TLS中相互认证的用途是什么?

我还有其他问题,我是这个主题的新手,所以请和我一起裸露:)

这是我对使用TLS的客户端/相互身份验证的理解。

这个想法是客户端的两个服务器都对彼此的证书进行身份验证/验证,

1- The client verifies the server cert based on its CA trust store 
2- The server verifies the client cert based on its *CA trust store*

[现在,关键点是我的第二点,服务器必须信任客户端证书,方法是将其保存在服务器信任存储区中,或者保存客户端证书的CA / ICA,该证书应为客户端专用,而不是通过公共CA到服务器希望信任的客户端的私有CA。

现在rfc5246说以下

If the client has sent a certificate with signing ability, a digitally-signed
CertificateVerify message is sent to explicitly verify possession of
the private key in the certificate.

这将无法实现任何正确的身份验证?例如,如果我有一个服务器信任世界各地受信任的CA签署的任何证书,那么为什么根本不关心客户端身份验证呢?

authentication certificate tls1.2 client-certificates mutual-authentication
1个回答
0
投票

[当服务器获得客户端证书(作为TLS协议的一部分)时,服务器将执行所有常规的证书检查,包括链接到受信任的根。为了使服务器信任由Foo CA颁发的客户端证书,服务器需要在服务器上已经安装Foo CA根目录。

X.509证书的基石是根CA证书。主机仅应信任其信任的CA颁发的证书。因此,当管理员安装FooCA的根目录时,管理员说“我信任Foo颁发的证书,并且我相信Foo进行了适当的检查以确认该证书有效并分配给了正确的实体。”

服务器不需要存储客户端的证书,没有理由。当证书作为TLS的一部分出现时,服务器只需对其进行检查。不需要持久性,如果任何失败,包括没有安装Foo CA根证书,则连接失败。

服务器对客户端进行身份验证。证书将(证书中的)公钥绑定到实体;例如[email protected]。当客户端连接并且服务器要求提供客户端证书时,服务器将检查证书中的名称([email protected])是否与用户名匹配,但也会使客户端使用与证书中的公钥关联的私钥,如果服务器成功解密了数据,则客户端([email protected])确实是他们声称的身份。或者,在最坏的情况下,冒名顶替者可以访问Frodo的私钥:)

有帮助吗?

© www.soinside.com 2019 - 2024. All rights reserved.