← 最新论文
💻 computer science

Linux disk encryption and self-encrypting drives -- A case study on Opal2 drives security

本文通过对 38 款商用 Opal2 自加密驱动器在 Linux 环境下的黑盒案例研究,识别出了固件安全问题及兼容性问题,并已向厂商进行了负责任的披露,最终促进了 Linux 磁盘加密工具的改进以及用于独立评估的开源测试套件的发布。

原作者: Milan Brož, Tamara Čierniková, Ondřej Kozina, Vladimír Sedláček

发布于 2026-07-14
📖 1 分钟阅读☕ 轻松阅读

原作者: Milan Brož, Tamara Čierniková, Ondřej Kozina, Vladimír Sedláček

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下,你的电脑硬盘是一个高科技银行金库。多年来,我们通过雇佣一名非常细心的守卫(软件加密)来检查进入或离开的每一个袋子,从而保护里面的钱财(你的数据)。但最近,金库制造商开始将守卫直接内置到金库门中。这些被称为自加密驱动器(SEDs),特别是 Opal2 类型。这个想法很简单:如果金库能实现自我锁定,它应该会更快、更安全,对吧?

然而,来自马萨里克大学的一个好奇侦探团队决定测试一下这个理论。他们并没有仅仅听信制造商的话,而是抓取了来自不同品牌的 38 个不同的“现成”金库,其中既有全新的也有二手使用的,并将它们置于严格的黑盒压力测试中。他们并不知道金库内部是如何构建的;他们只是发送指令并观察发生了什么。

以下是他们的发现,以及为什么这像是一场过山车。

并不那么神奇的“魔法钥匙”

最大的惊喜?其中一些“智能”金库实际上在对加密进行欺骗。

把加密想象成一种秘密代码,其中你写的每个字母都会被打乱。为了确保代码真正安全,打乱器需要为你的日记每一页都使用一个独特的“扭转”。如果你在第 1 页和第 100 页写了相同的句子,打乱后的版本应该看起来完全不同。

研究人员发现,在一些驱动器(如某些 联想 (Lenovo)三星 (Samsung) 的驱动器)上,金库变得偷懒了。它们在多页中使用相同的“扭转”。这就像如果一名间谍对遇到的每一名特工都使用相同的暗号握手一样。如果攻击者看到了两次相同的模式,即使没有密钥,也能猜出秘密信息的内容。在某些情况下,驱动器内部使用的是 4096 字节的“块”大小,但却假装它更小,导致“扭转”在块的后半部分被重复使用。这算不上彻底的灾难,但这意味着如果你更改了密码,一些旧的模式可能仍然是可见的。

并不随机的“随机数”生成器

要锁上金库,你需要一个真正的随机密钥。想象一下尝试挑选一个中奖彩票号码。如果挑选数字的机器坏了,总是选“7, 14, 21”,那你就有麻烦了。

Opal2 标准要求驱动器充当随机数生成器。研究人员通过要求驱动器吐出 1 MB 的随机数据并检查这些数字是否真正被打乱,以此来测试它。

  • 结果: 好几个驱动器表现得一塌糊涂。一些驱动器(如某些 联想三星 型号)如此容易被预测,以至于它们基本上是在计数:“1, 2, 3... 32, 1, 2, 3...”
  • 结论: 该论文指出,如果你依赖驱动器来生成你的秘密密钥,你可能会使用一个攻击者可以猜到的密钥。因此,研究人员决定不使用该驱动器的随机生成器来进行 Linux 加密。相反,他们坚持使用计算机自带的随机生成器,后者要可靠得多。

损坏的“超级用户”功能

有一个特殊功能叫做 SUM(单用户模式)。你可以把它想象成“管理员”和“用户”密钥。管理员可以设置金库,但只有用户才能打开它。管理员不应该能够窥视用户的东西。

研究人员尝试在驱动器上设置此功能。他们发现,虽然许多驱动器声称支持此功能,但实际的实现往往是损坏的。在某些驱动器上,“管理员”仍然可以解锁“用户”的数据,或者在两种模式之间的切换非常不稳定,以至于攻击者可以中断这个过程并窃取数据。由于这些故障,研究人员发现,在 24 个声称支持这种“超级用户”模式的驱动器中,只有 14 个实际上运行正确到足以被信任。

“复位按钮”问题

每个金库都有一个主复位按钮,叫做 PSID(物理安全识别码)。这是一个印在驱动器上的代码。如果你忘记了密码,可以使用这个代码来擦除驱动器并重新开始。

研究人员发现了几个问题:

  1. 可预测的代码: 在一些驱动器上(特别是来自 西部数据 (Western Digital) 的一批产品),这些复位代码并不是真正的随机。它们遵循某种模式。如果你知道了其中一个驱动器的代码,你就可以通过尝试几个数字来猜出同一批次中另一个驱动器的代码。
  2. 被遗忘的秘密: 许多用户并没有意识到这个贴纸代码是一个秘密。人们会在网上发布带有清晰可见代码的驱动器照片。如果黑客看到了那张照片,并且拥有对你锁定驱动器的远程访问权限,他们可以瞬间擦除你的数据。
  3. 宽容的检查者: 一些驱动器(如某些 美光 (Micron) 型号)表现得过于“友善”。即使你在结尾添加了额外的字母,它们也会接受复位代码。这就像一个保安允许你进入,即使名单上写的是“约翰·史密斯”而你自称是“约翰”。这不算直接的黑客攻击,但表明其安全工程设计得很草率。

“黄铁矿”冒充者

在开始测试之前,团队不得不扔掉 12 个驱动器。为什么?因为它们被标记为“Opal2”(高安全性版本),但实际上是 Pyrite2。Pyrite2 就像是金库的“精简版”——它有一个锁,但实际上并没有对数据进行加密。它只是一扇写着“禁止入内”的门,但后面并没有真正的墙壁。研究人员必须过滤掉这些,以确保他们测试的是真正的加密。

好消息:为 Linux 开发的新工具

尽管这些金库表现得摇摆不定,但研究人员并没有仅仅说“它坏了”就走人。他们为 Linux(许多服务器和注重隐私的计算机使用的操作系统)开发了一套新工具。

他们创建了一种方法,可以在让你使用驱动器之前,自动检查该驱动器是否表现正常。如果一个驱动器试图使用错误的随机数生成器或具有损坏的“超级用户”模式,新软件会识别出来并自动切换到更安全的标准模式。他们还将他们的“Opal 测试套件”作为开源工具发布,以便任何人都可以检查自己的驱动器。

总结

论文的结论是,虽然硬件加密(SEDs)是一个伟大的想法,但目前的现实是混乱的。制造商经常在偷工减料,错误地实现功能,或者留下安全漏洞。

  • 他们排除了什么: 他们证明了你不能在不经过检查的情况下盲目信任驱动器的随机数生成器或其“超级用户”模式。
  • 他们证明了什么: 他们测量了 38 个驱动器的具体失效情况,表明固件漏洞是真实存在且普遍的。
  • 核心启示: 硬件加密目前还不是一面神奇的盾牌。它是一个有用的层级,但需要与智能软件(如他们开发的新的 Linux 工具)配合使用,以捕捉硬件犯下的错误。在制造商修复这些固件问题之前,最稳妥的做法是将硬件视为一个助手,而不是你秘密的唯一守护者。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →