Laisky's Notes前文介绍了 TPM 的 PCRs 会度量和记录系统的状态链。 然后介绍一点点密码学基础,密码学上有一个函数叫做 KDF(Key derivation function)。一般在一个比较完善的密码管理系统里,比如 KMS(Key Management Service)只会持有一个或少量的 Root Key,或者叫 Master Key。然后在运行时,根据收到的请求,进行实时的密钥派生,派生的方法就是 new key = KDF(master key, new key info)。或者你就简单地记住:用一个…
前文提到实际的密码更复杂,现在就具体看看 BitLocker 的密钥生成和加密流程:
1. OS 生成一个加密磁盘的 AES 密钥 FVEK
2. 再生成一个用于加密 FVEK 的 VMK
3. 用 TPM PCR + PIN 加密 VMK
4. 将加密后的 VMK、FVEK 保存到磁盘头
5. 将 VMK 作为 RecoverKey 上传到 AD、个人账户中,或者由用户自行保管
6. 用 FVEK 对磁盘进行全盘加密
使用时,OS 启动后,使用 TPM PCR + PIN 解密 VMK,如果系统启动的全流程都未被篡改,就可以成功解密 VMK,然后用 VMK 解密 FVEK,最后再用 FVEK 解密磁盘。系统被篡改、TPM 被损坏、磁盘被换到其他机器都会导致无法解密,从而提高了磁盘数据的安全性,而且用户还完全无感知。
用户持有的是 PIN 和 VMK(恢复密钥),真实加密数据的 FVEK 永不出域。
这种设计在密钥体系中很常见,一般称为 hierarchy key structure,实际加密数据的密钥是永不出域的,出域的密钥都是可以随时轮替的。无论用户是要修改 PIN 还是修改 VMK,都不会影响到 FVEK。毕竟 FVEK 变化所导致的成本非常高昂,需要对所有数据进行重新加解密。
next: https://t.me/laiskynotes/78
1. OS 生成一个加密磁盘的 AES 密钥 FVEK
2. 再生成一个用于加密 FVEK 的 VMK
3. 用 TPM PCR + PIN 加密 VMK
4. 将加密后的 VMK、FVEK 保存到磁盘头
5. 将 VMK 作为 RecoverKey 上传到 AD、个人账户中,或者由用户自行保管
6. 用 FVEK 对磁盘进行全盘加密
使用时,OS 启动后,使用 TPM PCR + PIN 解密 VMK,如果系统启动的全流程都未被篡改,就可以成功解密 VMK,然后用 VMK 解密 FVEK,最后再用 FVEK 解密磁盘。系统被篡改、TPM 被损坏、磁盘被换到其他机器都会导致无法解密,从而提高了磁盘数据的安全性,而且用户还完全无感知。
用户持有的是 PIN 和 VMK(恢复密钥),真实加密数据的 FVEK 永不出域。
这种设计在密钥体系中很常见,一般称为 hierarchy key structure,实际加密数据的密钥是永不出域的,出域的密钥都是可以随时轮替的。无论用户是要修改 PIN 还是修改 VMK,都不会影响到 FVEK。毕竟 FVEK 变化所导致的成本非常高昂,需要对所有数据进行重新加解密。
next: https://t.me/laiskynotes/78