如果密钥必须保持可访问以进行解密,那么静态加密是否值得?

信息安全 加密
2021-08-17 07:31:07

据我了解,静态加密用于在数据存储在数据中心时保护数据,这样如果有人设法获取他们不应该拥有的数据,他们就没有任何有用的东西。但无论使用何种类型的加密,密钥(或其他方法)也必须存储在某处 - 易于访问以进行解密。那么,撤消加密不是很简单吗?鉴于他们已经获得了访问权限。

我只是不明白它是如何工作的,还是我没有考虑其他一些概念?

4个回答

是的,到目前为止,这是值得的。

电脑被盗。如果硬盘是加密的,窃贼最终只会得到硬件,而且硬件更换起来很便宜。如果磁盘未加密,则窃贼拥有硬件和数据。根据什么样的数据,公司可能会丢失知识产权、行业机密、人力资源数据,这可能会转化为巨额罚款(如果数据是中央情报局特工的真实姓名,则可能导致死亡)。

USB 设备很容易忘记或放错地方。如果它们是加密的,并且密钥存储在计算机上,那么驱动器上就没有什么可以读取的了。

全盘加密确实将密钥保留在系统上,但密钥受密码保护,密码不在系统上。暴力破解密码是可能的,但根据密码的长度,可能需要比有趣的数据更多的时间(想想需要 1000 年才能破解它)。

高安全性系统将密钥保存在 TPM 或智能卡上。第一个具有非常安全的设置,并且从 TPM 内部捕获数据并不容易实现。并且智能卡通常不与计算机一起存储,并且通常受 PIN 保护并在暴力尝试的情况下自动擦除自身。

有一些 LUKS 设置(适用于 Linux 计算机)甚至不会将加密的标头保存在磁盘上,而是驻留在 USB 驱动器上。在盗窃的情况下,没有什么可以被暴力破解的,因为标头在另一个硬件上,可能与用户在一起。

除了@hft 和@ThoriumBR 提到的内容,特别是在数据中心的环境中,加密可以更容易地在驱动器出现故障并需要更换时丢弃它们。

如果不使用全盘加密,丢弃驱动器将需要安全地擦除整个驱动器(这对于故障驱动器无论如何都是不切实际的)或有效地破坏驱动器以使数据无法恢复,这需要专门的设备和训练有素的人员来完成它。虽然这可能不是一个大问题(如下面的其他人所指出的),但仍然存在驱动器在被破坏之前丢失/被盗的风险,或者它们没有被正确粉碎并且一些数据在之后仍然可以恢复。

如果使用加密,则要简单得多。您只需确保已安全删除密钥,然后可以丢弃驱动器。由于密钥通常存储在单独的硬件安全模块中(在某些情况下,受密码保护),因此删除它是微不足道的。

长话短说,对付一个有适当手段的坚决攻击者,这将毫无用处。问题将与您的威胁模型有关。

解密密钥(或其加密密钥)通常会存储在不同的机器上,在不同的位置。存储这个密钥的机器通常只会扮演那个角色,并且会受到更多的保护。这意味着如果有人从一个地方偷了一堆机器,包括你的,你的数据是安全的。他们需要从另一个地方偷一台机器,很可能是守卫良好的。这使得它值得防盗。当然,从其他答案中概述的责任角度来看。

但无论使用何种类型的加密,密钥(或其他方法)也必须存储在某个地方 - 易于访问以进行解密。那么,撤消加密不是很简单吗?鉴于他们已经获得了访问权限。

一个安全的实施将试图使该问题难以解决。

让我们以 VMWare 的 vCenter 为例。假设您的云提供商使用 vCenter 来管理他们的所有虚拟机。当您单击“我需要具有 40GB 磁盘的 Fedora 35 版服务器”按钮时,您的提供商正在使用 vCenter 来配置它。vCenter 告诉 vSphere 实例为您启动虚拟服务器。当它创建您的虚拟磁盘映像时,它将使用唯一密钥对该映像进行加密。该密钥并非来自 vCenter;vCenter 从密钥服务器请求该加密密钥。

密钥服务器是运行在受特殊保护的硬件上的完全不同的产品,它保存着加密密钥的数据库。当然,该数据库也是加密的。密钥加密密钥 (KEK) 是数据库的主密钥,它存储在另一个称为硬件安全模块 (HSM) 的系统中。HSM 对 KEK 进行加密,其设计目的是使 KEK 永远不会离开 HSM。相反,密钥服务器将加密的数据库记录与您的密钥一起发送到 HSM 并要求对其进行解密;然后将解密的密钥返回给 vCenter,vCenter 将其传递给托管 VM 的 vSphere 实例,从而解密其磁盘映像。

HSM 被设计为对检测篡改极为敏感,如果受到干扰,它将立即擦除存储保护 KEK 的密钥的特殊存储器。关键服务器硬件和 HSM 硬件都受到物理装甲和锁的保护,其中还包含将敏感内存归零的篡改检测系统。关键服务器和 HSM 通常也不由数据中心人员管理。它们可能被锁在数据中心的一个特殊笼子里。为了设置它们并使其运行,他们需要各种安全人员出现所需的密钥和密码来解锁和初始化它们。

所有处理密钥的中间机器都在内存中这样做,因此密钥不会出现在磁盘和交换空间之外。磁盘映像密钥本身永远不会在内部暴露给 VM。

现在,让我们看看可能的攻击:

  • 正在运行的虚拟机与任何其他机器一样易受攻击,因此需要对其进行防御,否则攻击者可以直接从中提取数据。
  • 要窃取 VM 的整个磁盘映像,攻击者需要攻击托管虚拟机的 vSphere 实例,而该实例在内存中拥有密钥,否则该映像将保持加密状态。
  • 要窃取所有磁盘映像,攻击者必须攻击 vCenter 以窃取用于从密钥服务器请求磁盘密钥的授权。
  • 要窃取所有密钥,攻击者必须攻击密钥服务器。
  • 为了窃取 KEK,攻击者必须破坏 HSM 的保护。

其中一些任务比其他任务更容易;但很少有你认为“简单”的东西。