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:
Using the device CLI¶
Users can also onboard their device manually by executing commands on the device command line interface (CLI).
How It Works:
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 Automated Onboarding Key Infrastructure (AOKI) 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 can use a standard PKI protocol (CMP or EST) to request a domain credential (LDevID). 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 DevOwnerID credential, which is issued by the manufacturer and verified by the device to authenticate the Trustpoint.
This feature is not yet intended for production use.
How to¶
- (Optional) Generate IDevID and ownership certificates
This can be done by executing
uv run manage.py aoki_gen_test_certs.
- Add DevOwnerID to Trustpoint
Add the DevOwnerID credential in the
PKI -> DevOwnerIDssection.
- Add IDevID Truststore in Trustpoint
A Truststore containing the certificate chain of the IDevID has to be added. Add a DevID registration pattern for the domain you want the device to onboard to and select the IDevID truststore. Make sure “Auto-Generate new Device” is enabled in the domain config.
- Start AOKI Onboarding
AOKI-EST: Run
uv run -m aoki.tests.clientfrom thetrustpointdirectory. This will start the AOKI test client.AOKI-CMP: Run
uv run -m aoki.tests.cmp_clientfrom thetrustpointdirectory. This can be implemented with a low amount of custom code, as CMP is handled by OpenSSL.