首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用证书的相互身份验证

使用证书的相互身份验证
EN

Security用户
提问于 2018-11-27 06:13:39
回答 1查看 271关注 0票数 0

如何使用数字证书来实现两个用户之间的相互身份验证?假设在银行,员工在传输敏感数据之前必须相互验证。在这种情况下,数字证书如何才能有所帮助?

EN

回答 1

Security用户

回答已采纳

发布于 2018-11-27 15:16:03

当一方使用证书进行身份验证时,它基本上证明它可以使用与证书中的公用钥匙相关联的私钥--因为它假定私钥是秘密的,只有证书的所有人才知道。

为了证明对私钥的访问,认证方签署了至少部分由对等方决定的挑战(以阻止重放攻击)。然后,对等方可以使用公共证书中的公钥验证签名。

由于成功的签名只证明对特定证书的私钥的访问,对等方还必须验证证书是否符合其期望,即证书通常由受信任的证书颁发机构(CA)签名,具有特定的主题,未过期或撤消,并且具有正确的密钥使用扩展。

在TLS中,通常只对服务器进行身份验证,签名是ServerKeyExchange消息的一部分,并且是在各种数据上完成的,这些数据还包括客户端确定的ClientHello.random。客户端通常要求正确的主机名与服务器证书、主题替代名称(SAN)或(旧的和过时的)匹配证书主题CN。

通过相互身份验证,服务器还请求客户端对自己进行身份验证。这是使用CertificateRequest消息完成的。此消息还可以是服务器愿意接受的CA列表,作为客户端证书的颁发者,以便客户端应用程序可以选择预期的证书。如果客户端接收到此CertificateRequest并具有匹配的客户端证书,它将与此证书一起发送一条Certificate消息。此外,它将发送一条CertificateVerify消息,其中包括用客户端证书私钥创建的签名,并覆盖迄今为止发送的所有握手消息--其中包括服务器确定的ServerHello.random

客户端证书的确切验证和与特定客户端关联的方式尚未定义,但通常会接受由特定CA颁发的任何证书,并且客户端名称或电子邮件将从证书主题CN中提取。

票数 0
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/198486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档