前阵子比较忙,十一长假又有事情,导致10多天没发博文也没回复读者留言,害得不少热心读者以为俺被跨省了。今天赶紧发篇博文,向列位看官报个平安。
刚才扫了一眼这几天的留言,非常感激大伙儿对俺的关心!
关于 TrueCrypt 的高级话题,第4篇咱们来聊一下”隐藏卷”的技术细节和注意事项。
所谓的隐藏卷,就是在一个加密卷里面再创建一个加密卷。外层的那个加密卷是”明”的(也叫”宿主卷”);内层的那个,是”暗”的(叫”隐藏卷”)。这两个加密卷必须使用不同的认证因素(不同的口令或不同的 KeyFiles)。在物理上,你只能看到外层的加密文件或加密分区,内层的卷,是没有独立文件或独立分区的。
隐藏卷最大的好处在于:可以做到”Plausible Deniability”。这个洋文找不到贴切的中文对应。有人翻译为:”冠冕堂皇地拒绝”,俺觉得不够贴切。为了便于大伙儿理解,稍微解释一下使用”Plausible Deniability”的场景。
首先大伙儿应该明白一点——TrueCrypt 的加密卷是非常牛B滴(本系列前面几篇已经聊过了)。只要你设置的口令够复杂,尤其再配合 KeyFiles,TrueCrypt 加密卷是无法破解的。TrueCrypt 之强悍,连美国佬的 FBI 都没辙(前几年有活生生的案例)。
但是别忘了安全界的一句老话——”越是安全的系统,人越成为主要的弱点”(如果你看过俺写的“社会工程学”系列博文,对此应该有体会)。
虽然 TrueCrypt 加密盘很牛B,但某些攻击者(比如天朝的公安)可以采用某些手段(比如威胁你家人,比如刑讯逼供)逼迫你交出加密盘的口令/KeyFiles。那么,该如何应对”胁迫”捏?这时候,TrueCrypt 的隐藏卷就派上用场啦。
本博客所有的原创文章,作者皆保留版权。转载必须包含本声明,保持本文完整,并以超链接形式注明作者编程随想和本文原始地址:
这两个概念,可能某些同学会混淆,俺稍微澄清一下。
所谓的”嵌套卷”,就是把一个小的加密卷存放到另一个大的加密卷内部。打个比方,如同一个大的压缩文件中还包含一个小的压缩文件。
表面上看,”嵌套卷”跟”隐藏卷”有相似之处;其实捏,两者有本质的区别。
最关键的差别是:
对于”嵌套卷”,只要能打开外层卷,就可以看到内层卷。
对于”隐藏卷”,即使能打开外层卷,也无法判断是否存在隐藏卷。
上述差异导致:“嵌套卷”无法做到”Plausible Deniability”,而”隐藏卷”可以。这也是”隐藏卷”相比”嵌套卷”的最主要优点。
设想一下,如果你遭到胁迫,攻击者知道你使用了 TrueCrypt 加密,并且逼迫你打开加密卷。
如果你使用的是”嵌套卷”
如果你使用的是”隐藏卷”
打开外层卷之后,(除非你的设置有缺陷,否则)攻击者无法判断该加密卷内部是否存在隐藏卷。
(如果避免设置的缺陷,俺下面会聊)
俗话说得好:使用隐藏卷,演技很关键。所以最后再说说”演技”的问题——当你受到胁迫,要求你交出加密盘的密码或KeyFiles,请注意你的演技。
打开外层卷之后,攻击者可能会找到存放在”外层卷”里面的”内层卷”。就可以继续胁迫你开启”内层卷”
大致需要如下几个步骤:
先创建一个普通的加密卷(这个应该不用俺再教了吧?)这个加密卷是用来作为外层卷(也就是”幌子”)。
外层卷可以是物理加密盘(某个加密分区),也可以是虚拟加密盘(某个加密文件)。
关于”物理加密盘”和”虚拟加密盘”的差异、优缺点,本系列前面的博文已经聊过,这里就不再浪费口水了。
隐藏卷的存储示意图如下(技术上就是利用外层卷的剩余空间来存储内层卷的数据):
创建好外层卷之后,你需要在外层卷放置一些相对不太重要的文件作为幌子以掩人耳目。
怎样才算是”相对不太重要”捏?下面的”注意事项”章节会提到。
平时,你经常需要打开隐藏卷,修改里面的内容。
在刚才那个普通加密卷的基础上,再创建一个”隐藏加密卷”。这个隐藏加密卷,就隐藏在普通加密卷的空闲磁盘空间里面。
TrueCrypt 提供一个比较傻瓜化的向导,可以帮你一步步地在普通加密卷(外层卷)中创建一个隐藏加密卷(内层卷)。
这个步骤其实不难,大伙儿应该能搞定。这里就不放界面截图了。搞不定的同学,可以到俺博客留言。如果很多人搞不定,俺再补上界面截图。
如果某个加密卷包含有隐藏卷,那么该加密卷就会有三种不同的使用模式。
很多使用 TrueCrypt 的同学都没彻底搞明白隐藏卷的这三种操作模式。所以俺特地用一个章节的篇幅,来说明这三种模式的差异和应用场景。
当你一开始制作加密盘(加密卷)的时候,可以在加密卷中设置一个隐藏卷。按照通常的经验,你要把最敏感最重要的数据放在内层卷(隐藏卷),把相对不太重要的数据放在外层卷。一旦遭遇胁迫,你就装出一副很无奈的样子,很不情愿地把外层卷的口令告诉对方。这时候,外层卷虽然暴露了,但是内层的隐藏卷并没有暴露。这就是”Plausible Deniability”的使用场景。
认证过程
打开加密卷的时候,仅仅输入内层卷的认证因素(口令、KeyFiles)。这时候 TrueCrypt 会自动帮你加载内层卷。
说明
这是最常用的模式。因为外层卷只是一个掩人耳目的幌子,显然,你日常的大部分操作都是在”内层的隐藏卷”中进行。
认证过程
可以有两种认证方式:
1. 打开加密卷的时候,仅仅输入外层卷的认证因素(口令、KeyFiles),同时勾选”Read>假设你使用了基于文件的虚拟加密盘,并且在其中设置了隐藏卷。
按照惯例,你在外层卷中放置了一些无关痛痒的文件,把机密信息放到隐藏卷。
由于外层卷的文件只是掩人耳目的幌子,所以你一直没有修改过外层卷的文件内容。
为了防止硬盘故障,你定期把这个虚拟加密盘备份到家中的U盘上。
有一天,朝廷的六扇门找到你,并且发现你在使用 TrueCrypt 加密盘。于是六扇门的人逼迫你交出加密盘的口令。
于是捏,你就假装交出外层卷的口令(反正外层卷存放的东西不重要,无所谓)。
如果故事到此为止,貌似天衣无缝。
当你要打开加密卷的时候,如果输入的是外层的认证因素(口令、KeyFiles),那就打开外层的卷(这时候看不到内层的数据);反之,输入内层的认证因素,则打开内层的卷(这时候看不到外层的数据)。
但是,因为你曾经备份过U盘,六扇门搜查你家,发现了你备份加密盘的 U盘。
这时候,六扇门里面搞”信息取证”的技术人员就可以把两个加密盘(一个是U盘里面的,一个是你电脑上的)拿来做比对(也就是”差异分析”)
前面俺介绍过,隐藏卷实际上是存放在外层卷的空闲磁盘空间。
由于你始终没有修改过外层卷,这时候就露出破绽了。
啥破绽捏?
你之前交出了外层卷口令,取证人员可以打开外层卷,读取外层卷那些”幌子文件”。然后,取证人员会发现:这两个加密盘,加密密钥是一样的,里面存放的文件也是一模一样的(因为外层卷你一直没改动过)。但是空闲区域的内容却有很大的不同。(这显然是很不正常的——这就是破绽)。
有经验的取证人员,单凭这点就可以推断——这个加密盘的空闲区域有猫腻!
这时候,虽然取证人员还无法知道隐藏卷的内容(因为他们还没有口令/KeyFiles),但是,他们已经可以断定:你使用了隐藏卷。
换句话说,你的隐藏卷已经被察觉了。接下来,六扇门的人就会开始胁迫你交出隐藏卷的口令/KeyFiles。
这个例子稍微有点复杂, 不知你看懂了没有?没看懂也没关系。反正你要记得前面提到的那两条防范措施。
坦白说,这方面俺没有太多经验啦——毕竟俺没当过演员 🙂 所以暂列两条,算是抛砖引玉。
1. 不能太轻易就交出——这样显得太假
2. 一定要装出一副很不情愿、很无奈的神情
如果你演技不好,又想对付”胁迫”,咋办捏?还有一个绝招,就是前面博文介绍过的”KeyFiles 认证”。
这个绝招可以让世界上所有的酷刑逼供失效。但是有两个前提:
1、你必须使用随机生成的 KeyFiles,并且用这些 KeyFiles 做加密盘的认证因素(如何随机生成 KeyFiles,俺之前介绍过)
2、你在被胁迫之前,必须彻底销毁 KeyFiles(包括 KeyFiles 的备份)
因为随机生成的 KeyFiles,其内容连你自己也不知道。一旦彻底销毁,连你自己都无法打开加密盘。酷刑逼供自然也就失效啦。
俺博客上,和本文相关的帖子(需翻墙):
TrueCrypt——文件加密的法宝
文件加密的扫盲介绍
版权声明
http://program-think.blogspot.com.au/2013/10/truecrypt-4.html
Android版SpeedUp VPN,基于ShadowsocksRb,与SSR和Shadowsocks协议兼容,内置免费SSR服务器。 如果您对内置SSR VPN服务器不满意,则可以自行添加或导入任何SSR和Shadowsocks服务器使用。