How to Determine if BitLocker is Using Hardware or Software Encryption on Your Drive


1 views

When using BitLocker, your drive can be encrypted either via hardware (using the SSD's built-in encryption) or software (using Windows' native encryption). Given recent security concerns about flawed hardware encryption implementations in many SSDs, it's crucial to verify which method your system is using.

The manage-bde.exe -status command provides basic encryption information, but doesn't explicitly state whether hardware encryption is being used. Here's a typical output:

manage-bde.exe -status C:
Volume C: [Windows]
    Size:                 952.62 GB
    BitLocker Version:    2.0
    Conversion Status:    Used Space Only Encrypted
    Percentage Encrypted: 100.0%
    Encryption Method:    XTS-AES 128
    Protection Status:    Protection On
    Lock Status:          Unlocked
    Identification Field: Unknown
    Key Protectors:
        TPM
        Numerical Password

To get more detailed information about the encryption method, use this PowerShell command:

Get-BitLockerVolume | Select-Object MountPoint, EncryptionMethod, VolumeStatus, 
ProtectionStatus, EncryptionType | Format-List

The EncryptionType field is what we're particularly interested in. It will show either:

  • HardwareEncryption - Indicates hardware-based encryption
  • SoftwareEncryption - Indicates software-based encryption

Another way to check is using the fsutil command:

fsutil fsinfo volumeinfo C:

Look for lines containing:

Supports Hardware Encryption : True
Currently Using Hardware Encryption : True

If you discover hardware encryption is being used and want to switch to software encryption, use this command:

manage-bde.exe -protectors -add C: -rp
manage-bde.exe -on C: -usedspaceonly -em software

This will require the drive to be decrypted and re-encrypted using software encryption.

After changing the encryption method, verify the change with:

Get-BitLockerVolume | Select-Object MountPoint, EncryptionType

You should now see SoftwareEncryption as the encryption type.

Remember that switching from hardware to software encryption:

  • Will require decrypting and re-encrypting the entire drive
  • May impact performance (usually negatively)
  • Will increase CPU usage during encryption operations
  • Is generally more secure than potentially flawed hardware implementations

When dealing with BitLocker encryption, it's crucial to determine whether your drive uses software-based or hardware-based encryption. Recent security research has exposed vulnerabilities in many SSD manufacturers' hardware encryption implementations. Here's how to verify your current configuration:

The manage-bde.exe utility provides detailed information about BitLocker encryption status. While the standard output doesn't explicitly state "hardware" or "software" encryption, we can deduce it from the encryption method:

manage-bde.exe -status C:

The key indicator is the Encryption Method field in the output. For software encryption, you'll typically see:

Encryption Method: XTS-AES 128

For hardware encryption, you might see vendor-specific methods like:

Encryption Method: Hardware Encryption (AES 256)

For more precise detection, we can use PowerShell to query the disk's properties:

$disk = Get-Disk | Where-Object {$_.IsSystem -eq $true}
Get-StorageReliabilityCounter -PhysicalDisk $disk | 
Select-Object DeviceId, EncryptionAbility, EncryptionEnabled

This script returns three critical values:

  • EncryptionAbility: Indicates if hardware encryption is supported (0 = None, 1 = Supported, 2 = Unsupported)
  • EncryptionEnabled: Shows if hardware encryption is currently active

If you need to ensure software encryption is used, modify the BitLocker configuration:

manage-bde.exe -protectors -add C: -tpm
manage-bde.exe -protectors -add C: -rp

Then disable hardware encryption through Group Policy:

  1. Open gpedit.msc
  2. Navigate to: Computer Configuration > Administrative Templates > Windows Components > BitLocker Drive Encryption
  3. Enable "Configure use of hardware-based encryption" and set to "Disabled"

Here's a comprehensive PowerShell script to check encryption status:

function Get-BitLockerEncryptionType {
    param (
        [string]$DriveLetter = "C:"
    )
    
    $status = manage-bde -status $DriveLetter
    $disk = Get-PhysicalDisk | Where-Object {$_.DeviceID -eq (Get-Partition -DriveLetter $DriveLetter[0]).DiskNumber}
    
    $result = [PSCustomObject]@{
        DriveLetter = $DriveLetter
        EncryptionMethod = ($status -match 'Encryption Method:\s+(.+)')[1]
        HardwareEncryptionSupported = $disk.EncryptionAbility -ne 0
        HardwareEncryptionEnabled = $disk.EncryptionEnabled
        EstimatedEncryptionType = if ($disk.EncryptionEnabled) {"Hardware"} else {"Software"}
    }
    
    return $result
}

Get-BitLockerEncryptionType -DriveLetter "C:"

When analyzing the output, consider these scenarios:

  • Encryption Method shows XTS-AES + HardwareEncryptionEnabled is False = Software encryption
  • Vendor-specific encryption method + HardwareEncryptionEnabled is True = Hardware encryption
  • Mixed results: May indicate partial hardware acceleration with software management

Remember that:

  • Not all SSDs report encryption capabilities accurately
  • Some drives may support both methods simultaneously
  • Windows 10/11 may override hardware encryption settings in certain configurations