{"id":13497597,"url":"https://github.com/nsacyber/BitLocker-Guidance","last_synced_at":"2025-03-28T22:31:47.522Z","repository":{"id":88947059,"uuid":"121265769","full_name":"nsacyber/BitLocker-Guidance","owner":"nsacyber","description":"Configuration guidance for implementing BitLocker. #nsacyber","archived":true,"fork":false,"pushed_at":"2019-07-24T12:37:17.000Z","size":54,"stargazers_count":120,"open_issues_count":0,"forks_count":37,"subscribers_count":19,"default_branch":"master","last_synced_at":"2024-10-31T14:36:27.202Z","etag":null,"topics":["audit","bitlocker","bitlocker-drive-encryption","encryption","full-disk-encryption","guidance","microsoft","nessus","windows"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nsacyber.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-02-12T15:42:52.000Z","updated_at":"2024-10-05T14:42:01.000Z","dependencies_parsed_at":"2023-06-13T07:00:33.891Z","dependency_job_id":null,"html_url":"https://github.com/nsacyber/BitLocker-Guidance","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nsacyber%2FBitLocker-Guidance","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nsacyber%2FBitLocker-Guidance/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nsacyber%2FBitLocker-Guidance/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nsacyber%2FBitLocker-Guidance/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nsacyber","download_url":"https://codeload.github.com/nsacyber/BitLocker-Guidance/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246110241,"owners_count":20725018,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audit","bitlocker","bitlocker-drive-encryption","encryption","full-disk-encryption","guidance","microsoft","nessus","windows"],"created_at":"2024-07-31T20:00:34.378Z","updated_at":"2025-03-28T22:31:47.254Z","avatar_url":"https://github.com/nsacyber.png","language":"HTML","funding_links":[],"categories":["Windows"],"sub_categories":["Ubuntu"],"readme":"# BitLocker Guidance\n\n## About Microsoft BitLocker\n\n[Microsoft BitLocker](https://docs.microsoft.com/en-us/windows/security/information-protection/bitlocker/bitlocker-overview) is a full volume encryption feature built into Windows. BitLocker is intended to protect data on devices that have been lost or stolen. BitLocker is available in the Ultimate and Enterprise editions of Windows Vista and Windows 7, in the Professional and Enterprise editions of Windows 8/8.1, and in the Pro, Enterprise, and Education editions of Windows 10. BitLocker is also included in the Windows Server releases of Windows since Window Server 2008.\n\nThe Windows 10 BitLocker modules have been [validated](https://csrc.nist.gov/projects/cryptographic-module-validation-program/validated-modules) against [NIST](http://www.nist.gov/) [FIPS 140-2](https://csrc.nist.gov/projects/cryptographic-module-validation-program) program multiple times:\n\n* June 2, 2016 certificate numbers [2601](https://csrc.nist.gov/projects/cryptographic-module-validation-program/certificate/2601), [2602](https://csrc.nist.gov/projects/cryptographic-module-validation-program/certificate/2602), and [2603](https://csrc.nist.gov/projects/cryptographic-module-validation-program/certificate/2603).\n* August 26, 2016 certificate numbers [2701](https://csrc.nist.gov/projects/cryptographic-module-validation-program/Certificate/2701), [2702](https://csrc.nist.gov/projects/cryptographic-module-validation-program/Certificate/2702), [2703](https://csrc.nist.gov/projects/cryptographic-module-validation-program/Certificate/2703).\n* January 26, 2017 certificate numbers [2932](https://csrc.nist.gov/projects/cryptographic-module-validation-program/Certificate/2932), [2933](https://csrc.nist.gov/projects/cryptographic-module-validation-program/Certificate/2933), and [2934](https://csrc.nist.gov/projects/cryptographic-module-validation-program/Certificate/2934).\n\n## About this repository\n\nThis repository hosts [Group Policy Objects](./Group%20Policy%20Objects/Computer/), [compliance checks](./Compliance), and [configuration tools](./Scripts) in support of implementing BitLocker.\n\nA BitLocker PowerShell module has been provided to aid in provisioning BitLocker on standalone systems. Group Policy and Microsoft SCCM 1910 CB can be used for [provisioning BitLocker](https://docs.microsoft.com/en-us/microsoft-desktop-optimization-pack/mbam-v25/) on domain joined systems.\n\n## BitLocker settings\n\nNSA Cybersecurity recommends using the newest BitLocker settings in the Microsoft [Windows Security Baseline](https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-security-baselines), available in the [Security Compliance Toolkit](https://docs.microsoft.com/en-us/windows/security/threat-protection/security-compliance-toolkit-10), with the following modifications:\n\n* The **Choose drive encryption method and cipher strength (Windows 10 [Version 1511] and later)** \u003e **Select the encryption method for removable data drives** policy under can be set to **XTS-AES 256-bit** *or* **AES-CBC 256-bit** instead of just AES-CBC 256-bit. AES-CBC 256-bit is allowed so operating system releases before Windows 10 1511 will be able read the encrypted media.\n* The **Deny write access to removable drives not protected by BitLocker** policy under **Computer Configuration \u003e Administrative Templates \u003e Windows Components \u003e BitLocker Drive Encryption \u003e Removable Data Drives** can be set to **Not Configured** instead of Enabled. BitLocker is not used for Data Loss Prevention in DoD.\n* The **Configure minimum PIN length for startup** policy under **Computer Configuration \u003e Administrative Templates \u003e Windows Components \u003e BitLocker Drive Encryption \u003e Operating System Drives** can be set to **6** or higher instead of 7. A value of 6 aligns with the Mobile Device Fundamentals Protection Profile.\n* The **Disable new DMA devices when this computer is locked** policy under **Computer Configuration \u003e Administrative Templates \u003e Windows Components \u003e BitLocker Drive Encryption** can be set to **Enabled** *or* **Not Configured**. This policy has [known issues](https://support.microsoft.com/en-us/help/4057300/devices-not-working-before-log-on-a-computer-running-windows-10-1709) that may lead to certain built-in devices (network, audio, etc) not working, or a slow system boot, in Windows 10 1709.\n* Any settings that reinforce default behaviors are considered optional for configuration:\n  * **Allow Secure Boot for integrity validation** policy under **Computer Configuration \u003e Administrative Templates \u003e Windows Components \u003e BitLocker Drive Encryption \u003e Operating System Drives** can be set to **Enabled** *or* **Not Configured**.\n* PIN settings are only required when a startup PIN is desired.\n\n### General settings\n\n**[View the policies as a CSV](./BitLockerPolicies.csv) which is easier to read than the table below and is also searchable.**\n\n| Policy Path | Policy Name | Policy State | Policy Value | Registry Path | Registry Value Name | Registry Data Value | Applicable Client | Applicable Server | Required for Applicable OS |\n| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |\n| Computer Configuration \u003e System \u003e Device Installation \u003e Device Installation Restrictions | Prevent installation of devices that match any of these Device IDs \u003e Prevent installation of devices that match any of these Device IDs: | Enabled | PCI\\CC_0C0A | HKLM\\Software\\Policies\\Microsoft\\Windows\\DeviceInstall\\Restrictions | DenyDeviceIDs | 1 | Windows Vista+ | Windows Server 2008+ | Yes |\n| Computer Configuration \u003e System \u003e Device Installation \u003e Device Installation Restrictions | Prevent installation of devices that match any of these Device IDs \u003e Prevent installation of devices that match any of these Device IDs: | Enabled | | HKLM\\Software\\Policies\\Microsoft\\Windows\\DeviceInstall\\Restrictions | DenyDeviceIDsRetroactive | 1 | Windows Vista+ | Windows Server 2008+ | Yes |\n| Computer Configuration \u003e System \u003e Device Installation \u003e Device Installation Restrictions | Prevent installation of devices using drivers that match these device setup classes \u003e Prevent installation of devices using drivers that match these device setup classes: | Enabled | {d48179be-ec20-11d1-b6b8-00c04fa372a7} | HKLM\\Software\\Policies\\Microsoft\\Windows\\DeviceInstall\\Restrictions | DenyDeviceClasses | 1 | Windows Vista+ | Windows Server 2008+ | Yes |\n| Computer Configuration \u003e System \u003e Device Installation \u003e Device Installation Restrictions | Prevent installation of devices using drivers that match these device setup classes \u003e Prevent installation of devices using drivers that match these device setup classes: | Enabled | | HKLM\\Software\\Policies\\Microsoft\\Windows\\DeviceInstall\\Restrictions | DenyDeviceClassesRetroactive | 1 | Windows Vista+ | Windows Server 2008+ | Yes |\n| Computer Configuration \u003e System \u003e Power Management \u003e Sleep Settings | Allow standby states (S1-S3) when sleeping (on battery) | Disabled | | HKLM\\Software\\Policies\\Microsoft\\Power\\PowerSettings\\abfc2519-3608-4c2a-94ea-171b0ed546ab | DCSettingIndex | 0 | Windows Vista+ | Windows Server 2008+ | Yes |\n| Computer Configuration \u003e System \u003e Power Management \u003e Sleep Settings | Allow standby states (S1-S3) when sleeping (plugged in) | Disabled | | HKLM\\Software\\Policies\\Microsoft\\Power\\PowerSettings\\abfc2519-3608-4c2a-94ea-171b0ed546ab | ACSettingIndex | 0 | Windows Vista+ | Windows Server 2008+ | Yes |\n| Computer Configuration \u003e Administrative Templates \u003e Windows Components \u003e BitLocker Drive Encryption \u003e Operating System Drives | Choose how BitLocker-protected operating system drives can be recovered |  Enabled |   | HKLM\\Software\\Policies\\Microsoft\\FVE | OSRecovery | 1 | Windows 7+ | Windows Server 2008 R2+ | Yes (domain joined systems only) |\n| Computer Configuration \u003e Administrative Templates \u003e Windows Components \u003e BitLocker Drive Encryption \u003e Operating System Drives | Choose how BitLocker-protected operating system drives can be recovered \u003e Save BitLocker recovery information to AD DS for operating system drives | | Save BitLocker recovery information to AD DS for operating system drives | HKLM\\Software\\Policies\\Microsoft\\FVE | OSActiveDirectoryBackup | 1 | Windows 7+ | Windows Server 2008 R2+ | Yes (domain joined systems only) |\n| Computer Configuration \u003e Administrative Templates \u003e Windows Components \u003e BitLocker Drive Encryption \u003e Operating System Drives | Choose how BitLocker-protected operating system drives can be recovered \u003e Configure storage of BitLocker recovery information to AD DS | | Store recovery passwords and key packages | HKLM\\Software\\Policies\\Microsoft\\FVE | OSActiveDirectoryInfoToStore | 1 | Windows 7+ | Windows Server 2008 R2+ | Yes (domain joined systems only) |\n| Computer Configuration \u003e Administrative Templates \u003e Windows Components \u003e BitLocker Drive Encryption \u003e Operating System Drives | Choose how BitLocker-protected operating system drives can be recovered \u003e Do not enable BitLocker until recovery information is stored in AD DS for operating system drives | | Do not enable BitLocker until recovery information is stored in AD DS for operating system drives | HKLM\\Software\\Policies\\Microsoft\\FVE | OSRequireActiveDirectoryBackup | 1 | Windows 7+ | Windows Server 2008 R2+ | Yes (domain joined systems only) |\n| Computer Configuration \u003e Administrative Templates \u003e Windows Components \u003e BitLocker Drive Encryption | Choose drive encryption method and cipher strength (Windows 10 [Version 1511] and later) \u003e Select the encryption method for operating system drives | Enabled | XTS-AES 256-bit | HKLM\\Software\\Policies\\Microsoft\\FVE | EncryptionMethodWithXtsOs | 7 | Windows 10 1511+ | Windows Server 2016+ | Yes |\n| Computer Configuration \u003e Administrative Templates \u003e Windows Components \u003e BitLocker Drive Encryption | Choose drive encryption method and cipher strength (Windows 10 [Version 1511] and later) \u003e Select the encryption method for fixed data drives | Enabled | XTS-AES 256-bit | HKLM\\Software\\Policies\\Microsoft\\FVE | EncryptionMethodWithXtsFdv | 7 | Windows 10 1511+ | Windows Server 2016+  | No |\n| Computer Configuration \u003e Administrative Templates \u003e Windows Components \u003e BitLocker Drive Encryption | Choose drive encryption method and cipher strength (Windows 10 [Version 1511] and later) \u003e Select the encryption method for removable data drives | Enabled | XTS-AES 256-bit *or* AES-CBC 256-bit | HKLM\\Software\\Policies\\Microsoft\\FVE | EncryptionMethodWithXtsRdv  | 4 *or* 7 | Windows 10 1511+ | Windows Server 2016+ | No |\n| Computer Configuration \u003e Administrative Templates \u003e Windows Components \u003e BitLocker Drive Encryption | Choose drive encryption method and cipher strength (Windows 8, Windows Server 2012, Windows 8.1, Windows Server 2012 R2, Windows 10 [Version 1507]) \u003e Select encryption method | Enabled | AES 256-bit | HKLM\\Software\\Policies\\Microsoft\\FVE | EncryptionMethodNoDiffuser | 4 | Windows 8 - Windows 10 1507 | Windows Server 2012 - Windows Server 2012 R2 | Yes |\n| Computer Configuration \u003e Administrative Templates \u003e Windows Components \u003e BitLocker Drive Encryption | Choose drive encryption method and cipher strength (Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2) \u003e Select encryption method | Enabled | AES 256-bit | HKLM\\Software\\Policies\\Microsoft\\FVE | EncryptionMethod | 2 | Windows Vista - Windows 7 | Windows Server 2008 - Windows Server 2008 R2 | Yes |\n| Computer Configuration \u003e Administrative Templates \u003e Windows Components \u003e BitLocker Drive Encryption | Disable new DMA devices when this computer is locked | Enabled | | HKLM\\Software\\Policies\\Microsoft\\FVE | DisableExternalDMAUnderLock | 1 | Windows 10 1703+ | N/A | Yes |\n| Computer Configuration \u003e Administrative Templates \u003e Windows Components \u003e BitLocker Drive Encryption \u003e Operating System Drives | Allow Secure Boot for integrity validation | Enabled *or* Not Configured | | HKLM\\Software\\Policies\\Microsoft\\FVE | OSAllowSecureBootForIntegrity *or* not exist | 1 *or* not exist | Windows 8+ | Windows Server 2012+ | No |\n\n### PIN related settings\n\nSome environments may desire additional protection provided by a BitLocker startup PIN. The settings are considered optional. The following settings may be configured when this scenario is desired.\n\n**[View the policies as a CSV](./BitLockerPINPolicies.csv) which is easier to read than the table below and is also searchable.**\n\n| Policy Path | Policy Name | Policy State | Policy Value | Registry Path | Registry Value Name | Registry Data Value | Applicable Client | Applicable Server | Required for Applicable OS |\n| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |\n| Computer Configuration \u003e Administrative Templates \u003e Windows Components \u003e BitLocker Drive Encryption \u003e Operating System Drives | Allow enhanced PINs for startup | Enabled | | HKLM\\Software\\Policies\\Microsoft\\FVE | UseEnhancedPin | 1 | Windows 7+ | Windows Server 2008 R2+ | Yes |\n| Computer Configuration \u003e Administrative Templates \u003e Windows Components \u003e BitLocker Drive Encryption \u003e Operating System Drives | Configure minimum PIN length for startup | Enabled | 6 *or* larger value  | HKLM\\Software\\Policies\\Microsoft\\FVE | MinimumPIN | 6 *or* larger | Windows 7+ | Windows Server 2008 R2+ | Yes |\n|  |  |  |  |  |  |  |  |  |  |\n\nAdministrators may need to configure [BitLocker Network Unlock](https://docs.microsoft.com/en-us/windows/security/information-protection/bitlocker/bitlocker-how-to-enable-network-unlock) to ensure systems apply updates without requiring a user be physically present to enter a PIN at system boot.\n\n## BitLocker Group Policy\n\nThe Microsoft Security Compliance Toolkit contains BitLocker Group Policy Objects (GPO) for each Windows 10 operating system release's Windows Security Baseline. The GPOs can be used to configure and manage domain joined as well as standalone systems.\n\nIf using MBAM to configure and manage BitLocker on domain joined systems, then download the [Microsoft Desktop Optimization Pack (MDOP) Group Policy templates](https://www.microsoft.com/en-us/download/confirmation.aspx?id=55531) since they contain the [MBAM Group Policy settings](https://docs.microsoft.com/en-us/microsoft-desktop-optimization-pack/mbam-v25/planning-for-mbam-25-group-policy-requirements).\n\n### Importing the BitLocker domain Group Policy\n\nUse the PowerShell Group Policy commands to import the BitLocker Group Policy into a domain. Run the following command on a domain controller from a PowerShell prompt running as a domain administrator.\n\n```powershell\nInvoke-ApplySecureHostBaseline -Path '.\\Secure-Host-Baseline' -PolicyNames 'BitLocker'\n```\n\n### Importing the AppLocker local Group Policy\n\nUse Microsoft's LGPO tool to apply the BitLocker Group Policy to a standalone system. Run the following command from a command prompt running as a local administrator.\n\n```powershell\nInvoke-ApplySecureHostBaseline -Path '.\\Secure-Host-Baseline' -PolicyNames 'BitLocker' -ToolPath '.\\LGPO\\lgpo.exe'\n```\n\n## Common issues\n\n### Conflicting BitLocker startup options\n\n* **Issue**: Error message: *The Group Policy settings for BitLocker startup options are in conflict and cannot be applied*. Error code: 0x8031005B\n* **Explanation**: The 'Require additional authentication at startup' policy description text can be misleading on how to correctly configure it.\n* **Resolution**:\n    1. Go to **Computer Configuration** \u003e **Administrative Templates** \u003e **Windows Components** \u003e **BitLocker Drive Encryption** \u003e **Operating System Drives**\n    1. Change the **Require additional authentication at startup** policy to configure all 4 dropdown menu options to **Allow** *OR* set 1 option to **Require** and the other 3 options to **Do not allow**.\n    1. Run **gpupdate /force** from the command line.\n\n### Support for pre-boot PIN entry on tablets\n\n* **Issue**: Error message: *No pre-boot keyboard detected. The user may not be able to provide required input to unlock the volume*. Error code: 0x803100B5\n* **Explanation**: BitLocker checks if the system is a tablet. If it is a tablet, then BitLocker displays the above error message when trying to use a PIN protector. BitLocker doesn't check if the system supports a pre-boot keyboard. Some tablets may have a BIOS that supports a software keyboard. For example, the [Dell Venue 11 Pro](http://www.dell.com/support/Article/us/en/19/SLN293013/EN), [Surface Pro 3, and Surface Pro 4](https://blogs.technet.microsoft.com/askpfeplat/2014/07/13/bitlocker-pin-on-surface-pro-3-and-other-tablets/) support entering a BitLocker PIN at pre-boot with a BIOS software keyboard. Some tablets may have detachable keyboard that works during pre-boot. For example, the Surface Pro 2 with [firmware update from March 2014](https://www.microsoft.com/surface/en-us/support/install-update-activate/pro-2-history), Surface Pro 3, and Surface Pro 4 support entering a BitLocker PIN at pre-boot with their detachable keyboards. If the tablet does not support a BIOS software keyboard or a detachable keyboard that works during pre-boot, then configuring the below policy will require a USB keyboard be plugged into the tablet to enter a BitLocker PIN at pre-boot. Contact the OEM to inquire about tablet support for this specific scenario.\n* **Resolution**:\n    1. Go to **Computer Configuration** \u003e **Administrative Templates** \u003e **Windows Components** \u003e **BitLocker Drive Encryption**\n    1. Set the **Enable use of BitLocker authentication requiring preboot keyboard input on slates** policy to **Enabled**.\n    1. Run **gpupdate /force** from the command line.\n\n## License\n\nSee [LICENSE](./LICENSE.md).\n\n## Contributing\n\nSee [CONTRIBUTING](./CONTRIBUTING.md).\n\n## Disclaimer\n\nSee [DISCLAIMER](./DISCLAIMER.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnsacyber%2FBitLocker-Guidance","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnsacyber%2FBitLocker-Guidance","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnsacyber%2FBitLocker-Guidance/lists"}