基于Win7的Bitlocker加密分析及实战思路

栏目: 编程工具 · 发布时间: 5年前

内容简介:本文章将深入讲解Bitlocker的加密机制,并提供实战的思路供读者操作,基于的是windows7下未全盘加密的NTFS文件系统。Windows 7 SP1 x64

基于Win7的Bitlocker加密分析及实战思路

本文章将深入讲解Bitlocker的加密机制,并提供实战的思路供读者操作,基于的是windows7下未全盘加密的NTFS文件系统。

0x01 示例案例:

Windows 7 SP1 x64

0x02 Bitlocker加密分析

BitLocker驱动器加密(BDE)是Microsoft Windows在Vista中使用的volume加密。BitLocker驱动器加密(BDE)有多个版本:

  • BitLocker Windows Vista
  • TODO: BitLocker Windows 2008
  • BitLocker Windows 7
  • BitLocker To Go
  • BitLocker Windows 8
  • BitLocker Windows 10

BitLocker Windows Vista和BitLocker Windows 7都旨在加密固定存储介质(如硬盘)上的NTFS卷。BitLocker To Go是在Windows 7中引入的,旨在加密可移动驱动器,例如FAT文件系统的可移动存储设备(U盘),可移动驱动器上的NTFS卷被视为固定存储介质上的NTFS卷。

BitLocker标识符(GUID):4967d63b-2e29-4ad8-8399-f6a339e3d0

BitLocker To Go标识符(GUID):4967d63b-2e29-4ad8-8399-f6a339e3d01

BitLocker使用不同类型的密钥加密存储介质。

1)卷主密钥(VMK)

卷主密钥(VMK)的大小为256位,存储在多个FVE卷主密钥(VMK)结构中。VMK存储时使用恢复密钥、外部密钥或TPM加密。

VMK也可能不作为加密密钥存储,这样的VMK称为清除密钥。

2)全卷加密密钥(FVEK)

全卷加密密钥(FVEK)使用卷主密钥(VMK)加密存储。FVEK的大小取决于使用的加密方法:

  • 对于AES 128位,密钥大小为128位
  • 对于AES 256位,密钥大小为256位

当使用Elephant Diffuser时,保存FKEV结构的关键数据大小总是512位。第一个256位用于保存FVEK,另一个256位用于保留TWEAK键。当加密方法为AES 128位时,256位中只有128位被使用。

3)TWEAK密钥

TWEAK使用卷主密钥(VMK)加密存储。TWEAK密钥的大小取决于使用的加密方法:

  • 对于AES 128位,密钥是128位大小
  • 对于AES 256位,密钥的大小为256位

TWEAK密钥仅在使用Elephant Diffuser时出现。

4)恢复密钥

BitLocker提供恢复(或数字)密码来解锁加密数据。恢复密码用于确定恢复密钥。

恢复密码示例:

471207-278498-422125-177177-561902-537405-468006-693451

有效的恢复密码由48位数字组成,分为8组,其中每组数字都可以被11整除,余数为0。每组数字除以11的结果是一个16位的值,单独的16位值组成128位的密钥。

5)清除密钥

清除密钥是存储在卷上的未受保护的256位密钥,用于解密VMK。在解密加密卷时使用它。

3.加密方法

BitLocker使用不同类型的加密方法,为了加密扇区数据,它使用带有或不带有Elephant Elephant Diffuser的AES-CBC模式。为了加密密钥数据,BitLocker使用AES-CCM模式。

1)AES-CBC

加密和解密都使用:

AES-CBC与FVEK解密扇区数据

加密过程:

  • 与扇区密钥key异或
  • Elephant Elephant Diffuser A
  • Elephant Elephant Diffuser B
  • AES-CBC with FVEK

解密过程:

  • AES-CBC with FVEK
  • Elephant Elephant Diffuser B
  • Elephant Elephant Diffuser A
  • 与扇区密钥key异或

3)AES-CCM

密钥数据使用初始化向量为0的AES-CCM模式加密。

BitLocker Windows 7(及更高版本)卷标题与BitLocker Windows Vista卷标题类似于NTFS卷标题。卷标头大小为512字节,包括:

基于Win7的Bitlocker加密分析及实战思路

5.FVE元数据块

BitLocker卷包含3个FVE元数据块。每个FVE元数据块包括:

  • 块头
  • 元数据标题
  • 一组元数据条目
  • 填充0字节值(在Windows 8中可见)

1)FVE元数据块标头

大小为64字节,包括:

基于Win7的Bitlocker加密分析及实战思路

解密BitLocker时会从后向前解密。因此,加密的卷大小包含仍然加密(或需要解密)的卷的字节数。

2)FVE元数据标题

版本1,大小为48字节,包括:

基于Win7的Bitlocker加密分析及实战思路

3)FVE元数据条目

版本1,大小可变,包括:

基于Win7的Bitlocker加密分析及实战思路

6. BitLocker外键(BEK)文件

BitLocker外键(BEK)文件通常为156字节大小,包括:

  • 一个文件头
  • 一组元数据条目

1)BEK文件头

BEK文件头类似于FVE元数据头,大小为48字节,包括:

基于Win7的Bitlocker加密分析及实战思路 文件中的密钥标识符必须与FVE卷主密钥(VMK)中的密钥标识符匹配。

2)BEK元数据条目

BEK元数据条目的格式类似于FVE元数据条目的格式。

BEK文件中的元数据由FVE外部密钥组成,该外部密钥包含256位未受保护的密钥数据。

VMK的标识符应与BEK文件头中的标识符匹配。

0x03 实战思路

通过上述讲解,可知成功解密的关键,是拿到bitlocker的FVEK和TWEAK,我们可以利用volatility的bitlocker插件对休眠文件、内存文件进行分析提取它。这里我用了一个win7硬盘试验,成功解密。

1)确定分区布局并识别BitLocker卷

基于Win7的Bitlocker加密分析及实战思路

从扇区41947136开始的最后一个分区(该硬盘原有两个分区,C分区和D分区,其中C分区未被加密,D分区是经过bitlocker加密的加密卷)是受BitLocker保护的。可以通过查看文件系统头来验证它。发现“-FVE-FS-”签名。

基于Win7的Bitlocker加密分析及实战思路

2)使用bitlocker插件提取FVEK

该插件扫描内存映像以查找BitLocker加密分配(内存池)并提取AES密钥(FVEK: 完整的卷加密密钥)。

基于Win7的Bitlocker加密分析及实战思路

我们可以看到分析出了FVEK以及TWEAK,采取的加密方式为AES-128,如果是win8以上,可能会出现AES-256。

3)解密并访问卷

基于Win7的Bitlocker加密分析及实战思路

解密成功!


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

处理器虚拟化技术

处理器虚拟化技术

邓志 / 电子工业出版社 / 2014-5-1 / CNY 109.00

《处理器虚拟化技术》针对在Intel处理器端的虚拟化技术(Intel Virtualization Technology for x86,即Intel VT-x)进行全面讲解。在Intel VT-x技术下实现了VMX(Virtual-Machine Extensions,虚拟机扩展)架构平台来支持对处理器的虚拟化管理。因此,VMX架构是Intel VT-x技术的核心。《处理器虚拟化技术》内容围绕V......一起来看看 《处理器虚拟化技术》 这本书的介绍吧!

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具