Windows 11 Makes TPM Diagnostics Tool its First Optional Feature
Windows 11 comes with a new optional feature called ‘TPM Diagnostics’ that allows administrators to query the data stored on a device’s TPM security processor.
When it comes to Windows 11, Microsoft is placing all its bets on the TPM 2.0 security processor as a requirement for the OS to power some of its security features.
“PCs of the future need this modern hardware root-of-trust to help protect from both common and sophisticated attacks like ransomware and more sophisticated attacks from nation-states. Requiring the TPM 2.0 elevates the standard for hardware security by requiring that built-in root-of-trust,” explains Microsoft in a new blog post.
“TPM 2.0 is a critical building block for providing security with Windows Hello and BitLocker to help customers better protect their identities and data. In addition, for many enterprise customers, TPMs help facilitate Zero Trust security by providing a secure element for attesting to the health of devices.”
A TPM is a hardware security processor that is used to securely “protect encryption keys, user credentials, and other sensitive data behind a hardware barrier so that malware and attackers can’t access or tamper with that data.”
While this sounds like an important device, many users with older computers that run Windows 10 perfectly are upset as they are now being forced into purchasing new hardware if they want to upgrade to Windows 11.
While Microsoft has received considerable pushback due to this new requirement, a new optional feature shows how serious they are about TPM security processors and their use on Windows 11.
Also Read: 3 Reasons Why You Must Take a PDPA Singapore Course
Windows 11 includes a new TPM Diagnostics tool
Microsoft’s investment in the use of TPM processors shows in a brand new Windows 11 command-line tool called “TPM Diagnostics” that allows administrators to query a TPM for stored information.
When installed, there will be a new ‘tpmdiagnostics.exe’ executable located in the C:\Windows\System32 folder that allows you to query various information from your installed TPM.
While Microsoft already includes a Trusted Platform Module Management console (tpm.msc), it only provides a small amount of information and the ability to clear the TPM.
The TPmDiagnostics.exe tool allows access to much more significant information, including Windows Attestation Identity Keys, Endorsement Key certificates, others keys stored in the TPM, boot counters, information about what tasks are running, information about the TPM, and much more.
As I only have Windows 11 install in a virtual machine which does not have TPM capabilities, I tested the program by copying the files to a Windows 10 box that has a TPM 2.0 module installed.
The TpmDiagnostics.exe program only appears to be available to Windows 10 Pro users and should be run from an Elevated Command Prompt, and when executed by itself will list a help file of available commands.
For example, the command TpmDiagnostics.exe GetCapabilities
will list the capabilities and settings of the installed TPM processor, as shown below.
In addition to querying stored keys and other information, you can also use the TPM to perform encoding/decoding of Base64, Hexadecimal, and Binary files.
Unless you understand what data is being stored in your TPM, I don’t advise messing with it too much to avoid accidentally removing the keys necessary for the operation of your device.
Also Read: What You Should Know About the Data Protection Obligation Singapore
However, the Microsoft Trusted Platform (TPM) documentation and the new TpmDiagnostics.exe tool can provide a wealth of information about the underlying security mechanics of Windows 11.
The complete list of commands available in the tpmdiagnostics.exe tool are:
tpmdiagnostics : A tool for Windows 10 build 22000
Copyright (c) Microsoft Corporation. All rights reserved.
Flags:
PrintHelp ( /h -h )
PromptOnExit ( -x /x )
UseECC ( -ecc /ecc )
UseAes256 ( -aes256 /aes256 )
QuietPrint ( -q /q )
PrintVerbosely ( -v /v )
Use the 'help' command to get more information about a command.
Commands:
TpmInfo:
GetLockoutInfo
IsOwned
PlatformType
CheckFIPS
ReadClock
GetDeviceInformation
IfxRsaKeygenVulnerability
GatherLogs [full directory path]
PssPadding
IsReadyInformation
TpmTask:
MaintenanceTaskStatus
ShowTaskStatus
IsEULAAccepted
ProvisionTpm [force clear] [allow PPI prompt]
TpmProvisioning:
PrepareTPM
CanUseLockoutPolicyClear
CanClearByPolicy
AutoProvisioning:
IsAutoProvisioningEnabled
EnableAutoProvisioning
DisableAutoProvisioning [-o]
EK:
EkInfo
ekchain
EkCertStoreRegistry
GetEkCertFromWeb [-ecc] [cert file]
GetEkCertFromNVR [-ecc] [cert file]
GetEkCertFromReg [-ecc] [ output file ]
GetEk [-ecc] [key file]
CheckEkCertState
InstallEkCertFromWeb
InstallEkCertFromNVR
InstallEkCertThroughCoreProv
EKCertificateURL
WindowsAIK:
InstallWindowsAIK [-skipCert]
WinAikPersistedInTpm
UninstallWindowsAIKCert
GetWindowsAIKCert [cert file]
IsWindowsAIKInstalledInNCrypt
EnrollWindowsAIKCert
GetWindowsAIKPlatformClaim ["fresh"] [output file]
OtherKeys:
PrintPublicInfo [ srk / aik / ek / handle ] [-asBcryptBlob / -RsaKeyBitsOnly / -RsaSymKeyBitsOnly] [-ecc]
TestParms [ SYMCIPHER | RSA ] [ algorithm specific arguments ]
EnumerateKeys
NVStorage:
EnumNVIndexes
DefineIndex [index] [size] [attribute flags]
UndefineIndex [index]
ReadNVIndexPublic [index]
WriteNVIndex [index] [data in hex format | -file filename]
ReadNVIndex [index]
NVSummary
NVBootCounter:
CheckBootCounter
ReadBootCounter [/f]
PCRs:
PrintPcrs
PhysicalPresence:
GetPPTransition
GetPPVersionInfo
GetPPResponse
GetPPRequest
TPMCommandsAndResponses:
CommandCode [hex command code]
ResponseCode [hex response code]
Tracing:
EnableDriverTracing
DisableDriverTracing
FormatTrace [etl file] [output json file]
DRTM:
DescribeMle [MLE Binary File]
Misc:
Help [command name]
DecodeBase64File [file to decode from base 64]
EncodeToBase64File [file to encode]
ReadFileAsHex [file to read]
ConvertBinToHex [file to read] [file to write to]
ConvertHexToBin [file to read] [file to write to]
Hash [hex bytes or raw value to hash]
GetCapabilities
0 Comments