Veracrypt的基本操作

 

基本操作1:创建加密空间和隐藏空间

这个教程的目的是希望能够创建一个强加密的,即便是政府机构也无法解密的加密空间,并在其中存储加密文件。同时考虑到会因为精神或者暴力的双重压力下被迫解密的可能性(比如不解密就枪毙),因此希望在加密空间里面用另外不同的一个密钥甚至是加密方式来创建一个隐藏的加密空间。
这种隐藏的加密空间因该是无法被察觉的,除非你亲口承认并解密,否则别人是无法确信这里面还有一层加密。这是非常重要的,这样相当于设置了双重保险。更多的设置细节会在接下来的操作步骤里面进行介绍。
步骤1:下载安装Veracrypt
下载地址

步骤2.1找到开始界面的创建按钮
运行程序以后应该看到的是这个界面,之后我们需要解密也是这个界面,按照箭头指示的方向找到创建空间的按钮

59

因为隐藏的加密空间必须要隐藏在一个加密空间之下,所以我们首先要创建一个普通的加密空间。
2.2在创建引导界面中选择创建普通加密空间

61.png60.png

2.3决定要把加密空间创建在哪里,以及叫什么名字

62.png
这个图就是讲要选择一个文件,但是不要理解为是选择一个文件作为加密空间。是在你的计算机或者硬盘,或者U盘,甚至手机里面找一个地方,创建一个新的文件夹,取一个名字来作为加密空间。
2.4一般的加密空间要用什么加密算法
在这个问题的考虑上必须要兼顾效率和安全性,如果你要创建的加密空间很大,而且因为是第一层文件敏感度不是很高,那么推荐用安全性不是很变态效率高一点的AES256。实际上AES256已经是强加密了,加上后面我们还要设置KDF,暴力破解的难度是非常大的,但是相比去后面的三重加密而言还是弱了点,我这里说的是相对而言。因为Veracrypt还可以选择比如AES(Twofish(Serpent))这种三重加密。

63.png

如果想要知道这些加密算法的具体区别,可以点击下面的Benchmark,它或测试出在按照你目前机器的效率这些加密算法的具体效率结果排名。这里我就不测试了,理论上的效率都是有数的,具体的数字每个人的机器配置不一样数字也不一样。
2.5选择hash算法

加密为什么要选hash算法?因为我们为了防止对手建立rainbow table 来尝试暴力破解我们的加密空间,一旦对方得到我们的这个加密文件,那么对手就有充足的时间来尝试破解加密。所以我们为了防止这种情况的发生,我们在存储加密密钥的时候会用到KDF。虽然在推特上已经有提到过,这里还是再简单说一下,看到这样的公式:
DK=KDF(key,salt,iterations)

key是我们设置的密码,比如PASSWORD123129481249
Salt是一串随机的数字,我们希望把这串数字加入到我们之前设置的密码里面
iterations是迭代的次数,因为我们会把salt加到密码里面然后用伪随机函数进行迭代,这个过程可以极大的降低字典攻击的速度同时提高破解难度。
因此系统实际上用的加密密钥是DK是我们的KDF(Key Derivative Function)加盐迭代生成的密钥。

回到2.5的主题上来,拿为什么我们要选择hash算法,因为veracrypt的KDF用的伪随机函数是基于HMAC-SHA-512, HMAC-SHA-256, HMAC-RIPEMD-160, or HMAC-Whirlpool的,同时veracrypt对于以上的算法都是有默认的迭代次数的。对于创建标准的加密空间而言,HMAC-RIPEMD-160的迭代ci’s次数默认是655331次,而其他的诸如HMAC-SHA-512, HMAC-SHA-256 and HMAC-Whirlpool都是500000次。
具体需要的时间是可以在Benchmark里面进行测试的,在Benchmark界面里面把默认的加密算法测试换成PKCS-5 PRF ,所谓PRF就是伪随机函数的简称。
然后我们可以看到不同的随机为函数需要的时间如下:

64.png

我就不展示我的数字了,也没有参考价值因为每个人的机器配置都是不一样的,总之上面的数字显示的就是每一次输入验证密码到生成DK的时间,想想看如果错误输入100次需要多长时间。
2.6选择要创建的加密空间的大小
这个因人而异,只要是不低于每种模式下的最小限制即可,还有不要超过所选文件所在盘的最大空余空间即可。

66.png

但是有一点要注意,因为我们之后还需要创建隐藏空间,而隐藏空间的大小是和现在创建的加密空间的大小是差不多的(小一点点)。所以创建现在的加密空间还要考虑到之后隐藏空间的大小(可以评估以下自己的非常敏感的文件所需要的空间大小)。
2.7设置密码

67.png

可以看到这里还有设置key file的,key file的设置可以大大的提高安全性。
因为设置keyfile有这样的几个好处:

  1. 增加密码的强度,使得暴力破解的难度再上一个档次。添加key file那么会把key file的hash值和你设置的密码通过模的加法整合在一起,用以增强密码的强度。
  2. 可以把key file存储再一个移动设备里面,比U盘,这样可以相当于做一个二阶段登陆验证。这样别人至少得到你输入的密码是无法解锁的,因为解密文件的密钥并不是我们设置的密码,而是KDF最后生成的哪个密码,而这个过程中我们不仅加盐,迭代,还要需要key file的hash值。
  3. 可以实现多人验证。因为这里面的key file可以设置不止一个,那么可以分配给每一个用户一个key file ,那么只有所有人都交出他们各自的key file再配合上所有人已知的密码,才能打开文件。也就是说,只有大家都同意这个文件才可以被打开,被查看,被修改。
    想想看核弹发射的时候授权的钥匙不是交在一个人手里的,通常是需要几个人全部都同意才能够开启发射控制器。

然后还有一个设置是PIM,意思是Personal Iterations Multiplier。前面不是讲过为了增强字典攻击的难度,我们需要KDF,而这里面有一个参数就是需要迭代,并且veracrypt里面针对不同的伪随机函数有不同的默认迭代次数。这里设置PIM还可以根据个人的需要修改默认的迭代次数。对于现在创建的加密空间基本规则如下:
=15000+(PIM×1000)迭代次数=15000+(PIM×1000)
比如对于HMAC-SHA-512而言相当于默认的PIM是485,如果你想要更慢的解密,更强的安全性就应该高于这个值,如果想要验证速度更快就应该低于这个数字。

说了这么多但是对于第一层加密空间是掩护,里面放置看是敏感但是其实和真正敏感的内容比较起来完全是小巫见大巫的内容,所以根据需要设置,也不要太夸张否则效率太低影响使用性

68.png

设置完成密码以后会进入到这样的画面中,这个界面是通过Veracrypt的随机数生成器生成盐,这也是KDF中非常重要的一个过程。**其中盐的一个参数就是用户鼠标的随机移动,所以说这一步要再界面里面随机的移动鼠标知道最下方的进度条从红色变成绿色的为止。**结束以后点击format,于是我们成功的使用KDF生成了DK,现在DK才是加密的密钥,所以这一步以后系统会自动的开始对文件进行加密了。这个过程因为加密算法和加密空间的不同所以时间也不同

70.png69.png
看到这两个界面意思就是已经成功的创建了加密空间。
如果不需要制造第二层隐藏的加密空间到这一步就可以了,如果要制造隐藏空间我们还需要继续操作。如果需要接续点击next,否则点击exit。如果你想要创建加密空间只不过不是现在,这没关系,在以后可以选中现在的加密文件然后给加密空间附加隐藏空间。
3.1选择创建隐藏空间
和前面一摸一样的创建界面,这一步和之前的选择一样。

71.png

然后这里选择不一样,第一次我们是创建一般的加密空间选择的是第一个,这一次我们创建隐藏的加密空间选择的是第二个。

72.png

然后因为我们已经创建了一个加密空间,所以这里我们选择Direct Mode ,否则系统会引导到先创建一般的加密空间,这就是我们2.x做的工作。

73.png

3.2选择隐藏空间所在的位置
这里选择文件只能选择一个普通的veracrypt加密空间,这里我们就选择第二步已经创建好的加密空间。因为隐藏加密空间是依赖于一个已经存在的加密空间存在的。

74.png

3.3输入第一层加密的密码
这一步是需要解密第一层加密。也就是说我们需要解密2.x我们创建的加密空间。这一步需要输入密码,如果有设置key file 也一定要选择key file 才能解密。只有完成解密才能进一步设置隐藏加密空间。

78.png

弹出这个窗口就说明解密第一层成功了,于是我们可以继续进行隐藏空间的设置了。
3.4设置隐藏空间加密算法,hash算法,大小
这个步骤几乎是和之前是一致的。这里设置加密方式和hash可以和第一层不一样。比如说第一层我们设置AES那么现在隐藏空间我们可以设置Serpent

79.png

当然你也可以设置一样的加密算法。之后是设置大小,之前也说了这个大小的限制是受到第一层的加密空间的大小限制的。之后便是设置密码,key file以及迭代次数了。
3.5设置密码,key file,迭代次数
这一步和2.7是类似的,详细的介绍可以参考2.7。但是有一点要注意,密码一定要和普通的加密空间的密码是不一样的。
相当于我们有两个key,key1是打开第一层加密的,key2是打开第二层加密的。对于同样一个加密空间,我们输入不同的密钥就会得到不同的内容。还要强调的是,这一步一定要设置key file以增强加密强度。如果第一步设置了key file那么这一次最好是不要和第一次的一样。

随便在计算机中选这一个文件作为keyfile,最好是不起眼的文件,可以是mp3文件,可以是jpg文件,或者zip都可以。文件的大小是没有限制的,因为只有前1MB的内容给是有效的,其他的内容都是无效的。

81.png

如果这一步勾选了PIM那么就会进入到设置迭代次数的界面,为了增强安全性我们要设置高于495的数字,比如700。
3.6移动鼠标产生salt

82.png

这一步和2.x也是一样的没有什么变化。如果不知道操作或者有什么问题可以倒回去看2.x。
到这一步我们的创建就算完成了,我们可以按退出按钮了。

83.png

基本操作2:打开与关闭加密空间

1.1选择一个盘,以及选择需要解密的文件

84.png

选择盘的意思是说,等一下解密以后计算机上会出现一个我们选择的盘里面装的就是我们的已经解密的文件。比如这里选择T盘,那么解密以后的文件就会出现在T盘里面,如果不需了,要把加密空间锁起来,这个盘就会消失。
1.2决定要解密哪一层
找到解密按钮,点击。

85.png

然后弹出解密界面,这个时候不要着急输入密码,因为这个文件有两层不一样的加密。所以想要决定要打开哪一层加密。

86.png

1.2.1解密第一层
假设我们解密第一层,要注意这里如果有自己设置PIM请一定要记清楚这个数字,否则系统会按照默认的次数进行迭代,那么这样的话即便密码正确因为迭代次数不同,那么也会导致DK不同,于是无法解密文件。
这里我们已经解密第一层,并且在里面创建了这样一个文件。
还有如果有设置key file 也要选择添加key file否则也是无法解密的。

87.png

1.2.2锁上第一层
在开始界面里面找到上锁的按钮即可。

88.png

1.2.2解密第二层
一定要第一层已经上锁然后才可以解密第二层,选择第二层的密码设置才可以打开第二层,第一层的密码设置只能打开第一层。

89.png

如果设置了key file 一定要选择添加正确的key file,并且key file 不能有任何的改变和损坏,哪怕1bit的不一样经过迭代以后也是完全不同的密钥。还有如果自定义过迭代次数这里一定要勾选PIM否则迭代次数不一样得到的DK也是不正确的。
打开第二层会发现虽然第一层已经创建了一个文件但是第二层还是空的,这里要意识到这两个空间是独立的互相不干扰的。第一层的文件不会改变第二层的内容给。

 

 

One thought on “Veracrypt的基本操作

Leave a Reply to Brandon Law (@Brandon_MosTra) Cancel reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s