我熟悉笔记本电脑和台式电脑的冷启动攻击概念,其目标是找到内存中隐藏的加密密钥。我还认为某些手机也存在这种攻击。我也知道这很难做到,而一些产品(如 VeraCrypt)现在在内存中加密密钥以减轻这种攻击。
我想知道,这种攻击是否也适用于用户使用卷或文件夹/文件加密的 NAS 设备?据我所知,QNAP 在 NAS 设备上提供卷加密,而 Synology 提供基于文件/文件夹的加密。我认为,为了发挥作用,这些卷或文件夹/文件的加密密钥必须在卷/文件夹/文件打开以供访问时保留在内存中。
我的问题:
- 这是否意味着密钥保存在 NAS 单元内存中,因此攻击者也可以通过物理访问权限检索它们?
- 如果是这样,那么是否可以自然地假设即使在卷/文件/文件夹被卸载/锁定之后,密钥仍保留在内存中,直到设备重新启动或内存被新数据覆盖?
答案1
我熟悉笔记本电脑和台式电脑的冷启动攻击的概念,其目标是找到内存中隐藏的加密密钥
通常情况下,记忆是启动时归零(第 13 页),因此您需要移除内存并快速检查它以获取您想要的内容。一些攻击包括喷洒一罐空气(第 7 页)倒置以快速冷却内存,这样在传输到读取设备的过程中数据位不会发生变化。但是,内存(可能)焊接在嵌入式应用程序中,如 NAS 盒,因此您需要快速访问内存引脚,而不会丢失数据。
“普通 DRAM 通常会在几秒钟内逐渐丢失其内容”(第2页)但它“如果芯片保持在低温下,将会持续几分钟甚至几小时。”(第 5 页)
这是否意味着密钥保存在 NAS 单元内存中,因此攻击者也可以通过物理访问权限检索它们?
他们必须这样做,否则加密就无法工作。从技术上讲,密钥本身并不需要位于内存中,但根据加密算法,密钥调度从密钥派生的轮密钥位于内存中。您需要知道密钥调度是什么样子,并扫描内存来找到它。它可能是一个内核数据结构,因此在大多数情况下,您可以遍历内核结构并找到它。
如果是这样,那么是否可以自然地假设即使在卷/文件/文件夹被卸载/锁定之后,密钥仍保留在内存中,直到设备重新启动或内存被新数据覆盖?
如果加密开发人员知道自己在做什么,就不会发生这种情况。安全性的最佳做法是将用于加密密钥和密钥派生信息的内存清零(并刷新相关的 CPU 缓存)。
对于 LUKS,您可以卸载卷并且仍然有密钥驻留,因为 LUKS 位于块层 - 但如果它是文件系统层的东西,如 eCryptFS 或某些 FUSE 实现,那么它们的密钥很可能(或至少应该!)在内存中归零。