自签名证书风险

我目前正在使用自签名证书进行内部开发,并希望确保我知道任何真正的安全风险。

这是我如何设置的。

根证书

  1. 创build了根CA .pvk和.cert
  2. 在我的本地机器上的“受信任的根证书颁发机构”下安装CA root .cert
  3. 在我的开发托pipe服务器下的“受信任的根证书颁发机构”下安装CA根.cert

我的网站证书

  1. 从根.cert和.pvk生成另一个证书
  2. 在托pipe服务器上将新证书导入为.pfx文件
  3. 设置托pipe服务器在IIS中为我的站点使用新的证书

除了根证书的私钥以外,如果有人拿到这些证书,是否还有其他的数据会造成安全风险?

您的站点证书(+私钥)应该像任何站点证书一样对待。 如果有人要获得私钥,他们将能够冒充你的网站。 您不得不相信托pipe服务对于由商业CA颁发的证书的方式几乎没有什么不同。

由于您已经创build了自己的CA,很less有人会默认信任该CA,因此风险可以得到缓解。 这是一个风险,有效地限制了那些select信任你的CA.

这同样适用于CA私钥。 持有私钥的人可以颁发任何证书。

最大的问题来自于用户界面倾向于平等地对待所有可信的CA(除非EV证书),或者如果用户不注意,则非常类似。 因此,如果攻击者(a)拥有您的CA的私钥,并且(b)知道信任此CA证书的用户可以定位,则可以为他们想要的任何网站创build一个有效的证书。

您的风险评估应该考虑到谁将select信任这个内部CA. 商业CA往往对私钥的保护有严格的规定(通常是智能卡或类似的非可存储的存储):这通常是被批准包含在大多数浏览器中的要求。

更具体的关于“其他信息”。 在devise一个CA时,可能很重要的一点是要制定一个关于什么样的属性以及如何构造主题DN的策略。 我已经知道一些CA从不在证书中明确地公开用户的身份(通常是在与窃听者的握手期间是公开的并且通常是可见的),所以主题DN只是CA已知的内部ID(并且可能通过encryption的反向信道或类似机制绑定到服务和CA之间的实际名称)。

只要人们意识到这是一个自签名证书,内部自签证书就不是风险。 他们构成的最大风险是给客户。

例如,当您分发给客户并进行初始连接时,您需要确认他们是否有效,但除此之外,使用第三方提供商的唯一好处是您不必担心攻击者假装成你的服务器,但这意味着你将被黑客入侵,并有许多其他问题。

所以,最大的安全风险并不是通知人们它是一个自签名的证书,并validation它的位置。 最起码,我是这么想的。 另外,它们不是由CApipe理的,所以你不能发行证书撤销,如果事情受到影响,就不得不重新启动证书 – 但是对于内部系统,我真的不会为此担心。