首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自签客户证书的风险是什么?

自签客户证书的风险是什么?
EN

Security用户
提问于 2017-12-02 09:52:24
回答 2查看 1.4K关注 0票数 1

我理解用于在服务器上启用HTTPS的自签证书的风险

然而,我的问题是关于HTTPS客户端证书。

想象一下下面的场景。我希望能够在公共网站上认证一群精通技术的用户,而不需要他们通过OpenID或密码。

首先生成存储在服务器上的自签名根证书。在这个问题的背景下,让我们假设这个根证书将被保护免受黑客攻击。

从这个根证书中,我生成了几个客户端证书,每个用户一个,并以一种安全的方式将.p12文件传输给这些用户。他们将这些证书添加到浏览器中,现在可以进行身份验证。

根证书是否存在自签名的安全问题?这与例如,让我们将派生证书加密为根证书(这是可能的,因为我在服务器上也有私钥)相比有什么不同?

在我看来,就证书撤销而言,它就像重新生成证书一样简单,如果这是问题的话是根证书,还是客户端证书。我还遗漏了什么吗?

EN

回答 2

Security用户

发布于 2017-12-02 10:00:31

您在那里所做的工作基本上是成为您自己的证书颁发机构--这很好,只要您接受相关的风险并/或减轻它们。

在此场景中,您可以安全地将服务器信任建立在自己的证书上,以颁发客户端证书,只要您能够使用自己的can方法来建立对用户身份的信任。

我不太确定我们是否会为您提供一个具有CA属性集的证书(即可以充当证书颁发机构)。虽然您可能拥有证书的密钥,但该证书不允许签署证书本身。

证书撤销至少应该在内部处理(您的服务器应该知道哪些证书不应该被接受);如果您只在内部使用CA,则不需要提供CRLs。

您还可以在用户和证书之间建立1:1的连接,用新的证书替换已撤销的证书应该可以。

票数 2
EN

Security用户

发布于 2017-12-02 16:35:36

我认为,我们应该回到基本问题上来看这个问题,或者说不是这个问题。证书是使用可信任的第三方(称为证书颁发机构)的一种方式,以便知道公钥实际上是它声称是实体的公钥。如果您有一种安全可靠的方法将私钥提供给某个人( .p12),当然您知道它的公钥,您对它的来源毫不怀疑。你不需要任何“证书”。您不需要任何可信的第三方来确保您自己生成的公钥与您安全地(根据您的假设)提供给所涉客户端的私钥一起使用。实际上,您正在重新发明一种ssh,但是在证书中嵌入了密钥,在这里签名并不重要。

自签名证书只不过是一种花哨格式的公钥。任何生成公钥(以及它附带的私钥)的人,都可以生成与它一起的自签名证书。受信任的第三方在这里是公钥的提供者。在尽可能信任他的情况下,您可以直接信任公钥,而不需要证书;如果您不能直接信任公钥的来源(这是首先使用证书的原因),那么您也不能信任证书的签名者,因为它是相同的。

在您的应用程序中,它只不过是一个典型的ssh类型的应用程序,软件需要证书,您可以将密钥嵌入到证书中,但是这些签名在这里没有任何安全意义。

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

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

复制
相关文章

相似问题

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