Secure device provisioning

How to bring new machines online with Things5 securely, in line with the Cyber Resilience Act

This guide is for manufacturers of machines and IoT modules, and for the developers of their firmware and end-of-line test stations. It explains how to connect a new machine to Things5 securely, in line with the EU Cyber Resilience Act (CRA).

Why it matters

Every machine connects to Things5 with its own certificate and private key. How the key reaches the device and how it is stored there is part of the product's security, and therefore of its CRA compliance, which remains the responsibility of the machine manufacturer.

Things5 is a general-purpose cloud service offered to many manufacturers: under the CRA it is a third-party component of your product, not something developed under your responsibility. This guide gives you what you need to assess Things5 as a supplier and to choose how to bring your machines online.

The CRA does not prescribe how keys are distributed, but it requires you to protect the confidentiality of credentials and to limit the attack surface. The two provisioning flows described below are the ones we recommend.

Who does what

AreaMachine or module manufacturervisup (Things5)Organization using Things5
Firmware and hardwareSecure development, security updates, SBOM, product vulnerability handling——
Private key on the deviceSafekeeping after delivery: protected storage, never exposed in logs or debug outputGeneration and one-time delivery over an encrypted channel—
Certificates—Issuing, binding certificate to machine, revoking the previous certificate when a new one is issued—
ProvisioningImplement one of the recommended flows in the firmware or test stationProvide and maintain the flows, with server-side limits and checksDecide who can bring machines online (roles, groups)
Cloud platformAssess Things5 as a supplierInfrastructure security, access control, encryption in transitManage users, roles and API integrations
VulnerabilitiesReport to ENISA/CSIRT for your own productFix platform vulnerabilities and notify affected customersReport anomalies and suspicious activity to visup

📘

Things5 does not keep private keys

Things5 generates the private key and delivers it to the device once. It does not store it and cannot recover it. If a device loses its key, a new certificate is issued and the previous one stops working.

Provisioning flows

Provisioning is the step that turns a new device into a machine on Things5: the machine is registered, and the device receives the certificate, the private key and the CA certificate it needs to connect to the Things5 MQTT broker. It happens once per machine, and again only if its certificate has to be replaced.

A provisioning flow is the procedure that gets the certificate and key onto the device. Things5 supports two:

  • Pairing code: a person enters on the device a short code generated in Things5, and the device downloads its certificate directly from Things5.
  • Factory station: a station on the production line creates the machine through the API, gets its certificate and loads it onto the device.

Choosing a flow

Pairing codeFactory station
Who actsA person, one device at a timeSoftware through the API, no operator on the device
What the device needsA way to enter and show a code (display, configuration app)A channel to receive certificates from the station (USB, serial, Bluetooth)
How the key travelsStraight from Things5 to the device, over HTTPSFrom Things5 to the station, then from the station to the device
CredentialsNone, neither on the device nor anywhere elseOn the station: a dedicated API integration, never a person's credentials
Where the machine ends upIn the organization of whoever generated the codeIn the Testing group, then moved to its destination group
VolumeOne at a timeBatches, can be automated
WhereAnywhere, in the field or on the production lineFactory only
Repeating it after delivery (lost key, replaced board)Yes, in the field: an authorized user generates a new code, even remotely, and it is entered on the device. The machine does not have to be returnedNot in the field: the device has to go back to a station
What the manufacturer buildsCode entry and display in the firmware or appThe station software, the loading channel and the station's protection

👍

The pairing code is the recommended flow

From a security standpoint it is the best option, and this is why we recommend it: the private key goes straight from Things5 to the device over HTTPS and never passes through any other computer. It also asks less of the manufacturer, and the end user can repeat it in the field if the device ever needs a new certificate.

The factory station is also secure, but the certificate and private key necessarily pass through a third system, the station, before reaching the device. That is why the station has to be protected, and why we suggest it only when volumes make manual entry impractical or the device has no user interface.

The two flows can be combined. Even if you use a factory station in production, it is good practice to also support the pairing code in the firmware: it is the only way to restore a device in the field, for example after a board replacement, without sending it back to the factory.

Practices to avoid

❗️

Never put Things5 API credentials on a device

Neither a user's username and password nor an API integration's secret, not even temporarily during production with the plan of deleting them afterwards. The device only needs its own certificate and private key.

Credentials on a device can be extracted: from the firmware image, from memory, or from a copy left behind in storage after deletion. Whoever extracts them gets every permission of that user or integration, not just on that machine. If the same credentials have been used on several devices, the access covers all of them.

On a station, use an API integration, never a user's credentials.

🚧

Avoid downloading certificates from the browser and copying them by hand

The private key passes through a PC that is neither the device nor a protected station, and copies may remain there (downloads folder, backups, email). Use this only in exceptional cases such as repairs or replacements, and delete the downloaded file as soon as it has been transferred.

Personal credentials for the API

Some systems currently access the Things5 API with a user's username and password. For stations and integrations these must be replaced with API integrations:

DateWhat happens
December 1, 2026API users can no longer be created. Existing API users keep working; affected organizations will be contacted
June 30, 2027Existing API users are no longer supported: API access with username and password is switched off

References

  • Regulation (EU) 2024/2847 (Cyber Resilience Act): Art. 13(5) (due diligence on third-party components); Annex I, Part I, point 2(e) and (j) (data confidentiality, attack surface).
  • Commission guidelines C(2026) 5252 of July 27, 2026.
  • ETSI EN 303 645 (consumer IoT security); EN 18031 (Radio Equipment Directive security requirements).

This guide describes visup's position and the flows supported by Things5; it is not a conformity assessment of your products.

Contacts

For technical support with the integration and for security reports, write to [email protected].