Bitlocker 可以拆分为bit locker,直接翻译的话就是比特锁,意思是每个 bit 都加密。Bitlocker 使用 AES 加密算法加密整个卷来保护数据。简单来说,BitLocker 会将 Windows 的安装分区或者其他用于保存文件的分区进行加密,并将**保存在硬盘之外的地方,并对早期启动组件完整性检查,合并到一起来增强数据保护。
BitLocker 主要有两种工作模式:TPM 模式和 U盘模式,同时为了实现更高程度的安全,我们还可以同时启用这两种模式。
有三种认证机制可以用来构建 Bitlocker。
上述的认证机制支持一下组合:
BitLocker的透明运行模式和用户认证模式使用 TPM 硬件检测 BIOS 和 MBR 预加载环境是否有未经授权的改变。如果检测到任何未经授权的更改,BitLocker 将在 USB 设备上请求一个恢复**。该加***用于解密卷主**,并允许继续运行引导过程。
TPM(Trusted Platform Module,可信平台模块)是根据国际行业标准组织可信计算组(TCG,其中包括微软、英特尔和惠普等公司)规范制作的模块,可以是dTPM真实硬件也可以是fTPM等由固件模拟的软件模块。TPM 1.2最早大规模商用,现在TPM2.0也开始广泛使用了。
TPM 的主要作用是利用安全的经过验证的加***带来强大的设备安全性。TPM 内置完全独立的计算和存储模块,不受其他硬件和软件漏洞的影响 ,可以保证存储在 TPM 内的密码的安全。
TPM 有两个重要的**,其中的核心**是签注**,这是在生产过程中内置到 TPM 中的**,这个**的私钥绝对不会出现在 TPM 的外部或暴露给其他的软件,个人等。另一个关键的**是存储根**,该**也存储在 TPM 内,该**用来保护其他应用程序创建的**,使这些**只能通过被称为绑定的过程来解密。此**是动态创建的,只有在 TPM 初始化或其他应用程序获得所有权时,存储根**才会被创建。
TPM还可以通过平台配置寄存器(PCR)机制来记录系统的状态。这允许TPM进行预启动系统完整性检查,只有系统状态与上一次存储的 PCR 值相匹配,TPM 才会解密系统启动需要的**。
这里我们仅仅解释仅使用 TPM 的Bitlocker。解密流程如下:
图中所示的启动顺序解释如下:
其中SRK存储在TPM芯片中,它是整个过程的信任根。BitLocker通过检测PCR组,对主启动记录 (MBR) 代码、NTFS 启动扇区、NTFS 启动块、启动管理器和其他重要组件进行检查,如果被更改,则第2步将出错,要求输入recovery PIN值。
好了原理大概解释完了。接下来说说使用过程中的问题。
正常的加密保存恢复**就不说了,默认启用的 Bitlocker有一个问题:系统默认的模式是 TPM 模式(如果不选智能卡的话)。
也就是说如果系统正常启动的情况下, 系统的加***是存储在 TPM 中的,可以直接启动系统而无需输入任何密码。因为启动时 PCR 的值与预期的 PCR 值相匹配,TPM 会进入正常的启动流程。
说白了就是如果你的电脑被偷了,攻击者直接启动你的电脑并且你的系统密码为弱密码或者没有密码的话,那么 TPM 相当于不存在,数据没有一点安全性可言。如果你还启用了数据盘的在此计算机自动解锁的话,那就更惨了。
只有在启动环境发生变更的情况下才会要求输入恢复**,因为开启 Bitlocker 没有设置过密码,所以只有输入恢复**才能解密系统。
但是如果进行冷启动攻击的话是有机会拿到解***的。这里有一篇解密的文章。
所以这时候如果要保证数据安全的话需要开启 TPM 加 PIN 码模式,确保在启动之前输入正确的 PIN 码才能正常启动系统。这里我暂时没有使用此模式,因为感觉有点小麻烦。。。
这里就有一个合理的猜想:如果在开启 Bitlocker 之前,先在组策略中开启了 TPM 加 PIN 码模式的话,会不会在开启 Bitlocker 的时候就会提示设置密码?从而避免直接开启 Bitlocker 之后发现不用输入密码就进入系统了,还要去搜索怎么在开启了 Bitlocker 之后启用 PIN 码模式。在有时间了我回去试一下再来更新这个部分。
而且最新版本的 windows10 是默认启用 Bitlocker 加密的,启用 Bitlocker 加密只是**了一下,所以在加密时会感觉一瞬间就加密完成的错觉。
参考链接:
https://zh.wikipedia.org/zh-hans/BitLocker