Onboarding Mechanisms¶
This document outlines the different mechanisms available to onboard devices to Trustpoint, including user-driven and automated methods. These methods aim to streamline the process of issuing initial certificates (domain credentials) that are used for secure device authentication with Trustpoint.
Overview¶
Trustpoint provides multiple ways to onboard a device. Currently, the primary onboarding mechanism is user-driven, with zero-touch onboarding being a future enhancement. The following sections provide detailed information on each of these methods.
Onboarding a device to Trustpoint involves issuing a domain credential, which allows the device to securely authenticate with Trustpoint. There are two categories of onboarding available: user-driven onboarding and zero-touch onboarding.
No Onboarding¶
In certain industrial environments, especially those with air-gapped systems, legacy devices, or extremely restrictive policies, onboarding devices to Trustpoint may not always be feasible or necessary.
In these cases, devices may continue to operate without a domain credential managed by Trustpoint. However, this approach is discouraged as it introduces security risks and limits the device’s ability to participate in secure, authenticated communication within the industrial network.
Trustpoint aims to reduce the need for “No Onboarding” scenarios by providing flexible onboarding methods and supporting various industrial standards. However, it acknowledges that in specific edge cases, operating without an onboarding process may still occur.
User-Driven Onboarding¶
User-driven onboarding is the primary method available for onboarding devices to Trustpoint. This method offers several options, depending on the user’s preferences and available resources.
Authentication¶
- To initially secure the client’s request for a domain credential, various methods can be used depending on the onboarding:
IDevID onboarding: EST (WIP) and CMP both support an initial onboarding with the IDevID on the device. To do this, the initial request (for CMP an initialization request [ir]; for EST a /simpleenroll) must be signed with the IDevID.
Shared secret: Onboard a new device using CMP and a shared secret.
Password: Onboard a new device with EST protocol using a username and password
One Time Password (OTP): Browser onboarding can be carried out using a one-time password
Using the device CLI¶
Users can also onboard their device manually by executing commands on the device command line interface (CLI).
How It Works:
- A new device with one of the the following options:
CMP with shared secret onboarding
CMP with IDevID onboarding
EST with username and password onboarding (WIP)
EST with IDevID onbaording (WIP)
In Devices click Manage on the new device
Click Help - Issue New Credentials
Copy the provided (OpenSSL) commands to your clipboard and execute it on the device
Upon successful submission, the device is issued a domain credential for authentication.
Requirements:
A Linux machine with access to the command line.
Necessary permissions.
A connection to communicate with Trustpoint services.
Using the Trustpoint Client (Work in Progress)¶
Trustpoint provides a user-friendly client application that simplifies the onboarding process. The Trustpoint client is available at Trustpoint Client GitHub. This method is recommended for users who prefer a guided approach to onboarding.
How It Works:
A new device with the onboarding protocol Trustpoint client is added to Trustpoint
In Devices click Start Onboarding on the new device
Copy the provided command to your clipboard and execute it on the device
The device is onboarded
During the process, an initial certificate is issued, enabling secure device authentication with Trustpoint.
Requirements:
Access to the Device.
Python 3.12 or greater on device.
Trustpoint-Client installed on the device (via pip install trustpoint-client).
A connection to communicate with Trustpoint services.
Zero-Touch Onboarding (Work in Progress)¶
Trustpoint is actively developing a zero-touch onboarding feature. This mechanism will allow fully automated onboarding without any user intervention, simplifying the process even further. Zero-touch onboarding is designed for use in environments where many devices need to be onboarded without manual effort, providing a scalable solution for large deployments.
How It Works:
Devices are pre-configured with Trustpoint information before deployment.
Upon connecting to the network, the device automatically requests and receives an initial certificate, completing the onboarding process without user interaction.
Requirements:
Network infrastructure to support automated onboarding.
The Trustpoint beta release contains zero touch onboarding functionality for demonstration purposes only, based on the AOKI (Automated Onboarding Key Infrastructure) protocol. This is a simple protocol that uses mDNS to discover the Trustpoint server and then uses a simple REST API for mutual trust establishment. Afterwards, the device is in possession of a OTP it can use for LDevID provisioning via standard CMP. Before the device can be onboarded, it must possess a valid IDevID (Initial device identifier per IEEE 802.1AR) certificate. The Trustpoint needs to have a valid trust anchor certificate for the device’s IDevID certificate added as a Truststore. It also needs an ownership certificate, which is issued by the manufacturer and verified by the device to authenticate the Trustpoint.
This feature is not intended for production use.
How to¶
(Optional) Generate IDevID and ownership certificates
- (Optional) Add IDevID to the device Trustpoint client
Install the Trustpoint Client to the device. An example IDevID is provided in the
demo-datadirectory.
- Add Truststores in Trustpoint
Two Truststores with arbitrary names need to be added, one containing the certificate chain of the IDevID and one containing the certificate chain of the ownership certificate. Demo certificates are provided in the
tests/data/aoki_zero_touchdirectory.
- Configure mDNS address
In
settings.pysetADVERSISED_HOSTto the Trustpoint server IP address as reachable by the device.
- Onboard the device
Execute
trustpoint-client provision zero-touchcommand on the client to onboard the device.