攻击者从 RAM 分析中获得了一些 128 位 TrueCrypt 密钥。他能做什么?

信息安全 加密 AES 取证 真加密
2021-09-07 03:51:18

我正在尝试为我的研究模拟可能的攻击场景。

我有一个图像,它有一个加密磁盘,由 TrueCrypt 加密(确认)。TrueCrypt 也安装在图像本身上。

在对图像进行 RAM 分析期间,攻击者使用 AESKeyFind 找到了一些密钥。样本输出是;

FOUND POSSIBLE 128-BIT KEY AT BYTE 35b880c 

KEY: b4ce75c857163e668818d0d76c46bad2

EXTENDED KEY: 
b4ce75c857163e668818d0d76c46bad2
ef3ac098b82cfefe30342e295c7294fb
ad18cfd21534312c25001f0579728bfe
e9257464fc114548d9115a4da063d1b3
1a1b1984e60a5ccc3f1b06819f78d732
b6153a5f501f66936f046012f07cb720
86bc8dd3d6a3eb40b9a78b5249db3c72
7f57cde8a9f426a81053adfa59889188
3bd6092392222f8b82718271dbf913f9
b9ab909a2b89bf11a9f83d6072012e99
f39a7edad813c1cb71ebfcab03ead232

CONSTRAINTS ON ROWS:
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000

假设没有其他软件使用加密密钥,攻击者如何访问 TrueCrypt 卷?他最终会破解密钥以获得明文密码,还是可以将这个密钥用作密钥文件来打开卷?

2个回答

那不是 TrueCrypt 密钥。可以看到密钥本身长度为128位,轮密钥数为11,与128位AES一致。TrueCrypt 使用 256 位密钥,对于 AES,它使用 15 个圆形密钥,并且在 256 位上有更大的密钥。无论那个密钥是做什么用的,它都不是来自 TrueCrypt。不过,让我们假设您确实从内存中获得了 TrueCrypt 密钥,并且您手头有完整的 256 位主密钥。那么,可以用它做什么呢?

他最终能否破解密钥以获得明文密码

TrueCrypt 和较新的 VeraCrypt 不直接使用您的密码作为密钥。相反,它通过一个名为 PBKDF2 的非常慢的函数传递,该函数将您的 ASCII 密码转换为原始的二进制密钥。然而,TrueCrypt 甚至不使用这个原始密钥来加密卷。相反,使用该密钥加密单个主密钥(它本身在创建卷时随机生成),并且此加密的主密钥存储在磁盘上。当您输入密码时,它通过 PBKDF2 传递,生成的密钥用于解密主密钥。这个主密钥是缓存在内存中的,可供能够检索内存内容的攻击者使用。

虽然这确实意味着攻击者无法直接从缓存的主密钥中获取您的密码,但这并不意味着攻击者无法以其他方式攻击您的密码。如果他可以访问卷标头,他可以猜测候选密码并查看哪个解锁了驱动器。虽然这可以自动化,但缓慢的 PBKDF2 功能使除最弱密码之外的所有密码都变得乏味。

或者他可以使用这个密钥作为打开卷的密钥文件吗?

现在他可以做到。如果他可以访问此密钥,那么他绝对能够访问该卷并解密其中包含的任何数据。当然,因为他不能轻易地将密钥反转为你的明文密码,所以他不能在其他 TrueCrypt 卷或其他任何使用过密码的地方重复使用你的密码,至少在没有成功破解的情况下是这样。


如果您正在尝试专门从磁盘加密软件中恢复数据,那么在内存中简单地搜索加密密钥可能是不够的。这是因为许多磁盘加密软件,包括 TrueCrypt(古代版本除外)、VeraCrypt 和 LUKS,都使用一种称为 XTS 的特殊加密模式。这种加密模式实际上需要两个密钥,称为主密钥和调整密钥。为了解密磁盘,您需要获得两个256 位密钥。XTS 模式的工作原理如下:

XTS 模式

这两个密钥都是标准的 256 位 AES 密钥,但它们都是解密磁盘所必需的。这两个密钥是从主密钥派生的,主密钥本身以前面提到的加密形式存储在磁盘上。直接从您的密码派生的密钥不会存储在内存中,因为它仅用于短暂地解密主密钥,然后被丢弃。

Truecrypt 使用256 位密钥作为标头密钥HMAC-SHA-512、HMAC-RIPEMD-160、HMAC-Whirlpool 用于不可逆的密钥生成功能。即使您获得完整大小的密钥,您也无法获得密码。