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


11 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