客户端证书是如何工作的?

13

我正在与一个REST服务提供商合作,他们希望我在进行HTTP调用时使用他们提供的客户端证书。

客户端证书如何实现身份验证?
如果有人拥有客户端证书的副本,他们也可以被认证,对吗?
除了身份验证之外,客户端证书还提供其他什么功能?
它们与用户名/密码身份验证有什么不同?

1个回答

18

客户端证书如何实现身份验证?

通过由同行信任的人签名(包括自签名)或由受同行信任的人签名,以此类推。

如果有人复制了客户端证书,他们也可以被认证吗?

不对。他们还需要私钥。

除身份验证外,客户端证书是否提供其他功能?

没有。

它们与用户名/密码身份验证有何不同?

更加安全。无法进行密码猜测。

然而,不存在所谓的“由他们提供的客户端证书”。生成客户端证书的过程始于您。您生成密钥对和证书签名请求 (CSR),并由 CA 签名。或生成自签名证书。然后,您将证书提供给他们。如果他们建议执行所有这些步骤并向您提供生成的密钥对和证书,则说明他们对安全漏洞一无所知,应该受到严厉谴责。私钥只有在没有别人拥有副本时才是私有的。


1
谢谢。客户端通过证书提供公钥后,服务器如何对客户端进行身份验证?换句话说,客户端证书的私钥用于什么? - Suneel
3
客户端不仅提供自己的证书,还提供了用私钥签名的证书(和其他一些东西)。服务器使用公钥验证这些内容。这证明了客户端拥有该证书,但前提是没有其他人接触或曾经接触过私钥。这就是为什么“由他们提供”是完全无效和不安全的原因。他们不能在没有私钥的情况下生成证书,如果他们生成私钥,那它就不再是私密的了。 - user207421
SSL证书与用户名/密码并没有太大的区别。它们都是你知道但其他人不应该知道的东西。在其核心,SSL证书只是一个非对称密钥对(公钥/私钥);它可以像用户名/密码一样被暴力猜测。 - Granger
@Granger 有很大的区别。SSL证书不是秘密,而由其他人签名的证书也承载着其他人对您身份的验证。 - user207421
@EJP - 我认为SSL证书的概念包括私钥(例如.pfx与.cer)。至于身份问题,安全性的一切都取决于初始交换中涉及的信任,无论是对称加密还是非对称加密。就像计算机中的任何其他“秘密数字”一样,它们可以被暴力攻击。非对称密钥比对称密钥更长,因为它们更容易破解(例如2048比128)。它们都有自己的位置并且非常有用。 - Granger
4
@Granger 你可以考虑自己喜欢的,但是从服务器发送到客户端的SSL证书不包含私钥。 - user207421

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接