标题: BitLocker+VHD替换TrueCrypt及其后继VeraCrypt 创建: 2020-11-13 16:21 更新: 链接: https://scz.617.cn/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 在弹出的界面中对即将创建的VHD进行配置: 位置 \.vhdx 虚拟硬盘大小 128MB 虚拟硬盘格式 VHDX(X) 虚拟硬盘类型 动态扩展(D) 位置任意,想放哪就放哪,放U盘也可以。大小不能太小,假设设成64MB,将来 BitLocker加密该VHD时会提示由于目标盘太小无法进行加密操作,这是BitLocker技 术原理导致的限制,不是VHD本身的限制,VHD本身可以创建很小的虚拟盘。硬盘格式 还有另一种VHD(V),这种最大支持2TB的虚拟盘,其实也够用;如果选VHDX(X),有好 处也有坏处,好处包括耐造,坏处主要是向后兼容性,Win8之前不支持。硬盘类型可 以选"固定大小(F)",一步到位分配空间,"动态扩展(D)"则是随用随增加,这会导致 NTFS层面的碎片化。 上述参数只是示例,根据个人技术经验结合原始需求进行配置,不要照搬之。 ☆ 初始化VHD 在diskmgmt.msc中选中刚创建的VHD,在VHD最左侧点击右键,选择"初始化磁盘"。在 弹出的界面中将磁盘分区形式设成"GPT(GUID分区表)(G)",另一种是 "MBR(主引导记录)(M)",我选GPT。GPT支持的容量大,灾难恢复中耐造,但早期 Windows不支持,Win7支持。 和前面"创建VHD"一样,根据个人技术经验结合原始需求进行配置,不要照搬之。 ☆ 格式化VHD 在diskmgmt.msc中选中刚初始化的VHD,在VHD最右侧点击右键,选择"新建简单卷"。 后面就是常规格式化NTFS分区,没啥好说的,一路继续即可。 ☆ 加载VHD 有多种办法加载VHD,下面是其中两种: 资源管理器 右键选中"\.vhdx" 装载 diskmgmt.msc 操作 附加VHD 选中"\.vhdx" 加载VHD后,资源管理器中出现新的盘符,把它当成普通盘用即可,只不过所有数据 都在.vhdx文件中。 ☆ 加密VHD 假设VHD盘符是I,在资源管理器中右键选中I盘,选择"启用BitLocker(B)"。 提示"选择希望解锁此驱动器的方式",显然应该选"使用密码解锁驱动器(P)",然后 输入密码。此处密码有长度限制,太短了会提示失败,但强度没有要求,12345678就 可以,当然,你不会这么傻的。 提示"你希望如何备份恢复密钥",我选的是"保存到文件(F)",这会生成如下形式的 文件: BitLocker 恢复密钥 235974A9-779B-43C2-9589-4A9BF165B4A5.TXT 这是文件全名。里面的内容是: -------------------------------------------------------------------------- BitLocker 驱动器加密恢复密钥 要验证这是否为正确的恢复密钥,请将以下标识符的开头与电脑上显示的标识符值进行比较。 标识符: 235974A9-779B-43C2-9589-4A9BF165B4A5 如果以上标识符与电脑显示的标识符匹配,则使用以下密钥解锁你的驱动器。 恢复密钥: 117238-509905-579238-683639-555929-339427-065978-625636 如果以上标识符与电脑显示的标识符不匹配,则该密钥不是解锁你的驱动器的正确密钥。 请尝试其他恢复密钥,或参阅 https://go.microsoft.com/fwlink/?LinkID=260589 以获得其他帮助。 -------------------------------------------------------------------------- 内容中的"恢复密钥"是关键,保存这个TXT的主要目的是保存"恢复密钥"。前面设过 的密码(假设是12345678)和这个"恢复密钥"是逻辑或的关系,只要拥有二者之一,就 可以解密VHD,否则不用想了。 提示"选择要加密的驱动器空间大小",由于是新创建的VHD,所以选"仅加密已用磁盘 空间(最适合于新电脑或新驱动器,且速度较快)(U)"。另一种是"加密整个驱动器(最 适合于正在使用中的电脑或驱动器,但速度较慢)(E)",我们这个流程下来不需要选 这个。简单说一下这两种选择背后的区别;假设某个盘(不论是物理盘还是VHD)在未 加密状态下使用过很久,中间删除过某些敏感文件,理论上这些被删除的敏感文件有 可能被恢复,比如R-Studio、WinHex以及Win10自己的winfr就可以干这事;如果选" 仅加密已用磁盘空间",相当于不处理那些被删除的敏感文件,如果选"加密整个驱动 器",那些被删除的敏感文件将不再有机会被恢复。 提示"选择要使用的加密模式",我选"新加密模式(最适合用于此设备上的固定驱动器 )(N)"。另一种是"兼容模式(最适合用于可从此设备移动的驱动器)(C)"。新加密模式 用了所谓XTS-AES,而不是传统标准AES,早期Win10都不支持,如果加密VHD会在早期 Windows中加载,此处应该选兼容模式,否则应该选新加密模式。对于在本机使用的 加密盘,显然没必要选兼容模式。 最后点击"开始加密",耗时随VHD大小而变化,越大越耗时,本例128MB,很快就结束 了,会提示"加密已完成"。 至此写入该VHD的一切数据都将被透明加密,读取时被透明解密,用户感受不到加解 密过程。 ☆ 卸载VHD 有多种办法卸载VHD,下面是其中两种: 在资源管理器中选中目标VHD,右键菜单选择"弹出"。 在diskmgmt.msc中选中目标VHD,在VHD最左侧点击右键,选择"分离VHD",这是"附加 VHD"的逆操作。 还有其他命令行办法,本质是一样的。卸载后的VHD就是普通文件,随便备份、移动。 需要注意的是,在备份、移动VHD之前务必卸载VHD,不然很可能损坏之,这很好理解 吧,使用中的物理盘也不能随便热拔啊。 ☆ 重新加载加密过的VHD 资源管理器 右键选中"\.vhdx" 装载 然后在资源管理器中点击目标VHD盘符,弹出对话框,提示"输入密码以解锁此驱动器", 此时输入前面指定的密码(比如12345678)即可。也可以点击对话框上的"更多选项"、 "输入恢复密钥",此时输入前面那个TXT中的恢复密钥即可。这就是前面说过的,密 码和恢复密钥地位相当,有一个即可解密VHD;但二者不是一回事,提示输入密码的 地方输入恢复密钥是解不了密的。 如果加载VHD后未能看到前述对话框,可在资源管理器中右键选中目标VHD盘,选择 "解锁驱动器(U)",这样肯定能看到前述对话框。 至此已经完全接近TrueCrypt加密盘的效果,迁移数据就是复制、粘贴而已。 ☆ 修改加密VHD的密码 在资源管理器中右键选中目标VHD盘,选择"更改BitLocker密码"。也可以在目标VHD 盘右键菜单中选择"管理BitLocker",有更丰富的操作等着你: 备份恢复密钥 更改密码 删除密码 启用自动解锁 // 一般来说需要有TPM硬件 关闭BitLocker // 关闭本驱动器上的BitLocker 还可以直接从控制面板进入"BitLocker驱动器加密",选中目标盘符。 ☆ BitLocker若干QA 1) PC硬件没有TPM能用BitLocker吗 首先,没有TPM也能用BitLocker,即使加密C盘这种系统盘也没问题,但需要其他配 置,这超出本文范畴,不展开。如有此需求,放狗搜,大把文章讲如何做。 其次,本文目标是接近TrueCrypt加密盘的效果,这种情况下完全不需要TPM,也不需 要gpedit.msc介入。 2) 检查本机TPM状态 devmgmt.msc看有没有"安全设备-受信任的平台模块" tpm.msc是否提示"Compatible TPM cannot be found" 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弄走。 最后,祝大家躲猫猫愉快。