BitLocker+VHD替换TrueCrypt及其后继VeraCrypt

  • A+
所属分类:安全新闻

标题: BitLocker+VHD替换TrueCrypt及其后继VeraCrypt

创建: 2020-11-13 16:21
更新:
链接: http://scz.617.cn:8/windows/202011131621.txt

☆ 简介
☆ 创建VHD
☆ 初始化VHD
☆ 格式化VHD
☆ 加载VHD
☆ 加密VHD
☆ 卸载VHD
☆ 重新加载加密过的VHD
☆ 修改加密VHD的密码
☆ BitLocker若干QA
    1) PC硬件没有TPM能用BitLocker吗
    2) 检查本机TPM状态
    3) 控制面板中没有"BitLocker驱动器加密"
    4) 全局关闭BitLocker
☆ 后记

☆ 简介

有个音容宛在的肥佬某天问我,他想把一些东西放在加密盘中,大概12个月后销毁。我猜他可能是想把外遇心得、黑灰账务等等放在加密盘中,一般有这种需求的都不是什么好人。当然,我肯定是个例外,我是个好人。

加密盘的意思就是,卸载后该盘处于全盘加密状态。为了再次访问到其中的数据,加载该盘时需要提供一些解密用的信息,比如密码、密钥、密钥文件等。提供有效解密信息后,该盘以透明方式呈现给用户,用户可以在资源管理器中无感知地访问该盘中所有数据。用户关机前应该卸载加密盘,避免加密盘意外受损。传统意义上的加密盘并非物理盘,而是一个普通文件,通过相应技术手段使这个文件以虚拟磁盘的形式出现在资源管理器中。加密盘的使用者可以备份、移动该文件到其他电脑,只要后者拥有同样的解密信息,即可异地加载加密盘。加密盘的使用方式与带密码的压缩包或者GPG加密过的文件迥异,加密盘更贴近坏人们保存秘密信息的原始需求。

过去很多年里用TrueCrypt,后来坊间传说NSA能搞它,再后来7.2版之后TrueCrypt停止开发维护,但7.2版仍能在Win10中使用。

http://www.truecrypt.org/

它有个后继者:

VeraCrypt
https://en.wikipedia.org/wiki/VeraCrypt
https://www.veracrypt.fr/en/Home.html
https://www.veracrypt.fr/en/Release%20Notes.html
https://www.veracrypt.fr/en/Downloads.html
https://github.com/veracrypt/VeraCrypt
https://github.com/veracrypt/VeraCrypt/releases
https://sourceforge.net/projects/veracrypt/
https://sourceforge.net/projects/veracrypt/files/

VeraCrypt还在开发维护。TrueCrypt、VeraCrypt都是第三方开源软件。

Win10有自带的BitLocker技术,该技术在Win7中就已出现,一般用于加密物理盘。物理盘一般都很大,坏人们需要保护的秘密信息可能不会超过1G,所以TrueCrypt式的加密盘是一种很常见的原始需求。可以结合Win10自带的BitLocker+VHD技术以接近TrueCrypt加密盘的效果。

本文只以Win10举例说明技术方案,早期Windows应该没毛病。

☆ 创建VHD

VHD就是个普通文件,但可以被Win10加载成虚拟盘,出现在资源管理器中。

diskmgmt.msc
  操作
    创建VHD

BitLocker+VHD替换TrueCrypt及其后继VeraCrypt

在弹出的界面中对即将创建的VHD进行配置:

位置          <path><filename>.vhdx
虚拟硬盘大小  128MB
虚拟硬盘格式  VHDX(X)
虚拟硬盘类型  动态扩展(D)

位置任意,想放哪就放哪,放U盘也可以。大小不能太小,假设设成64MB,将来BitLocker加密该VHD时会提示由于目标盘太小无法进行加密操作,这是BitLocker技术原理导致的限制,不是VHD本身的限制,VHD本身可以创建很小的虚拟盘。硬盘格式还有另一种VHD(V),这种最大支持2TB的虚拟盘,其实也够用;如果选VHDX(X),有好处也有坏处,好处包括耐造,坏处主要是向后兼容性,Win8之前不支持。硬盘类型可以选"固定大小(F)",一步到位分配空间,"动态扩展(D)"则是随用随增加,这会导致NTFS层面的碎片化。

上述参数只是示例,根据个人技术经验结合原始需求进行配置,不要照搬之。

☆ 初始化VHD

BitLocker+VHD替换TrueCrypt及其后继VeraCrypt

在diskmgmt.msc中选中刚创建的VHD,在VHD最左侧点击右键,选择"初始化磁盘"。

BitLocker+VHD替换TrueCrypt及其后继VeraCrypt

在弹出的界面中将磁盘分区形式设成"GPT(GUID分区表)(G)",另一种是"MBR(主引导记录)(M)",我选GPT。GPT支持的容量大,灾难恢复中耐造,但早期Windows不支持,Win7支持。

和前面"创建VHD"一样,根据个人技术经验结合原始需求进行配置,不要照搬之。

☆ 格式化VHD

BitLocker+VHD替换TrueCrypt及其后继VeraCrypt

在diskmgmt.msc中选中刚初始化的VHD,在VHD最右侧点击右键,选择"新建简单卷"。

BitLocker+VHD替换TrueCrypt及其后继VeraCrypt

BitLocker+VHD替换TrueCrypt及其后继VeraCrypt

后面就是常规格式化NTFS分区,没啥好说的,一路继续即可。

☆ 加载VHD

有多种办法加载VHD,下面是其中两种:

资源管理器
  右键选中"<path><filename>.vhdx"
    装载

diskmgmt.msc
  操作
    附加VHD
      选中"<path><filename>.vhdx"

加载VHD后,资源管理器中出现新的盘符,把它当成普通盘用即可,只不过所有数据都在.vhdx文件中。

☆ 加密VHD

假设VHD盘符是I,在资源管理器中右键选中I盘,选择"启用BitLocker(B)"。

BitLocker+VHD替换TrueCrypt及其后继VeraCrypt

提示"选择希望解锁此驱动器的方式",显然应该选"使用密码解锁驱动器(P)",然后输入密码。此处密码有长度限制,太短了会提示失败,但强度没有要求,12345678就可以,当然,你不会这么傻的。

BitLocker+VHD替换TrueCrypt及其后继VeraCrypt

提示"你希望如何备份恢复密钥",我选的是"保存到文件(F)",这会生成如下形式的文件:

BitLocker+VHD替换TrueCrypt及其后继VeraCrypt

这是文件全名。里面的内容是:

BitLocker+VHD替换TrueCrypt及其后继VeraCrypt

内容中的"恢复密钥"是关键,保存这个TXT的主要目的是保存"恢复密钥"。前面设过的密码(假设是12345678)和这个"恢复密钥"是逻辑或的关系,只要拥有二者之一,就可以解密VHD,否则不用想了。

BitLocker+VHD替换TrueCrypt及其后继VeraCrypt

提示"选择要加密的驱动器空间大小",由于是新创建的VHD,所以选"仅加密已用磁盘空间(最适合于新电脑或新驱动器,且速度较快)(U)"。另一种是"加密整个驱动器(最适合于正在使用中的电脑或驱动器,但速度较慢)(E)",我们这个流程下来不需要选这个。简单说一下这两种选择背后的区别;假设某个盘(不论是物理盘还是VHD)在未加密状态下使用过很久,中间删除过某些敏感文件,理论上这些被删除的敏感文件有可能被恢复,比如R-Studio、WinHex以及Win10自己的winfr就可以干这事;如果选"仅加密已用磁盘空间",相当于不处理那些被删除的敏感文件,如果选"加密整个驱动器",那些被删除的敏感文件将不再有机会被恢复。

BitLocker+VHD替换TrueCrypt及其后继VeraCrypt

提示"选择要使用的加密模式",我选"新加密模式(最适合用于此设备上的固定驱动器)(N)"。另一种是"兼容模式(最适合用于可从此设备移动的驱动器)(C)"。新加密模式用了所谓XTS-AES,而不是传统标准AES,早期Win10都不支持,如果加密VHD会在早期Windows中加载,此处应该选兼容模式,否则应该选新加密模式。对于在本机使用的加密盘,显然没必要选兼容模式。

BitLocker+VHD替换TrueCrypt及其后继VeraCrypt

最后点击"开始加密",耗时随VHD大小而变化,越大越耗时,本例128MB,很快就结束了,会提示"加密已完成"。

BitLocker+VHD替换TrueCrypt及其后继VeraCrypt

至此写入该VHD的一切数据都将被透明加密,读取时被透明解密,用户感受不到加解密过程。

BitLocker+VHD替换TrueCrypt及其后继VeraCrypt

☆ 卸载VHD

有多种办法卸载VHD,下面是其中两种:

在资源管理器中选中目标VHD,右键菜单选择"弹出"。

在diskmgmt.msc中选中目标VHD,在VHD最左侧点击右键,选择"分离VHD",这是"附加VHD"的逆操作。

还有其他命令行办法,本质是一样的。卸载后的VHD就是普通文件,随便备份、移动。需要注意的是,在备份、移动VHD之前务必卸载VHD,不然很可能损坏之,这很好理解吧,使用中的物理盘也不能随便热拔啊。

☆ 重新加载加密过的VHD

资源管理器
  右键选中"<path><filename>.vhdx"
    装载

然后在资源管理器中点击目标VHD盘符,弹出对话框,提示"输入密码以解锁此驱动器",此时输入前面指定的密码(比如12345678)即可。

BitLocker+VHD替换TrueCrypt及其后继VeraCrypt

也可以点击对话框上的"更多选项"、"输入恢复密钥",此时输入前面那个TXT中的恢复密钥即可。

BitLocker+VHD替换TrueCrypt及其后继VeraCrypt

BitLocker+VHD替换TrueCrypt及其后继VeraCrypt

这就是前面说过的,密码和恢复密钥地位相当,有一个即可解密VHD;但二者不是一回事,提示输入密码的地方输入恢复密钥是解不了密的。

如果加载VHD后未能看到前述对话框,可在资源管理器中右键选中目标VHD盘,选择"解锁驱动器(U)",这样肯定能看到前述对话框。

至此已经完全接近TrueCrypt加密盘的效果,迁移数据就是复制、粘贴而已。

☆ 修改加密VHD的密码

在资源管理器中右键选中目标VHD盘,选择"更改BitLocker密码"。也可以在目标VHD盘右键菜单中选择"管理BitLocker",有更丰富的操作等着你:

BitLocker+VHD替换TrueCrypt及其后继VeraCrypt

备份恢复密钥
更改密码
删除密码
启用自动解锁  // 一般来说需要有TPM硬件
关闭BitLocker // 关闭本驱动器上的BitLocker

还可以直接从控制面板进入"BitLocker驱动器加密",选中目标盘符。

☆ BitLocker若干QA

1) PC硬件没有TPM能用BitLocker吗

首先,没有TPM也能用BitLocker,即使加密C盘这种系统盘也没问题,但需要其他配置,这超出本文范畴,不展开。如有此需求,放狗搜,大把文章讲如何做。

其次,本文目标是接近TrueCrypt加密盘的效果,这种情况下完全不需要TPM,也不需要gpedit.msc介入。

2) 检查本机TPM状态

devmgmt.msc看有没有"安全设备-受信任的平台模块"

BitLocker+VHD替换TrueCrypt及其后继VeraCrypt

tpm.msc是否提示"Compatible TPM cannot be found"

BitLocker+VHD替换TrueCrypt及其后继VeraCrypt

3) 控制面板中没有"BitLocker驱动器加密"

有多种原因可能导致这个现象。

首先,Home版Win10就是没有,官方声称Home版不支持BitLocker。当然,这是官方的营销策略,如果你手头有Home版的安装介质,并且正在安装阶段,则有机会通过命令行启用BitLocker。有兴趣者请放狗。

其次,可能是相关服务状态不符合要求。BitLocker可能涉及三个服务:

BDESVC

    BitLocker Drive Encryption Service

EFS

    Encrypting File System (EFS)

ShellHWDetection

    Shell Hardware Detection

这三个服务启动方式设成Manual(手动)即可,不需要设成自动。一般来说,重点检查第三个服务(Shell Hardware Detection),该服务历史上与U盘自动运行功能相关,过去我们做安全加固,都是直接禁用它的,不知何时与BitLocker、TPM扯上关系了。假设禁用ShellHWDetection服务,控制面板中没有"BitLocker驱动器加密",点击"Manage BitLocker"没反应。一般人不会碰上这个坑。

至于"BitLocker Drive Encryption Service"、"Encrypting File System (EFS)",保持其缺省手动启动方式即可,不需要显式启动它们,不需要特别关注它们。

4) 全局关闭BitLocker

有多种方式全局关闭BitLocker,这里只说其中一种:

设置
  更新和安全
    设备加密

在这里全局关闭BitLocker,所有驱动器上的BitLocker都将被关闭。

☆ 后记

本文没有介绍BitLocker的技术原理,没有介绍BitLocker的其他用法,只是围绕"接近TrueCrypt加密盘的效果"这个原始需求介绍了"BitLocker+VHD"方案。本文介绍的操作步骤属于充分非必要,有很多其他技术途径可达同一目标。

我很少写这么细致的纯操作方面的科普文章,大多是提纲挈领介绍一下要点,抱着相信群众(偷懒)的心态。今天写这么细,主要是考虑到可能不少非IT朋友有这个原始需求,TA们总想着藏点啥,偶尔1024一把也未为不可。

此外,万一哪天女魔头要用这种功能时,我会把那个TXT弄走。

最后,祝大家躲猫猫愉快。


本文始发于微信公众号(青衣十三楼飞花堂):BitLocker+VHD替换TrueCrypt及其后继VeraCrypt

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: