您好、欢迎来到现金彩票网!
当前位置:彩之网 > 转储清除 >

TrueCrypt 使用经验[3]:关于加密盘的破解和防范措施

发布时间:2019-06-27 01:20 来源:未知 编辑:admin

  本来第三篇想写隐藏卷相关的经验。但是看到好几个读者在留言中提及加密盘的破解,所以俺先来说说和破解有关的话题以及防范措施。★各种暴力破解(穷举)◇针对密码/口令的穷举破解关于这个话题,在前一篇博文...

  关于这个话题,在前一篇博文已经介绍了穷举的原理和防范的措施。所以,今天就不再啰嗦了。

  啥是已知 KeyFiles 范围,举个例子:假设你把 KeyFiles 存储到 U盘。然后攻击者通过某种方式知道你的 KeyFiles 都在 U盘上,并且攻击者拿到了你的 U盘。这就属于已知 KeyFiles 范围的穷举破解。这种情况下,攻击者可以把 U盘 上的所有文件进行各种组合,对每一种组合进行尝试。

  对第一点,如果你用了双重认证,光穷举 KeyFiles 是没用滴;至于后两点,是共同起作用滴。就拿刚才 U盘 的例子。如果 U盘 内的文件数很多并且加密者同时选择了好几个文件做 KeyFiles,那么暴力穷举的次数会成为天文数字。前一篇博文给出了具体的计算公式和例子,这里就不再浪费口水啦。

  由此可见,已知 KeyFiles 范围的穷举破解,应用场合和有限,不会构成太大威胁。

  这种情况下,暴力穷举 KeyFiles 是不可能滴。因为任何一个文件都可以拿来当 KeyFiles,世上有那么多文件,怎么可能穷举得完?

  有些天真的同学会说,TrueCrypt 仅仅使用 KeyFiles 开头 1MB 的内容参与加密,那么,有没有可能穷举大小在一兆以内的所有文件捏?俺可以大致帮你算一下,大小在一兆以内的所有文件,总共有多少种可能(不喜欢数学的同学,请略过计算内容,直接看下一章节)。

  大小是 1字节 的文件,所有的可能性是 2 的 8 次方(记作 2^8,下同)。为啥是 2^8 捏?因为一个字节有 8 个比特,每个比特可以有 0 或1 两种可能。

  大小是 5字节 的文件,所有的可能性是 2^40 = 76(约1万1千亿)

  上述计算可以看出,每增加一个字节,可能性的总数就增加256倍。仅仅才到 6字节,可能性就已经超过两百万亿。大小是 1MB 的文件,会有大约100万字节,你自己盘算一下吧,会有多少种可能性。

  而且上述的计算,仅仅是针对单个 KeyFiles 的情况。如果用户同时使用多个 KeyFiles,嘿嘿......

  所以捏,在未知范围的情况下穷举 KeyFiles,还不如直接去穷举密钥(下面就来介绍密钥的穷举)。

  密钥说白了就是一段数据,可以用来加密或者解密。TrueCrypt 使用的加密算法都是对称加密算法。这种算法的特点是:加密密钥和解密密钥是同一个。假设你用密钥 K 把一段明文 P 变成密文 C,那么你同样可以用 K 把 C 变为 P。

  除了对称加密,还有一类加密叫做非对称加密——加密密钥和解密密钥是不同滴。因为跟本文无关,对非对称加密就不展开了。

  简单地说,加密盘的密钥是根据你输入的口令和 KeyFiles,通过某种复杂的数学运算得到的(密码学术语叫密钥生成函数)。在密钥生成函数中,会用到哈希运算(这篇博文有 Hash 的扫盲)和多次迭代。其效果就是:只要你输入的口令或者 KeyFiles 有一丁点的差异(例如一个比特的差异),产生的密钥也完全不同。

  顺便说一下,当你创建加密盘的时候,TrueCrypt 除了让你选择加密算法,还让你选择哈希算法。为啥要选哈希算法捏?其中一个用途就是参与密钥生成函数的运算。

  (刚才只是简单地说,如果要细说的话,TrueCrypt的加密和解密过程还涉及头部密钥和主密钥。由于TrueCrypt采用的是XTS操作模式,所以头部密钥有一对,主密钥也有一对。如果选的是多重加密算法,主密钥就会有N对。这些都属于技术细节,普通网友不需要知道太多,俺就不深入聊了)

  虽说穷举密钥的难度比穷举 KeyFiles 的难度要小很多。但穷举密钥的可能性,依然是天文数字。

  目前 TrueCrypt 内置的三种加密算法,都使用 256 比特的密钥(256 比特 = 32字节)。对于 256 比特的密钥,其所有的可能性是2的256次方。这是一个天文数字,要进行这么多次的穷举(每一次穷举都有一定的运算量),拿现有的超级计算机的运算能力,估计也没戏。

  前2个月有个新闻,说 Google 开始把 HTTPS 证书的密钥升级到 2048位,因为 Google 担心 1024位的密钥不够安全。

  估计某些不太懂的读者也看到了这个新闻,然后就会来质疑俺:256比特的密钥到底是否可靠?

  请注意,当谈论 HTTPS 证书的密钥长度,指的是非对称加密算法(通常是RSA算法)的密钥长度。而 TrueCrypt 使用的是对称加密算法。对称加密和非对称加密是完全不同的两种东西,两者的密钥长度没有可比性。(这就如同 铅球的世界纪录 跟 标枪的世界纪录 没有可比性)

  前面说的这几种穷举破解,只有一种是可行的,那就是基于密码/口令的穷举。所以俺再啰嗦两句:

  所谓针对加密算法的攻击,就是利用算法本身的漏洞。从而找到某种快速解密的方法。目前 TrueCrypt 使用的加密算法分别是:AES、Twofish、Serpent。它们会不会有漏洞捏?

  在本系列第一篇,俺特地花不少口水来介绍这三种加密算法。十多年前,美国国家标准局(NIST)公开招标21世纪的新一代加密算法标准(也就是 AES),这三个算法都是最后一批候选者,其中之一的 Rijndael 更是有幸成为 AES。

  从那之后,世界上有非常多的密码专家对这些候选者(尤其是 Rijndael )进行了深入的研究。到目前为止,并没有发现明显的漏洞可以被利用。

  退一百步讲,即使某个算法将来被发现有漏洞,只要你创建加密盘的时候,使用的是多重加密,问题就不大了。

  某些爱抬杠的读者会问,如果三个算法都被发现漏洞,咋办?俺觉得吧,这种概率非常非常非常小,完全不必为这种小概率的事情浪费心情。

  从严格意义上讲,这种方式属于盗取,而不是破解。之前好几个读者在留言中提到 TrueCrypt 的取证工具,号称能破解 TrueCrypt 加密盘。其实这些所谓的破解,都仅仅是盗取。而且捏,要想成功盗取密钥,需要好几个前提条件。

  TrueCrypt 为了确保安全性,是不会把加密盘的密钥存储到硬盘上的。但是为了进行实时的加密解密,密钥必然会放在内存中。所以,攻击者如果能拿到整个操作系统的内存,并对内存进行分析,就有可能(不是一定)找到密钥。

  通过分析内存拿到密钥,有一个前提:必须是加密盘尚未卸载(umount)。当你把某个加密盘卸载(umount)的时候,TrueCrypt 就会把该加密盘在内存的密钥清空。换句话说,如果你所有的加密盘都已经正常卸载了,内存中就不含有 TrueCrypt 的密钥了。

  但是系统加密分区是无法卸载的(上面跑着操作系统呢),所以,只要你加密了系统分区,就只能依靠正常关机来防止别人偷窥内存中的密钥。

  那么,如何才能拿到操作系统的内存?攻击者可以来软的,也可以来硬的。来软的(软件方式)有3招:虚拟内存文件、休眠文件、内存转储文件;来硬的(硬件方式)有2招:冷启动攻击、DMA攻击。

  除了这几种方式,其实也可以利用木马来盗取系统的内存。比如说,你的系统被植入一个很牛B的木马,理论上可以通过木马去 Dump 整个系统的内存。但是捏,既然攻击者已经植入了木马,就没必要去 Dump 内存来分析了——这么干太费劲啦,简直是舍近求远。有了木马,攻击者直接就可以利用木马来偷窥你的密码和 KeyFiles。所以,木马的情况俺放到后面的 ★盗取密码和 KeyFiles 章节再来介绍。

  稍微熟悉 Windows 的同学,都知道 Windows 有一个虚拟内存文件。而且可以通过设置,把这个虚拟内存文件同时放到几个不同的分区上。

  假如你存放虚拟内存的那几个分区没有加密,假如攻击者能够拿到你的硬盘,假如攻击者接触到硬盘的时候你的加密盘还没有卸载。当这3个假如同时成立,攻击者通过分析虚拟内存文件,有可能(不是一定)拿到加密盘的密钥。

  1. 手动设置虚拟内存文件的存放位置,而不要让操作系统自动管理虚拟内存文件的存储位置。

  从 Windows 2000 开始,就提供了休眠功能。当操作系统休眠时,会把整个系统的内存写到系统分区根目录的某个文件。

  假如你在打开加密盘的情况下休眠系统,假如你的系统分区没有加密,假如攻击者能够拿到你硬盘上的休眠文件。当这3个假如同时成立,那么攻击者通过分析休眠文件,有可能(不是一定)拿到加密盘的主密钥。

  在很早以前(大概是 Windows NT 3.1),Windows 系统就提供了内存转储功能。当操作系统崩溃的时候(比如系统蓝屏),内存转储功能会把崩溃这一瞬间的内存转储到硬盘上。当初提供这个功能,主要是为了便于微软的程序员排查系统崩溃的故障(早些年,Windows 蓝屏几乎是家常便饭)。

  但是攻击者可以利用 Windows 的这一机制,人为触发一个系统崩溃,然后就可以拿到整个内存的转储文件。

  假如你开启了完全内存转储,假如在打开加密盘的情况下系统崩溃,假如你的系统分区没有加密,假如攻击者能够拿到你硬盘上的休眠文件。当这4个假如同时成立,那么攻击者通过分析转储文件,就能拿到加密盘的主密钥。

  以管理员身份登录到系统,在桌面上我的电脑点右键,快捷菜单上选属性。会弹出一个属性对话框,选高级标签页。下面有一个栏目是启动和故障恢复,点设置按钮。会弹出第二个对话框,下面有个写入调试信息的下拉框。把这个下拉框选择成不转储,然后点确定。

  以管理员身份登录到系统,打开资源管理器,在我的电脑上点右键,快捷菜单上选属性。会弹出一个新窗口。在左侧栏选高级系统设置,会弹出一个对话框。后面的操作就跟 WinXP 一样了。

  这个攻击手法比较高级,能够实现这种攻击手法的人,需要配有专门的设备。假如俺没记错的线年之后才开始在安全界流传。如果是5年前写此文,可能就不会写这一章节了。因为那时候六扇门的取证部门,很多还没有这个技术实力。但是最近几年,已经开始陆续具备这种技术实力了。

  不过捏,也别太担心。如果你只是普通的网民,估计你还享受不到这种级别的攻击 :)

  很多人都以为,断电之后,内存中就不会有数据了。其实不然!从断电到内存中的数据完全消失,存在一个数据滞留的时间差。而且这个时间差是依赖于温度的。如果把温度降到一定程度,这个时间差可以超过10分钟(至于多低的温度可以达到多长的时间差,跟具体的内存条规格有关,也跟主板型号有关)。

  要防范冷启动攻击,其实也不难。当你要长时间离开自己的电脑时,不要使用待机或者锁定(当然更不能使用休眠),要正常关机。正常关机的时候,TrueCrypt 会正常退出。在 TrueCrypt 正常退出之前,它会先清空储存密钥的内存位置。

  对于非系统加密分区或者逻辑加密盘,只要把某个加密盘卸载(umount),TrueCrypt 就会把该加密盘在内存的密钥清空。但是系统加密分区是无法卸载的(上面跑着操作系统呢),所以只能依靠正常关机。

  熟悉硬件的同学应该听说过 FireWire 硬件接口(俗称火线接口,也叫 IEEE 1394 接口)。这玩意儿支持 DMA 方式直接操作物理内存。所以攻击者如果能物理接触你的电脑,可以在你的电脑上插入一个 FireWire 接口的设备,然后利用 DMA 的方式直接读取整个系统的内存。这种方式不仅仅是理论上可行,实际上已经有人搞了现成的 DMA 攻击工具——Inception

  前面提到的冷启动攻击的防范措施,也可以用来防范 DMA 攻击。另外,可以通过禁用 1394 接口的 DMA 模式防范这种攻击。根据微软官方文档(链接在这里),所有版本的 Windows 默认都是禁用 1394 接口的 DMA 模式。所以这种攻击的风险不算太大。

  如果你的系统被攻击者植入了木马,那么攻击者就可以利用木马来偷窥你的口令输入和 KeyFiles 输入。一旦拿到加密盘的口令和 KeyFiles,攻击者就可以轻松打开加密盘。

  对于系统盘加密或者全盘加密,TrueCrypt 会在硬盘的引导扇区(或主引导扇区)放一个定制的 Boot Loader。当你的系统启动时,会首先加载 TrueCrypt 的这个 Boot Loader,然后它会提示你输入密码。

  如果攻击者可以物理接触到你的电脑,就有可能采用软件方式,用一个伪造的 Boot Loader 替换掉原来正宗的 Boot Loader。然后这个假的 Boot Loader 也会装模作样地提示你输入密码。再把你输入的密码转交给那个真的 Boot Loader,同时把密码保存在某个地方。

  这样一来,攻击者就可以利用这个假的 Boot Loader,拿到你的密码。

  对于笔记本电脑,如果 BIOS 支持的话,建议增加一个硬盘锁的口令。这样一来,即使攻击者拿到你的电脑,取出硬盘,也无法看到里面的内容。

  不同品牌的笔记本,硬盘锁的机制是不同的。有的靠谱,有的不靠谱。一般规律是:越有实力的厂商,硬盘锁的安全性也越高。

  其次要注意的是:如果你要防的是天朝的六扇门,最好不要用大陆品牌的笔记本。大陆品牌的笔记本,其硬盘锁可能会留有后门给公安和国安使用。

  这个招数比较适合于Linux之类的系统。你可以把整个系统安装到一个小小的 U盘上。然后把 U盘带在身边。每次开机就插入该 U盘来启动操作系统。

  这种情况下,就不需要使用加密系统分区(因为系统分区已经在 U盘上了),自然也就不依赖硬盘的 Boot Loader。

  上述介绍的,都是比较常见的,也比较容易实施的攻击手法。除了这几招之外,还有若干冷门的招数,也可以用来盗取密码或 KeyFiles。比如 基于硬件的Key Logger、比如 基于硬件的边信道攻击、等等。

  这些招数比较罕见,而且需要有专门的硬件设备。如果你只是普通网民,那是没有资格享受到这种级别的攻击滴。通常只有商业间谍、军事间谍、政治间谍才会使用这类手段,用来对付重要人物。

  在 TrueCrypt 的产品手册中,作者已经明确指出:如果无法确保电脑的物理安全,那即使采用 TrueCrypt 也无法保证数据的保密性。在这种情况下泄密,不能算 TrueCrypt 的责任。

  其次,TrueCrypt 的手册还说了,如果你无法确保操作系统安全,那 TrueCrypt 也无法保护你的数据。比如前面提到的:植入木马可以偷窥你的口令。这种情况下是任何软件(包括杀毒软件)都无法彻底防范的。

  天朝六扇门的人要想解开 TrueCrypt 加密盘,通常也是采用这两条路——要么从物理安全入手,要么从操作系统安全入手。到目前为止,没有任何公开的资料能够给出方法,用来快速突破TrueCrypt 本身的防线。暴力破解虽然可以突破 TrueCrypt 的防线,但非常非常非常慢。

  目前那些号称能破解 TrueCrypt 的软件,基本上都是采用内存 Dump 的方式。这种方式的可用性比较差——如果拿不到系统内存,这些破解软件完全没辙。

  综上所述,只要你根据本系列介绍的经验,对 TrueCrypt 使用得当,TrueCrypt 加密盘的安全性是非常有保障的——至少对普通网民已经是足够了

http://rf1995.com/zhuanchuqingchu/130.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有