Skip to content

Gettingstarted

D2B8CA1B27286366A8607B6858C0565962613D18D0546480078B520CD7AD705A edited this page Aug 27, 2024 · 8 revisions

HIRS ACA Getting Started Guide

  1. Set up the Attestation CA and Client (refers to the Installation Notes page)
    1. Install a HIRS server
    2. Enable your client device's TPM in its BIOS (typically defaults to enabled)
    3. Install the HIRS provisioner on a TPM-enabled device
    4. Test the HIRS client/server setup
  2. Configure the Attestation CA to perform Endorsement Credential Validation
    1. Determine the TPM manufacturer using the ACA Portal or the command line utilities
    2. Download the TPM manufacturers trust chains
    3. Upload TPM trusted certificates to the ACA
    4. Test the EK Credential validation
  3. Configure the Attestation CA to perform Platform Credential Validation
    1. Generating Platform Certificate Test Patterns
    2. Upload the Platform Credential and self-signed root test CA certificates into the ACA
    3. Test the Credential validation on the device with the TPM

Test the HIRS Client_Server Setup

  1. Make sure to disable all Credential Validations on the Policy page of the ACA: ACA_Default_Policy

  2. On the client, issue the following command in a terminal:

On Linux: sudo tpm_aca_provision

On Windows open a PowerShell terminal as an administrator: tpm_acaPprovision

  1. Select the Validation Reports tab to see the status of the request:![ACA_ValidationReport_Default_Policy] ACA_ValidationReport_Default_Policy
  2. The appearance of the green check box GreenCheckIcon under the Result column indicates success. Note that there are no checks in the Endorsement, Platform, or Platform Attributes columns. The current policy setting did not require any credential validation.

Obtain the Device's TPM Manufacturer's Root and Intermediate CA Certificates

In an operational environment, the TPM manufacturer should be determined by consulting system specifications issued by the vendor at purchase time. However, for this proof-of-concept, it is acceptable to look up the manufacturer from the local device.

Using the ACA Portal

Even though the Endorsement Credential was not required by the ACA during provisioning, it should have been delivered as part of the request.

  1. To see the Endorsement Certificate, select the Endorsement Credentials page (also called the Endorsement Key Credentials page): ACA_Endorsement_Credential
  2. To see the details of the Endorsement Credential, select the display icon DisplayIcon for the credential obtained during the provisioning process. Read the issuer field to determine the manufacturer: ACA_Endorsement_Credential

Using the Command Line

Identify the client’s TPM manufacturer and obtain a copy of the TPM manufacturer's trust chain (one or more x.509 certificates used to validate Endorsement Credentials).

Determine the manufacturer of the TPM.

> tpm2_getcap properties-fixed

Typical output:

TPM2_PT_MANUFACTURER:
  raw: 0x49465800
  value: "IFX"

Where the value can be found in the TCG Vendor ID Registry.

Now you are ready to download the TPM manufacturer's root and intermediate certificate chains

Download TPM Trust Chains

The best single source for TPM manufacturer CA certificates is kept by Microsoft: https://docs.microsoft.com/en-us/windows-server/virtualization/guarded-fabric-shielded-vm/guarded-fabric-install-trusted-tpm-root-certificates

Some TPM manufacturers have TPM CA certificates available on the web (not a complete list):

Infineon: https://www.infineon.com/cms/en/product/promopages/optiga_tpm_certificates/#SLB9670xx2.0

ST Microelectronics: (Document which lists the URL for the certificates) https://www.st.com/content/ccc/resource/technical/document/data_brief/fc/46/5e/73/66/bf/42/d4/DM00213539.pdf/files/DM00213539.pdf/jcr:content/translations/en.DM00213539.pdf

Once the certificates have been downloaded, they may need to be unzipped. Once they are available as individual files, proceed to upload the trusted certificate(s) to the ACA.

Upload Trusted Certificates into the ACA

Navigate to the Trust Chain Management Page and click on the AddIcon symbol next to "Import Trust Chain CA Certificate" to upload the certificates:

ACA_Import_Trust_Chain_Cert

You can load a single certificate or all the certificates provided by the manufacturer at this stage. Just note that while there could be dozens of manufacturer certificates, typically only a few are needed.

For the Endorsement Credential, the issuer certificate and the certificates of any of its subsequent issuers are needed. There may be several, depending upon the PKI configuration of the manufacturer.

Test EK Credential Validation

  1. Navigate to the Policy page and enable Endorsement Credential Validation by selecting the edit icon
    EditIcon next to the Endorsement Credential Validation label: ACA_EKValidate_Policy.
  2. On the client, issue the following command in a terminal:
    > sudo tpm_aca_provision
  3. Check the success on the Validation reports page: ACA_ValidationReport_EK_Policy The appearance of the green check box GreenCheckIcon under the Result column indicates success. The green check box GreenCheckIcon under the Endorsement column links back the Endorsement Credential obtained from the TPM during the provisioning process.

Generating Platform Certificate Test Patterns

The HIRS open source release contains a Platform Certificate test generator (PACCOR) that can be used for generating Platform Credentials used for testing purposes. Follow the instructions for installing PACCOR before continuing. The PACCOR documentation contains instructions for configuring it for Platform Credential generation.

PACCOR currently supports the following fields as default components (although more can be added) within the Platform Credential:

  • Baseboard (Motherboard)
  • Processor
  • Firmware (BIOS/UEFI)
  • Chassis
  • Memory
  • Hard Drive/SSD
  • NIC

Create a Platform Credential and Self Signed Test Root CA Key Pair

PACCOR creates a self signed certificate that can be used as a root CA certificate and a Platform Credential based on the component information from the current device. The Platform Credential that is produced is signed by the self-signed root CA certificate. Together, these two certificates are referred to as "test patterns". To create a test pattern, run the PACCOR provided pc_testgen.sh script (as root).

> sudo sh /opt/paccor/scripts/pc_certgen.sh

This script will create a folder in your home directory called pc_testgen that will contain a self-signed certificate named PCTestCA.example.com.pem, which is intended to be uploaded to the ACA as a trust chain. It will also contain a Platform Credential file with a named platform_cert.crt. This is intended to be uploaded into the ACA as a Platform Credential.

Test patterns will be placed in the /opt/paccor/scripts/pc_testgen directory. Permissions will need to be changed on the test patterns in order to use them in the following steps:

> sudo chmod 744 /opt/paccor/scripts/pc_testgen/PCTestCA.example.com.pem

> sudo chmod 744 /opt/paccor/scripts/pc_testgen/platform_cert*.crt

Upload the Platform Manufacturer's CA Certificates

The platform manufacturer's CA certificate (or the test CA certificate created in the above sequence) needs to be uploaded in the ACA trust store. Select the AddIconsymbol:

ACA_Import_Trust_Chain_Cert

Then select the platform CA certificate(s) to be uploaded.

Upload Platform Credentials into the ACA

Upload the Platform Credentials to the ACA via the ACA's Platform Credential page. Select the add icon AddIcon next to the Import Platform Credentials label:

ACA_Import_Platform_Cred

Set the ACA Policy to Process Platform Credentials

  1. Navigate to the Policy page and enable Platform Credential Validation by selecting the edit icon EditIcon next to the Platform Credential label. Then do the same for Platform Credential Attributes Validation. ACA_PCValidate_Policy

Platform Credential Validation

  1. On the client, issue the following command in a terminal:
    > sudo tpm_aca_provision
  2. Check the success on the Validation reports page: ACA_ValidationReport_PC_Policy

The appearance of the green check box GreenCheckIcon under the Result column indicates success. The green check box GreenCheckIcon under the Endorsement column links back the Endorsement Credential obtained from the TPM during the provisioning process. The green check box GreenCheckIcon under the Platform column links back the Platform Credential obtained during the previous create Platform Credential creation process. The green check box GreenCheckIcon under the Platform Attributes column indicates a success in checking the Platform Credential component fields against values obtained from the client. Any failed component comparison will cause this field to change to a red icon RedFailIconindicating a failure.