私钥如何保密?

信息安全 公钥基础设施 密钥管理
2021-08-09 03:20:43

这听起来像是一个愚蠢的问题,但说真的,私钥是如何保密的?

如果您是像 Google 这样的人,那么您拥有大量可供公众建立安全连接的服务器。

建立这些*.google.com连接中的每一个都需要私钥。

服务器可能一直到了生命的尽头并被丢弃(导致它们上的任何东西在那个时候泄漏的潜在风险)。

现代数据中心只需要很少的人,但像谷歌这样的公司如此庞大,以至于仍有大量人可以物理访问服务器。

这些服务器位于防火墙后面并运行高度安全的操作系统,但路由器和操作系统都可能遭受零日攻击。

所以很明显,私钥不能存储在每个服务器的基础上,也不能存储在启动时检索的操作系统映像上(即使是加密的),也不能存储在每个服务器的智能卡上。

大概公司不会太公开地讨论这个问题,但是对于事情的运作方式有什么好的概述吗?

是否有一些坚固的掩体只处理建立每个连接的初始非对称关键元素?

大概实际上每个数据中心都需要这样的掩体 - 我想您不想因为失去与远程密钥处理站点的链接而丢失整个数据中心。

考虑到像这样的密钥对*.google.com.

我是否遗漏了一些东西,使得像这样的关键处理不像听起来那么难,因为有人试图从头开始思考它?

1个回答

首先,加密通常由专用于卸载 SSL 解密的基础设施在外围终止。当您只为一小部分(按比例)专用于该角色的服务器维护高度的密钥安全性时,管理起来会容易得多。其余的常规应用程序服务器可以正常运行,而无需担心处理这些密钥。

其次,他们的密钥几乎肯定会通过硬件安全模块(HSM) 存储。这些是带有处理器的专用硬件设备,专为维护安全性和高效执行加密而设计。

最后,Google 拥有自己的中间 CA 证书,可用于签署自己的叶证书。这允许他们使用比正常到期时间短得多的证书,这在一定程度上降低了密钥被泄露的风险。实际的 CA 密钥可以被锁在一个有气隙的地堡中,只有在需要签署短期叶子证书时才能访问。

还要记住,CA 不需要叶子私钥来签署证书,他们可以生成一个永远不会将 HSM 留在远程数据中心现场的私钥,然后将公钥/CSR 发送给 CA 以进行签名。他们甚至可以为每个 HSM 设备生成唯一的私钥,这样密钥就不必离开生成它的设备。

例如,这是当前 Google 证书的打印屏幕:

在此处输入图像描述

您会注意到证书的有效期仅为 3 个月,这比大多数证书要短得多。


编辑:谷歌实际上在这里详细描述了他们的政策。

在 Google PKI 中,订阅者是能够使用并被授权使用与证书中列出的公钥对应的私钥的个人或组织

...

Google Internet Authority 服务器位于上锁的服务器机房内上锁的柜子或笼子区域内。对服务器机房的访问由徽章阅读器控制。Google Internet Authority 的私钥存储在 FIPS 140-2 2 级硬件安全模块中,这些模块具有物理防篡改和防篡改功能。

...

订阅者密钥对由 (i) 订阅者通过其设备/操作系统提供的软件生成,或 (ii) 由 Google 信息安全团队的授权成员生成。

...

订阅者通过 PKCS#10 证书签名请求将其公钥提供给 Google进行认证。发送此信息的首选传输方法是基于安全套接字层 (SSL) 的 HTTP。

基本上这正是常规 CA 的工作方式,只是它全部在 Google 内部进行。