TrueCrypt 使用经验[4]:关于隐藏卷的使用和注意事项

转载 2016年06月02日 11:32:51


    前阵子比较忙,十一长假又有事情,导致10多天没发博文也没回复读者留言,害得不少热心读者以为俺被跨省了。今天赶紧发篇博文,向列位看官报个平安。

    刚才扫了一眼这几天的留言,非常感激大伙儿对俺的关心!看来俺得多努力,以示回报。

    关于 TrueCrypt 的高级话题,第4篇咱们来聊一下"隐藏卷"的技术细节和注意事项。

   

★啥是隐藏卷?

    所谓的隐藏卷,就是在一个加密卷里面再创建一个加密卷。外层的那个加密卷是"明"的(也叫"宿主卷");内层的那个,是"暗"的(叫"隐藏卷")。这两个加密卷必须使用不同的认证因素(不同的口令或不同的 KeyFiles)。在物理上,你只能看到外层的加密文件或加密分区,内层的卷,是没有独立文件或独立分区的。

    当你要打开加密卷的时候,如果输入的是外层的认证因素(口令、KeyFiles),那就打开外层的卷(这时候看不到内层的数据);反之,输入内层的认证因素,则打开内层的卷(这时候看不到外层的数据)。

    隐藏卷的存储示意图如下(技术上就是利用外层卷的剩余空间来存储内层卷的数据):

    不见图 请翻墙

   

★隐藏卷有啥用?

    隐藏卷最大的好处在于:可以做到"Plausible Deniability"。这个洋文找不到贴切的中文对应。有人翻译为:"冠冕堂皇地拒绝",俺觉得不够贴切。为了便于大伙儿理解,稍微解释一下使用"Plausible Deniability"的场景。

    首先大伙儿应该明白一点——TrueCrypt 的加密卷是非常牛B滴(本系列前面几篇已经聊过了)。只要你设置的口令够复杂,尤其再配合 KeyFiles,TrueCrypt 加密卷是无法破解的。TrueCrypt 之强悍,连美国佬的 FBI 都没辙(前几年有活生生的案例)。

    但是别忘了安全界的一句老话——"越是安全的系统,越成为主要的弱点"(如果你看过俺写的"社会工程学"系列博文,对此应该有体会)。

    虽然 TrueCrypt 加密盘很牛B,但某些攻击者(比如天朝的公安)可以采用某些手段(比如威胁你家人,比如刑讯逼供)逼迫你交出加密盘的口令/KeyFiles。那么,该如何应对"胁迫"捏?这时候,TrueCrypt 的隐藏卷就派上用场啦。

    当你一开始制作加密盘(加密卷)的时候,可以在加密卷中设置一个隐藏卷。按照通常的经验,你要把最敏感最重要的数据放在内层卷(隐藏卷),把相对不太重要的数据放在外层卷。一旦遭遇胁迫,你就装出一副很无奈的样子,很不情愿地把外层卷的口令告诉对方。这时候,外层卷虽然暴露了,但是内层的隐藏卷并没有暴露。这就是"Plausible Deniability"的使用场景。

   

★隐藏卷 VS 嵌套卷

    这两个概念,可能某些同学会混淆,俺稍微澄清一下。

    所谓的"嵌套卷",就是把一个小的加密卷存放到另一个大的加密卷内部。打个比方,如同一个大的压缩文件中还包含一个小的压缩文件。

    表面上看,"嵌套卷"跟"隐藏卷"有相似之处;其实捏,两者有本质的区别。

    最关键的差别是:

    对于"嵌套卷",只要能打开外层卷,就可以看到内层卷。

    对于"隐藏卷",即使能打开外层卷,也无法判断是否存在隐藏卷。

    上述差异导致:"嵌套卷"无法做到"Plausible Deniability",而"隐藏卷"可以。这也是"隐藏卷"相比"嵌套卷"的最主要优点。

    设想一下,如果你遭到胁迫,攻击者知道你使用了 TrueCrypt 加密,并且逼迫你打开加密卷。

    如果你使用的是"嵌套卷"

    打开外层卷之后,攻击者可能会找到存放在"外层卷"里面的"内层卷"。就可以继续胁迫你开启"内层卷"

    如果你使用的是"隐藏卷"

    打开外层卷之后,(除非你的设置有缺陷,否则)攻击者无法判断该加密卷内部是否存在隐藏卷。

    (如果避免设置的缺陷,俺下面会聊)

   

★如何创建隐藏卷

    大致需要如下几个步骤:

   

◇步骤1

    先创建一个普通的加密卷(这个应该不用俺再教了吧?)这个加密卷是用来作为外层卷(也就是"幌子")。

    外层卷可以是物理加密盘(某个加密分区),也可以是虚拟加密盘(某个加密文件)。

    关于"物理加密盘"和"虚拟加密盘"的差异、优缺点,本系列前面的博文已经聊过,这里就不再浪费口水了。

   

◇步骤2

    创建好外层卷之后,你需要在外层卷放置一些相对不太重要的文件作为幌子以掩人耳目。

    怎样才算是"相对不太重要"捏?下面的"注意事项"章节会提到。

   

◇步骤3

    在刚才那个普通加密卷的基础上,再创建一个"隐藏加密卷"。这个隐藏加密卷,就隐藏在普通加密卷的空闲磁盘空间里面。

    TrueCrypt 提供一个比较傻瓜化的向导,可以帮你一步步地在普通加密卷(外层卷)中创建一个隐藏加密卷(内层卷)。

    这个步骤其实不难,大伙儿应该能搞定。这里就不放界面截图了。搞不定的同学,可以到俺博客留言。如果很多人搞不定,俺再补上界面截图。

   

★隐藏卷的三种使用模式

    如果某个加密卷包含有隐藏卷,那么该加密卷就会有三种不同的使用模式。

    很多使用 TrueCrypt 的同学都没彻底搞明白隐藏卷的这三种操作模式。所以俺特地用一个章节的篇幅,来说明这三种模式的差异和应用场景。

   

◇模式1:只打开内层的隐藏卷,外层卷不可见

    认证过程

    打开加密卷的时候,仅仅输入内层卷的认证因素(口令、KeyFiles)。这时候 TrueCrypt 会自动帮你加载内层卷。

    说明

    这是最常用的模式。因为外层卷只是一个掩人耳目的幌子,显然,你日常的大部分操作都是在"内层的隐藏卷"中进行。

   

◇模式2:只打开外层卷,内层卷不可见,对隐藏卷进行写保护

    认证过程

    可以有两种认证方式:

    1. 打开加密卷的时候,仅仅输入外层卷的认证因素(口令、KeyFiles),同时勾选"Read Only"选框。

    使用这种方式,整个加密卷(包括内层和外层)都是只读模式,自然也就不会破坏内层卷的数据。但因为是只读模式,所以只能浏览外层卷的文件,无法进行修改(写操作)。

    2. 打开加密卷的时候,同时输入外层卷和内层卷的认证因素(口令、KeyFiles)。

    使用这种方式,你可以对外层卷进行写操作(比如增加、删除文件,修改文件内容、等等)

    因为你同时输入内外两层卷的认证因素,TrueCrypt 软件自然就知道这个加密卷是含有"隐藏卷"的。所以,在这种模式下,TrueCrypt 会暗中对隐藏卷所在的磁盘区域进行写保护。(这种写保护是在文件系统驱动的层面进行的,你使用的应用软件感觉不出来)。

    假设说,你企图往外层卷写入大量的数据,并且写入的数据会覆盖到隐藏卷所在的磁盘区域,这时候 TrueCrypt 会屏蔽这些"磁盘写操作",同时你会看到一个提示"写入失败"。

    说明

    一般情况下不需要使用这种模式。除非你想调整外层卷的数据,再使用这种模式。

    可能有的同学会问:"外层卷的内容只是掩人耳目的幌子,难道需要经常调整吗?"关于这个问题,在后续的"注意事项"章节,俺会详细介绍。什么情况下需要调整外层卷的数据,以加强隐藏卷的隐蔽性。

   

◇模式3:只打开外层卷,内层卷不可见,不对隐藏卷进行写保护

    认证过程

    打开加密卷的时候,光输入外层卷的认证因素(口令、KeyFiles)。

    TrueCrypt 会自动帮你加载外层卷。这时候 TrueCrypt不会对内层卷进行暗中保护。

    请注意:如果你不给出隐藏卷的口令,连 TrueCrypt 自己也无法判断是否存在隐藏卷。

    说明

    再罗嗦一下,处于这种模式下,TrueCrypt 不会对隐藏卷进行写保护。所以这种操作模式是有风险的——当你在操作外层卷的时候,可能会无意中破坏隐藏卷存储的数据。

    平常使用的时候,千万不要用这种模式。只有当你遭到胁迫的时候,才使用这种模式

    套用一下安全的专业术语。当你使用这种模式,其实是通过牺牲"可用性"来换取"保密性"。对于大多数 TrueCrypt 用户而言,"保密性"显然比"可用性"重要得多

   

★使用隐藏卷的注意事项

    本章节大伙儿要看仔细喽。即使是某些懂安全的网友,可能也会忽略下面提到的某些细节。

   

◇受胁迫的时候,千万别搞错模式

    当你受到胁迫的时候,务必使用第三种模式——只输入外层卷的认证因素。如果这时候你因为慌乱,搞错了,输入了内层卷的认证因素(口令、KeyFiles),内层隐藏卷的数据自然就暴露了。

    再强调一遍:受到胁迫的时候,绝对不能使用第一种模式和第二种模式,必须使用第三种模式。一旦搞错,前功尽弃。

   

◇关于空闲空间的比例问题

    前面介绍了,隐藏卷是位于外层卷的空闲空间中。比方说,你的外层卷总共 10GB,已经用掉 8GB,空闲空间只有 2GB。那么,你在这个外层卷里面创建隐藏卷,隐藏卷尺寸的上限就是 2GB(很多时候,上限远达不到 2GB,具体看外层卷的文件系统类型)。

    如果你的外层加密卷很大,但是只使用了一丁点空间(比如 100GB 加密卷只用了 1GB),那么攻击者就会起疑心——怀疑这个加密卷包含有隐藏卷。所以,你需要适当平衡一下,在外层加密卷中放置足够多的"幌子文件",占到一定比例的空间,才不至于引起怀疑。

   

◇关于"幌子文件"的重要性问题

    前面俺提到,放置在外层卷的"幌子",必须是相对不太重要。所谓的"相对不太重要",就是说有一定的重要性,但是重要性远远不如隐藏卷中的数据。

    为啥俺特地强调这点捏?如果你放在外层卷的"幌子"是一些完全不重要的文件,就显得太假了。一旦你遭到胁迫,交出外层卷的密码,攻击者打开外层卷之后,发现里面都是一些鸡毛蒜皮的文件,自然会起疑心——为啥你把鸡毛蒜皮的文件用 TrueCrypt 加密?

    所以,放在外层加密卷的文件,必须有适当的重要性;但重要性要远远低于放在隐藏卷里面的重要性。

   

◇关于备份的注意事项

    大部分人放在加密盘里面的数据,都是重要数据。重要数据,自然有备份的需要(以免硬盘坏,电脑被盗、等等)。

    如果你要备份含有隐藏卷的加密盘,要记得如下两条安全措施:

    在每次备份之前,先随意地修改外层卷的文件

    或者

    每次备份之前,都先 重建 一个新的加密盘,然后分别COPY外层卷和内层卷的文件到新的加密盘对应的内外卷

    这两条措施,二选一。前者操作简单,但安全性不够强;后者操作麻烦,但安全性更好。

    为啥要有这两条防范措施捏?主要是为了对付"差分攻击"。"差分攻击"是一个信息安全的术语,"差分"指的是"差异分析"。为了让大伙儿明白,说一个针对加密盘进行差分攻击的场景。(这个例子有点复杂,不太懂技术的同学可能要多看几遍,才能看明白)

    假设你使用了基于文件的虚拟加密盘,并且在其中设置了隐藏卷。

    按照惯例,你在外层卷中放置了一些无关痛痒的文件,把机密信息放到隐藏卷。

    平时,你经常需要打开隐藏卷,修改里面的内容。

    由于外层卷的文件只是掩人耳目的幌子,所以你一直没有修改过外层卷的文件内容。

    为了防止硬盘故障,你定期把这个虚拟加密盘备份到家中的U盘上。

    有一天,朝廷的六扇门找到你,并且发现你在使用 TrueCrypt 加密盘。于是六扇门的人逼迫你交出加密盘的口令。

    于是捏,你就假装交出外层卷的口令(反正外层卷存放的东西不重要,无所谓)。

    如果故事到此为止,貌似天衣无缝。

    但是,因为你曾经备份过U盘,六扇门搜查你家,发现了你备份加密盘的 U盘。

    这时候,六扇门里面搞"信息取证"的技术人员就可以把两个加密盘(一个是U盘里面的,一个是你电脑上的)拿来做比对(也就是"差异分析")

    前面俺介绍过,隐藏卷实际上是存放在外层卷的空闲磁盘空间

    由于你始终没有修改过外层卷,这时候就露出破绽了。

    啥破绽捏?

    你之前交出了外层卷口令,取证人员可以打开外层卷,读取外层卷那些"幌子文件"。然后,取证人员会发现:这两个加密盘,加密密钥是一样的,里面存放的文件也是一模一样的(因为外层卷你一直没改动过)。但是空闲区域的内容却有很大的不同。(这显然是很不正常的——这就是破绽)。

    有经验的取证人员,单凭这点就可以推断——这个加密盘的空闲区域有猫腻!

    这时候,虽然取证人员还无法知道隐藏卷的内容(因为他们还没有口令/KeyFiles),但是,他们已经可以断定:你使用了隐藏卷。

    换句话说,你的隐藏卷已经被察觉了。接下来,六扇门的人就会开始胁迫你交出隐藏卷的口令/KeyFiles。

    这个例子稍微有点复杂, 不知你看懂了没有?没看懂也没关系。反正你要记得前面提到的那两条防范措施。

   

◇受胁迫时的演技

    俗话说得好:使用隐藏卷,演技很关键。所以最后再说说"演技"的问题——当你受到胁迫,要求你交出加密盘的密码或KeyFiles,请注意你的演技。

    坦白说,这方面俺没有太多经验啦——毕竟俺没当过演员 :) 所以暂列两条,算是抛砖引玉。

    1. 不能太轻易就交出——这样显得太假

    2. 一定要装出一副很不情愿、很无奈的神情

    如果你演技不好,又想对付"胁迫",咋办捏?还有一个绝招,就是前面博文介绍过的"KeyFiles 认证"。

    这个绝招可以让世界上所有的酷刑逼供失效。但是有两个前提:

    1、你必须使用随机生成的KeyFiles,并且用这些 KeyFiles 做加密盘的认证因素(如何随机生成 KeyFiles,俺之前介绍过)

    2、你在被胁迫之前,必须彻底销毁KeyFiles(包括 KeyFiles 的备份)

    因为随机生成的 KeyFiles,其内容连你自己也不知道。一旦彻底销毁,连你自己都无法打开加密盘。酷刑逼供自然也就失效啦

相关文章推荐

未发现后门:开源加密软件TrueCrypt安全审计结束

TrueCrypt是一款流行的开源文件加密软件,该软件用户包括大量的“敏感人士”(如商人、政要、记者),因此其安全性一直广受关注。 2014年5月,开源加密软件TrueCrypt突然在其官网上警...

VC++网络安全编程范例(6)-OPENSSL创建文件保险箱

SSL是Secure Socket Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标准,目前已有3.0...

FBI也没辙?超强加密软件TrueCrypt全教程

许多网友在电脑中都有需要保密的文件,如工作文档、私人日记、照片等,经过XX门事件之后,相信各位网友都对自己电脑里的一些隐私文件的保存问题有了更高的安全要求。生活中却有许多的不安全因素会使得这些需要保密...

TrueCrypt所支持的3种加密算法AES、Twofish、Serpent的简单介绍

TrueCrypt所支持的3种加密算法AES、Twofish、Serpent,其中AES名气比较大,而Twofish、Serpent则不太出名。其实这3种算法还是颇具渊源的。    70年代以来DE...

IT故事:磁盘加密工具TrueCrypt与“棱镜门”事件

享有盛誉的加密软件TrueCrypt突然宣布:自身有缺陷,停止更新。IT业界普遍认为,此事与“棱镜门”相关......

Oracle中快速导入导出数据库的几种方式

首先,我们导入导出数据,肯定是要通过oracle自带的可运行程序来完成数据的导入导出工作,imp.exe 和exp.exe这两个可运行文件都放在oracle安装目录下的BIN目录下,比如我的是:D:\...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)