0

我想以网站的形式为客户提供云服务。现在我有了一个想法,如果这个客户(几名员工)也使用客户证书对自己进行身份验证,它将极大地提高安全性。然后应将此证书安装在他的办公室计算机和平板电脑上。服务器 SSL 证书是 Letsencrypt 证书。从客户端证书我也会知道私钥,但从我的角度来看,这并不危险,因为它仅用于对我的服务器进行身份验证。

是否有可行的解决方案为客户提供客户端证书,然后我将其公钥存储在我的 HTTP 服务器上?

我可以从身份验证机构购买此类客户端证书吗?我是否理解正确,如果我生成自己的客户端证书,客户也必须信任我的 CA,这会带来安全风险?还是客户只​​能信任这个生成的证书而不信任我的自签名 CA/根 CA?

感谢回答者

4

2 回答 2

0

从客户端证书我也会知道私钥,但从我的角度来看,这并不危险,因为它仅用于对我的服务器进行身份验证。

任何证书都是公开可用的,除其他属性外仅包含公钥,并由颁发者 CA 签名。如果您只需要在组织级别而不是通过 Internet 使用证书,这也可以是私有 CA。

您可以在 Intranet 上设置您的私有 CA,并向所有公司或组织员工提供证书。话虽如此,根据证书验证和吊销要求(以及您当地的法律),您可以使用任何公钥和私钥对实现 PKI 身份验证,并且可能不需要 CA 签名证书,但这种安排不提供证书吊销检查和系统 PKI 框架.

在PKI 身份验证中参考 PKI Web 身份验证的工作 POC

这需要在客户端上安装 Signer.Digital Browser Extension(由我的公司提供,CISPL),以从本地证书存储或智能卡或 USB 等加密设备访问用户的数字证书。

上述扩展还提供了用于证书颁发的 JavaScript API,它还在证书下载时将根证书添加到用户的信任库中。您可以在CSR 生成和证书下载处对其进行测试

于 2021-11-16T05:42:40.243 回答
0

我是否理解正确,如果我生成自己的客户端证书,客户也必须信任我的 CA,这会带来安全风险?

只有验证证书的人需要信任证书的颁发者 CA,而不是使用证书验证自己的人。因此,在客户端证书的情况下,只有服务器需要信任颁发者 CA,客户端不需要。这也意味着客户端不需要将 CA 导入为受信任的,这意味着导入某些第三方 CA 没有安全风险。

还是客户只​​能信任这个生成的证书而不信任我的自签名 CA/根 CA?

客户端既不需要信任客户端证书也不需要信任它的颁发者 CA。客户端只需导入客户端证书和关联的私钥即可用作客户端证书。

因此,使用私有 CA 并让它为客户创建客户端证书是非常好的。然后,服务器将只信任此私有 CA 进行客户端证书验证。

于 2021-11-13T10:54:26.877 回答