客户证书如何运作?

Sun*_*eel 10 ssl certificate client-certificates

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

客户端证书如何实现身份验证?
如果有人拥有客户端证书的副本,他们也可以进行身份​​验证吗?
客户端证书是否提供除身份验证之外的任
它们与用户名/密码认证有何不同?

use*_*421 13

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

通过对等方直接信任,或由对方信任的人签名,或由对方信任的人信任的人签名,等等.

如果有人拥有客户端证书的副本,他们也可以进行身份​​验证吗?

错误.他们还需要私钥.

客户端证书是否提供除身份验证之外的任

没有.

它们与用户名/密码认证有何不同?

更加安全.没有密码猜测是可能的.

但是没有这样的东西作为一个"由他们提供客户端证书".生成客户端证书的过程始于您.您生成密钥对和证书签名请求(CSR),并由CA签署.或者您生成自签名证书.然后提供你的证书给他们.如果他们提议执行所有这些步骤并向您提供由此产生的密钥对和证书,他们就不知道他们在谈论什么,应该对安全漏洞严厉惩罚.私钥只有在没有其他人拥有副本的情况下才是私有的.

  • @Granger 您可以考虑自己喜欢什么,但是从服务器发送到客户端的 SSL 证书不包含私钥。 (3认同)
  • 客户端不仅提供他的证书,还提供由他的私钥签名的证书(和其他一些东西)的数字签名。服务器使用公钥验证。这证明客户端拥有该证书,但前提是没有其他人拥有或已经拥有私钥访问权限。这就是为什么“由他们提供”是完全无效和不安全的。他们不能在没有私钥的情况下生成证书,如果他们生成了私钥,那么它就不是私有的。 (2认同)