当主持人通过电子邮件向我发送 SSL 证书请求的私钥时,我是否应该拒绝 CSR?

信息安全 tls 证书 隐私 网络服务器
2021-09-07 06:21:21

我刚刚向我的共享网络托管服务提供商请求了一份 CSR,以生成我将发回给他们进行安装的证书。(证书本身将由我工作的组织正确生成,该组织可以为我们提供官方使用的证书。)托管公司及时向我发送了 CSR 和私钥!他们甚至抄送了其他人,而且它在 Gmail 中,所以谷歌可能已经将它用于广告目的。

在我看来,这似乎是一件可怕的事情。我正要回信给他们拒绝这个,并要求更新 CSR,这次保留私钥 - 私有。

在我自欺欺人之前,我想确认“SSL”(TLS)证书的私钥不应该离开服务器?

我在安全相关行业工作多年,曾经是一名加密程序员,所以我觉得我对这个话题有点了解——但我知道事情会随着时间而改变。

我已阅读此相关问题: 共享 SSL 证书的私钥会出现哪些问题?

元更新:我意识到我为 Stack Exchange 写了一个质量很差的问题格式——因为现在很难接受一个具体的答案。对此表示歉意-所有答案都涵盖了不同且同样有趣的方面。我最初确实想知道如何为此目的措辞,但空白。

更新:虽然我已经与主机一起遵循了这一点,但他们确实“对任何不便表示歉意”,承诺保持未来的私钥“安全”,并向我发布了一个新的、不同的 CSR。它是否是由我目前不确定的同一个公开的私钥生成的。我现在也想知道,因为它是一个共享主机,他们是否已经向我发送了整个服务器的密钥,或者每个客户/域/虚拟主机是否获得了一个密钥对。

这是一个有趣的教训,世界上所有的加密强度如何可以通过一个简单的人为错误而变得无效。凯文米特尼克会点头。

更新 2:响应用户 @Beau 的回答,我使用以下命令验证第二个 CSR 是从不同的秘密私钥生成的。

openssl rsa -noout -modulus -in pk1.txt | openssl md5
openssl req -noout -modulus -in csr1.txt | openssl md5
openssl req -noout -modulus -in csr2.txt | openssl md5

前两个哈希相同,第三个不同。所以这是个好消息。

4个回答

是的,您绝对应该拒绝 CSR。此外,您应该更改您的托管服务提供商,因为看起来他们不知道自己在做什么。

他们通过电子邮件(即通过不安全的媒介)向您发送私钥已经够糟糕的了。但是,他们也将其抄送给了其他人,这完全违反了保密性。

此外,我想知道他们为什么将私钥发送给您-它应该安装在服务器上,这是他们可以自己做的事情。

如果我在你的位置,我会拒绝接受这个 SSL 证书。这样做的原因是,如果有人闯入收到私钥的任何一封电子邮件,他们将能够下载它,然后冒充服务器对客户端进行不同的攻击,比如中间人或类似的攻击。此外,如果其中一个接收电子邮件地址写入错误,则可能有人已经拥有私钥。可能还有更多的场景可以让攻击者下载和使用这个私钥。

另外通知公司不共享私钥应该很重要,以确保公司不会将私钥发送到其他任何地方 - 私钥已发送给您,以及此电子邮件中的其他一些抄送,但您不能知道公司是否没有在其他地方发送带有私钥的单独电子邮件。

私钥被称为私钥是有原因的

请注意,这主要是我的个人意见,我不是 SSL 专家。

是的,您绝对应该拒绝 CSR。

至于您是否应该重新考虑托管服务提供商,这取决于。

他们甚至抄送别人,

托管公司是否有任何理由应该了解您的内部公司结构?执行此操作的人是否是专门分配给贵公司并负责了解贵公司中谁是谁的指定客户经理?贵公司是否向客户经理提供了关于贵公司结构以及谁有权做什么的充分简报?如果没有,那么可能部分是您(公司)的错,因为没有向他们说明他们应该如何将密钥发送给您。

在大多数托管帐户中,如果您没有指定熟悉您的业务的客户经理,您应该向他们的技术支持非常明确地说明如何将密钥发送给您,谁应该接收它,以及是否或者您是否想首先收到密钥。不要假设技术支持人员知道您公司的情况,也不要假设不是您指定的客户经理的技术支持人员会从之前的交互中记住您的身份。

它在 Gmail 中

您确实意识到通过电子邮件发送 CSR 也不是很安全,对吧?某人(在 Gmail 或 APT 中工作的内部人员)很有可能拦截包含 CSR 的电子邮件,将主机发送给您的 CSR 替换为他们自己的 CSR,并将托管公司的 CSR 签名给托管公司自己。这将允许他们稍后将伪造的证书用于您和您的用户以及托管公司之间的 MITM。

CSR 必须通过经过身份验证的通道传递(例如,他们将证书提交到您控制的 HTTPS 站点,或者他们应该使用他们在其站点上发布的 GPG 密钥对 CSR 进行签名),或者至少您应该进行指纹验证并且两者您和您的主机需要有一种方法来识别和验证对方。设置经过身份验证的通道可能是一个相当复杂的过程,并且在低成本托管服务提供商或不专门从事高安全性业务托管的提供商中不会提供。

如果您没有指定您的公司要求如何交付 CSR,尤其是如果您没有由应该知道您在做什么业务的客户经理处理,那么大多数托管公司会合理地假设您是最低要求保安公司。大多数在最低安全公司工作的人会认为拥有私钥的副本比不控制密钥的安全性更有价值,他们从你那里假设这一点并非不合理。

在我自欺欺人之前,我想确认“SSL”(TLS)证书的私钥不应该离开服务器?

这取决于它离开服务器的充分理由。例如,您可能希望在多个服务器上使用相同的证书,或者您可能需要一个用于密钥固定的备份密钥。

但它绝对应该被视为一个有价值的秘密,只存储在您信任的机器上,如果它确实需要在系统之间移动,它应该以适当安全的方式进行。

我的建议是立即远离这些小丑。