我读过 this kb article,描述了如何使用http请求发送证书,以及 and this one描述了服务器如何验证证书。但是,我是否更正确认为没有来验证发件人实际上是证书的所有者?我认为建立所有权,必须进行进一步的交换,服务器会要求客户端使用其(客户端)私钥加密某些内容,然后服务器将使用cert提供的公钥对其进行解密。这类似于ssl握手的一部分。
我想澄清的是,简单地发送带有请求的证书并不能证明客户身份,因为它可能会被中间人攻击欺骗或破坏。正确?
答案 0 :(得分:1)
没有。我远不是一名.Net专家,但我的理解是本文解释了如何使用证书在SSL连接中验证客户端。正如您所说,在SSL握手期间,当服务器请求客户端证书时,客户端会签署一些数据,服务器会对该签名进行验证,以证明证书持有者拥有私钥。请注意,该文章还包含“要求”部分,指定必须允许应用程序访问私钥。