BitLocker 密码更改

信息安全 加密
2021-08-25 17:44:03

我的团队最近在 Windows 7 主机上使用 Microsoft 的 BitLocker 加密一些硬盘驱动器。2TB 驱动器的初始加密需要几个小时才能完成。这一切都很好,花花公子。

然而,我担心的是,在更改密码后,这个过程是瞬间完成的。这对我来说没有意义,因为我假设 BitLocker 正在使用我提供的密码(或一些散列衍生物)来实际执行加密。如果是这种情况,那么驱动器应该需要完全解密,然后重新加密(几个小时的过程,对吗?)。

那么 BitLocker 是如何真正加密数据的呢?它是否使用隐藏在 Windows 代码深处的一些秘密值来执行加密?如果是这样,我的密码是否只是检查 Windows 是否允许解密?如果是这样,我真正从 BitLocker 获得什么保护,因为存储的加密密钥是一个可破解的加密密钥......

2个回答

BitLocker 使用称为代理键的东西。磁盘上的数据使用随机密钥(代理密钥)加密,然后使用从您的密码派生的第二个密钥(标头密钥)加密该密钥。然后将加密的代理密钥存储在卷标头中。

当您输入密码时,系统会从中派生出标头密钥,然后使用它来解密代理密钥,而代理密钥又用于解密数据。更改密码只是使用新的标头密钥重新加密该卷标头,而不是整个磁盘。

只是为了详细说明原始答案。实际上有两个“代理”键。有一种称为 FVEK(全卷加密密钥)的密钥派生出来,实际上用于对磁盘上的数据执行加密,然后有一个 MVK(主卷密钥)用于加密标头中的 FVEK。它是 MVK,然后由用于访问卷的密钥加密,例如密码派生密钥、恢复密钥、恢复密码、TPM 密码或 USB 密钥。如果最后一级密钥之一被泄露,并且攻击者在使用该密钥时已经访问了磁盘,那么是的,整个结构都被泄露了。

另一方面,如果密码被泄露,但您保留了对磁盘的控制权(并且没有人提前备份您的标头),那么只需更改密码即可重新加密 MVK,并删除由旧密码加密的 MVK。