在阅读了这个论坛帖子之后,听起来加密 SSD 根本没有提供太多保护——特别是加密只发生在控制器芯片组和 NAND 存储之间。
为什么是这样?这是通常的磁盘加密设计吗?有没有关于加密 SSD 硬件的研究?如果有的话,这种设置的弱点和限制是什么?我对从控制器中提取密钥特别感兴趣——这可能吗?是否有必要,因为将整个硬盘带到另一个系统应该意味着它仍然可以读取?
在阅读了这个论坛帖子之后,听起来加密 SSD 根本没有提供太多保护——特别是加密只发生在控制器芯片组和 NAND 存储之间。
为什么是这样?这是通常的磁盘加密设计吗?有没有关于加密 SSD 硬件的研究?如果有的话,这种设置的弱点和限制是什么?我对从控制器中提取密钥特别感兴趣——这可能吗?是否有必要,因为将整个硬盘带到另一个系统应该意味着它仍然可以读取?
这种加密对于实现“擦除所有内容”功能很有用。很难从 SSD 中安全地擦除内容(使用经典的磁性硬盘已经不是很容易,但 SSD 的内部特性,特别是磨损均衡,几乎不可能完全删除所有数据)。有了加密,问题就大大减少了:只需擦除密钥(并选择一个新的),只有 128 位,而十几个千兆字节。
除了这个安全擦除之外,您所描述的磁盘加密在安全方面没有任何意义,因为人们可能会认为窃取磁盘的攻击者会得到控制器,包括密钥......除非控制器没有密钥. 这可能是一个“受密码保护的磁盘”,其中加密密钥是从引导时输入的密码派生的。如果加密密钥没有永久存储在磁盘本身中,那么控制器级别的加密是有意义的,因为在 CPU 中这样做没有什么意义,除非攻击模型假设攻击者可以监视 SATA 总线。在攻击者是窃取磁盘(或整个笔记本电脑——最好将其关闭,而不仅仅是进入睡眠模式!)的现实模型中,磁盘加密是为了保持数据本身的机密性,因此加密必须在实际存储之前“某处”发生,但它可以在控制器中。
当然,没有什么能说明加密已正确完成。从加密 128 位块的算法 AES 到加密整个磁盘的系统,不会泄露加密数据的信息,同时仍然允许随机读写访问,这并非易事。至少,“攻击者窃取掉电的笔记本电脑”让事情变得相对简单:我们不必担心主动攻击(攻击者不会归还笔记本电脑),也不用担心选择明文/密文攻击。一个简单的 CTR 模式就可以了(我并不是说这就是任何 SSD 所做的,只是我自己会这样做)。
警告:您正在得出毫无根据的结论。从该论坛帖子中得出的正确结论是,一种商用 SSD 以一种愚蠢的方式实现了加密。这绝不意味着所有 SSD 都有缺陷,或者 SSD 上的加密总是毫无意义的。
详细解答:磁盘加密有两种:硬件加密和软件加密。
不同之处在于执行加密的位置。只要设计和实施得当,任何一个都可以安全地使用。(您链接到的论坛主题中提到的 OCZ 实现显然没有适当地设计和实现。)
从用户的角度来看,软件加密是最容易设置和使用的。有几种软件产品可以在软件级别为您执行全盘加密。例如,Truecrypt 备受推崇,PGP 也有备受推崇的产品。这些系统与 SSD 兼容,可用于加密存储在 SSD 上的数据。密钥来自用户输入的密码,并且密钥不存储在 SSD 上,因此无法从 SSD 中提取任何内容,并且物理访问您的 SSD 的人无法获取您的密钥或数据(除非通过猜测您的密码)。
硬件加密需要驱动器和/或其控制器的支持。可以以安全的方式实现硬件加密。例如,用户可以输入密码短语,并且密码短语可以传送到硬件(但永远不会存储在持久存储中)以用作加密密钥。不幸的是,有一些驱动器制造商宣传硬件磁盘加密的历史,但以一种否定安全优势的愚蠢方式实施它,所以买家在这里要小心。