How to use TPM for secure zero-touch device on-boarding

Pantacor Hub implements a TPM (Trusted Platform Module) to secure and onboard new devices and keep connected devices secure. The secure workflow described in this post enables devices to authenticate with TPM backed TLS that issues a certificate valid for your computer only.

TPM is a type of hardware security module. TPMs use what’s called an endorsement key or EK as the root of trust. Each EK is unique to the TPM.  Like most authentication key systems, TPM works using public and private key pairs.  Pantacor Hub is the device provisioning system and it uses the EK_private key along with an Attestation Identity Certificate Key (AIK) to authenticate the device. 

TPM Attestation overview

The authentication process begins with a device registering with the Attestation Certificate Authority (ACA). An IAK certificate is obtained from the Attestation Identity Certificate (AIK) device registry on Pantacor Hub. It also receives an IDevID from the Pantacor Hub Certificate Authority. The IDevID certificate is used with the public key by TPM to create a secure TLS connection with the Pantacor Hub API. This type of secure workflow is called remote TPM Attestation and it has been implemented by companies such as Microsoft, see the Azure TPM attestation documentation for more information.

How TPM Attestation works in Pantacor Hub

The TPM remote Attestation authentication authentication flow uses the Endorsement Key Certificate (EK) and the Attestation Identity Key Certificate (AIK) as a key certificate pair.

The AIK certificate is validated and signed by the Attestation Certificate Authority (ACA) server using the EK certificate, the EK key, and AK public key (another key created from the TPM).

Using that combination we create a new certificate request called the IDevID to identify the device. This certificate is signed with a private key saved on the TPM, and this key has the certification data loaded onto the TPM (documentation about the tpm_certificate).

Next, the ACA takes this information and then validates the IDevID as something loaded into a real TPM (since IAK validates the TPM via the EK certificate) and continues to validate the ownership of the device against the user on Pantacor Hub. We can therefore use any communication with the IDevID as a legitimate authorization method for the device. 

How to use it with Pantacor Hub

To implement this feature, you will need to build your image with Pantavisor to include specific parameters that add the ownership data that will be embedded in the IDevID certificate.

For example with the following parameters in your build file: 

PANTAVISOR_TPMACA=yes \
PANTAVISOR_DEBUG=yes \
PVR_MERGE_SRC=https://pvr.pantahub.com/pantahub-ci/x64_initial_stable \
PV_AUTOTOK_FILE=~/device_autojointoken.json \
./build.docker.sh x64-uefi-installer

This builds the image with the initial ownership data that starts the TPM process. After this, you can start your x64 machine and begin the installation process. After you’ve done this, the next steps are very straightforward.

Install Pantavisor x64 UEFI

Select the Pantavisor installer (auto), to install it to the main hard drive of your machine. Do not select the (auto TPM) if it is not referred to in the TPM-ACA workflow. Those options are for the encrypted disk functionality only.

To change the target device from where you want to install Pantavisor, enter manual mode and then run `pvf-install` and follow the instructions to select the correct device.

After that, the device will begin the process and reset a couple of times until you can see it in your Pantacor Hub device list.

After that everything will be set to use your device just like any other Pantacor Hub device.

Here’s a video that steps through the entire process: 

https://drive.google.com/file/d/1zvYHe9vF5ogfkMvPIY6Ni6brzGrR7JXq

Final Thoughts

Check out the new Slack community and website for Pantavisor Linux at pantavisor.io. You’ll find additional tutorials as well as an introduction to Pantabox our front-end for managing Pantavisor Linux.

Happy trails.

Share:

Share on facebook
Share on twitter
Share on linkedin