The stages of BitLocker startup are as follows:
- System integrity verification (if a TPM is present) Features of the computer and the Windows Boot Manager write values to the PCRs of the TPM as the boot process proceeds, including a measurement of the MBR executable code.
- User authentication (optional) If user authentication is configured, the Windows Boot Manager collects a key from USB storage or a PIN from the user.
- VMK retrieval The Windows Boot Manager requests that the TPM decrypt the VMK. If the hashes of the measurements written to the PCR match those taken when BitLocker was set up, the TPM will supply the VMK. If any measurement does not match the recorded value, the TPM does not supply the decryption key, and BitLocker gives the user the option to enter the recovery key.
- Operating system startup At this point, the Windows Boot Manager has validated the system integrity and now has access to the VMK. The VMK must be passed to the operating system loader; however, the Windows Boot Manager must avoid passing it to a potentially malicious operating system loader and thus compromising the security of the VMK. To ensure that the operating system loader is valid, the Windows Boot Manager verifies that operating system loader executables match a set of requirements. The Windows Boot Manager also verifies that the boot configuration data (BCD) settings have not been modified. It does so by comparing them to a previously generated digital signature known as a message authenticity check (MAC). The BCD MAC is generated using the VMK, ensuring that it cannot be easily rewritten.After the operating system loader is started, Windows can use the VMK to decrypt the FVEK and then use the FVEK to decrypt the BitLocker-encrypted volume. With access to the unencrypted data on the volume, Windows loads normally.
Prior to transitioning to the operating system, the OS Loader ensures that it will hand off at most one key (VMK) to the operating system. Prior to handing off the key to the operating system, the following conditions must apply:
- All features, up to and including BOOTMGR, must be correct. If they are not correct, the VMK will not be available.
- The VMK must be correct to validate the MAC of the metadata. BOOTMGR verifies this MAC.
- OS Loader must be the loader approved by metadata associated with the VMK. Verified by BOOTMGR.
- BCD settings must be the settings approved by metadata associated with the VMK. Verified by BOOTMGR.
- The VMK must correctly decrypt the FVEK stored in the validated metadata. Verified by BOOTMGR.
- The FVEK must successfully decrypt data stored on the volume. An incorrect FVEK will result in invalid executable code or invalid data. In some cases, this is caught by code integrity.
- The Master File Table (MFT) must be encrypted by the correct FVEK to access all files.
- Phase 0 drivers, including Fvevol.sys, must be encrypted by the correct FVEK.
- Registry must be encrypted by the correct FVEK.
- Kernel and Hardware Abstraction Layer (HAL) must be encrypted by the correct FVEK.
- Phase 1 features must be encrypted by the FVEK because Fvevol.sys (encrypted by the FVEK) will only decrypt using the same FVEK.
- Phase 2 features must also be encrypted by the FVEK as stated in the previous entry.
The last point is particularly important, and it is true only if the data on the volume is entirely encrypted. In other words, a volume in which encryption is paused halfway through is not secure.