荷兰拉德堡德大学的两名研究人员日前发表论文,描述了固态硬盘流行加密软件Bitlocker中的关键漏洞。固态硬盘需要口令来加密和解密其上存储的内容,但该口令可以被绕过。

荷兰拉德堡德大学的两名研究人员日前发表论文,描述了固态硬盘流行加密软件Bitlocker中的关键漏洞。固态硬盘需要口令来加密和解密其上存储的内容,但该口令可以被绕过。只要能接触到设备,固态硬盘(SSD)所用加密系统中的漏洞可被黑客用于轻松解密数据。

固态硬盘会用其存储的密钥来加密和解密其上存储的内容,但问题在于,用于加密和解密数据的密钥不是从用户的口令导出的,也就是说,只要能拿到硬盘,通过调试端口对其重编程,就可以重设任意口令。没错,固态硬盘的加密设计就是这么令人无语。

两名研究人员测试了3块英睿达(Crucial)和4块三星固态硬盘,发现它们或多或少都不能免疫上述攻击。这几款固态硬盘都试图实现 TCG Opal 加密标准,但显然未能成功。

研究人员分析发现多款固态硬盘的加密都能被完全绕过,不用任何密钥或口令就能完整恢复出数据。尤其是,固态硬盘未能将用户的口令与实际数据加密密钥(DEK)相关联,二者都存储在硬盘上。固态硬盘的内置处理器和固件都能自由使用该DEK,但只在接到正确口令的时候才选择这么做。如果固件被人通过调试端口重编程或加以篡改,就能跳过口令验证环节直接使用DEK。

DEK其实应该在某种程度上出自用户的口令。没有口令,就没有完整密钥。但实际上,固态硬盘并没有遵守这一原则。不仅如此,很多硬盘整颗盘都只用一个DEK加密——尽管这些硬盘提供不同分区使用不同口令加密的功能。

两名研究人员表示,通过连接硬盘电路板上的调试接口,修改固件中的口令核对流程,使硬盘在获取DEK以加密或解密设备之前可以接受任意口令,他们成功解密了多款固态硬盘上的数据。

其他案例中,研究人员可以修改硬盘固件,或利用可修改口令核验流程的代码注入漏洞来获取密钥,当然,两种方法都需要攻击者能物理接触到硬盘。

在论文中,研究人员表示,有方法可以保护这些硬盘,那就是确保解密硬盘所需的秘密信息存储在硬盘本身以外的地方。使用运行在主机上的全盘加密软件,并在数据进入硬盘之前和离开硬盘之后用从用户提供的口令导出的密钥加密及解密数据,可以帮助达成这一目标。

论文中呈现的结果告诉我们,不能仅依靠固态硬盘提供的硬件加密来保证机密性。依赖固态硬盘实现硬件加密的用户应再加一道全盘加密软件解决方案,最好还是开源和经过审计的那种。

但不幸的是,某些流行数据加密系统,包括 Windows 10 中采用的Bitlocker工具,都没有为固态硬盘采取软甲加密防护,而是依赖硬盘本身脆弱的硬件加密。

密码学大师 Matt Green 对此也没有保留他的意见:

老实说,微软信任这些设备来实现Bitlocker的举动,真心是这家公司史上最蠢。这就好像撑把雨伞就跳飞机而不是背好降落伞再跳一样。

某些情况下,研究人员建议用户和管理员试试采用VeraCrypt之类的东西替代Bitlocker。

他们称:VeraCrypt可以在操作系统运行时就地加密,能与硬件加密共存。而且,即便通过调整组策略设置就可以支持硬件加密,Bitlocker用户也可以修改偏好强制实施软件加密。

在发给媒体的电子邮件中,两名研究人员之一写道:

因为只懂ARM架构,我们只测试了上述几款应用此架构的固态硬盘。话虽如此,TCG Opal 标准也太难以正确实现了。该规范的要求特别多,而且相当复杂。

一个简单点儿的标准可以让供应商更好实现,也可以保证其实现更加安全。从安全角度上看,应该公开一个参考性质的实现,让安全界审查其设计与实现。这样一来,供应商也就方便实现这些加密策略了。

我们对固态硬盘硬件加密用户的一般性建议是,不要完全依赖当前的硬件加密技术,应采取额外的安全保护措施,比如安装VeraCrypt软件加密。

关于该漏洞的论文地址:

https://t.co/UGTsvnFv9Y

TCG Opal 加密标准地址:

https://trustedcomputinggroup.org/resource/storage-work-group-storage-security-subsystem-class-opal/

重大漏洞:Bitlocker成摆设,多款固态硬盘硬件加密均可被绕过的更多相关文章

  1. 固态硬盘SSD与闪存(Flash Memory)

    转自:http://qiaodahai.com/solid-state-drives-ssd-and-flash-memory.html 固态硬盘SSD(Solid State Drive)泛指使用N ...

  2. 一文看懂SATA和NVMe固态硬盘用起来有何区别?

    本文摘自:https://www.sohu.com/a/203688929_615464 NVMe固态硬盘正在逐步扩张,而包括三星.东芝在内的大厂并没有停止SATA固态硬盘新品的研发.到底那种固态硬盘 ...

  3. 6款实用的硬盘、SSD固态硬盘、U盘、储存卡磁盘性能测试工具

    一.检测工具名称汇总 HDTune ATTO Disk Benchmark CrystalDiskMark AS SSD Benchmark Parkdale CrystalDiskInfo 二.各项 ...

  4. 电脑华硕A455L系列,机械硬盘换成固态硬盘,光驱位改放机械硬盘

    电脑一直以来都很卡,直到最近用的不舒服了,就去查查原因,发现是磁盘读取爆表!只好想起来换固态硬盘,光驱改放机械硬盘... 买的固态硬盘是个杂牌军,但是店家说工艺不错,只好将信将疑,用用再说吧. 首先确 ...

  5. MLC固态硬盘,与入量是3000次P/E

    固态硬盘是什么,固态硬盘寿命有多长 SSD泛指使用闪存芯片组成的SSD固态硬盘,是使用FLASH闪存颗粒作为存储单元,不再使用传统的机械存储方法,使用模拟的方式虚拟出传统 硬盘存取方式和扇区等,也可以 ...

  6. 固态硬盘和机械硬盘的比较和SQLSERVER在两种硬盘上的性能差异

    固态硬盘和机械硬盘的比较和SQLSERVER在两种硬盘上的性能差异 在看这篇文章之前可以先看一下下面的文章: SSD小白用户收货!SSD的误区如何解决 这样配会损失性能?实测6种特殊装机方式 听说固态 ...

  7. Accer 4752G添加固态硬盘 双系统

    (此文一直在草稿箱里躺了一年,略作修改后发布~) 背景:电脑是2011年年末买的,用到现在也已经5年多了,好在没坏过什么硬件,有过2年疯狂打LOL的经历,之后电脑就打不动了,FPS始终上不去,启动游戏 ...

  8. 戴尔笔记本Inspiron 7560(灵越) 加装固态硬盘从选购固态硬盘到系统迁移到设置SSD为第一启动(受不了了,网上的教程就没有完整的)

    菜鸡我的笔记本为戴尔灵越Inpsiron 7560,其实Inspiron 15 7560 和Inspiron 7560是同一个型号. 电脑拆了安过内存条,换过电池,现在又加了一块固态硬盘. 因为不想安 ...

  9. 固态硬盘寿命实测让你直观SSD寿命!--转

    近年来,高端笔记本及系列上网本越来越多的采用固态硬盘来提升整机性能,尽管众所周知固态硬盘除 了在正常的使用中带来更快速度的体验外,还具有零噪音.不怕震动.低功耗等优点,但大家对固态硬盘的寿命问题的担忧 ...

随机推荐

  1. nginx和apache作为webserver的差别

    1.两者所用的驱动模式不同. nginx使用的是epoll的非堵塞模式事件驱动. apache使用的是select的堵塞模式事件驱动. 2.fastcgi和cgi的差别 当用户请求web服务的时候.w ...

  2. Spring MVC 的 研发之路 (二)

    二.web.xml的简单配置介绍1 1.启动Web项目时,容器回去读web.xml配置文件里的两个节点<context-param>和<listener> 2.接着容器会创建一 ...

  3. Leetcode--easy系列9

    #198 House Robber You are a professional robber planning to rob houses along a street. Each house ha ...

  4. Swift,Objective-C语言性能对照測试

    原文发表于踏得网 Swift包括了非常多现代语言特性尤其是从一些脚本语言如Javascript/Ruby中汲取了营养. 此外苹果公布Swift时,使用特别选用的一些样例来宣称Swift性能对于Ojbe ...

  5. MapReduce----K-均值聚类算法

    对于K-均值聚类算法MapReduce的过程理解例如以下: 如果有个Mapper,首先把数据集分为个子集,分布到个Mapper上,初始化..并同一时候广播到H个Mapper上. E步: 在第一台Map ...

  6. PhpStorm Live Template加PHP短语法Short Open Tags打造原生模板

    关于Php要不要使用模板一直被大家讨论,支持的说使用模板更简洁,易与前端project师交流.反对的说Php本身就支持内嵌语法,不是必需再用个模板,减少性能. 事实上使用Php的短语法.直接嵌入也不是 ...

  7. spring mvc给参数起别名

    需求: 将http报文请求(保护body和url)中的参数传递给Controller时支持使用别名. 举例: 下面两条请求报文的结果是一致的. http://example.com/foo?jobTy ...

  8. 洛谷P3195 [HNOI2008]玩具装箱TOY(单调队列优化DP)

    题目描述 P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中.P教授有编号为1...N的N件玩具, ...

  9. type与isinstance使用区别

    Python中,type与isinstance都可以用来判断变量的类型,但是type具有一定的适用性,用它来判断变量并不总是能够获取到正确的值. Python在定义变量的时候不用指明具体的的类型,解释 ...

  10. PHP DES-ECB加密对接Java解密

    最近公司有个业务,需要对接第三方接口,但是参数是需要加密的,对方也只提供了一个java的demo,在网上到处搜索,没有找到直接就能用的方法,后来还是跟公司的Android工程师对接出来的,在这里记录一 ...