IoT Device Provisioning and Identity
IoT device provisioning and identity is the work of giving every device a unique, cryptographically verifiable identity, then connecting it to a management platform on first boot without manual setup. Factory-injected keys, certificate enrollment, and zero-touch bootstrapping replace the shared passwords that fail at fleet scale.
itComputer architecture and hardware | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Don't Panic
Don't Panic — IoT Device Provisioning and Identity
Somewhere on a factory line, before your device had a case or a firmware version worth trusting, it was given a cryptographic name. This course is about that moment and everything it sets in motion: device provisioning, the process of giving every unit its own provable identity and installing the credentials that let it join a management platform without a human typing anything at all.
Why bother? Because the alternative has a track record. Fleets that ship one shared password out of the factory are one leak away from being somebody else's fleet, which is why consumer security standards ban universal default passwords by name. And a fleet is not a laptop you can walk over to: devices end up in basements and substations, installed by people with no accounts on your systems and no patience for a wizard.
Three ideas carry the whole topic.
First, trust has a birthplace. The chip gets a hardware root of trust during manufacture, often a TPM Endorsement Key whose private half never leaves the chip. On top of that sits the manufacturer-installed identity, IEEE 802.1AR's IDevID, and later the owner-issued LDevID. The factory decision is the security model: whatever was injected on that line is what every later protocol will faithfully transport. Pick devices whose provisioning you can actually vouch for.
Second, enrollment is transport, not magic. The EST protocol lets a device request and renew certificates over plain HTTPS. BRSKI adds the fun part: a brand new device, which BRSKI calls a pledge, meets a stranger network and needs one trustworthy thing to happen. A manufacturer-side service called the MASA signs a voucher saying which server this particular device should believe, the pledge swallows its first trust anchor in a step called imprinting, and from then on everything is ordinary enrollment. FDO solves the same problem with an ownership voucher and a matchmaking rendezvous server, and throws in late binding: build the device first, decide who owns it later. Managed cloud services reassemble these same parts behind an API, with certificates, TPM challenges, or symmetric keys as the proof mechanisms.
Third, strength tracks provenance. A certificate chain that names each device is the strongest proof, a TPM challenge proves real silicon, and a symmetric group key is the cheap knockoff whose blast radius is the whole group. There is no setting that makes the cheap option behave like the good one. The cheatsheet holds the endpoint names and decision rules for the day you actually have to choose.
One thing will surprise you: a freshly powered device cannot tell the time, so it cannot check when certificates expire. The standards know this. BRSKI explicitly lets a pledge skip timestamp checks until it has a clock. The first hours of a device's life are politely lawless by design.
The intro is the full tour, the slides compress it into one screen, the cheatsheet is the pocket reference, and the quiz tells you whether the machinery stuck. Field notes cover what fleets get wrong. Panic is not required anywhere.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://standards.ieee.org/ieee/802.1AR/6995
Supports
- DevID as a Secure Device Identifier cryptographically bound to a device
- IDevID supplied with the device and LDevIDs issued by the owner for local enrollment, and the 802.1AR-2018 revision as the current published standard
- https://standards.ieee.org/ieee/802.1AR/4678
Supports
- IEEE 802.1AR-2009 publication date of December 2009 on the timeline
- https://www.rfc-editor.org/info/rfc7030
Supports
- EST profiling CMC-based enrollment over HTTPS with /cacerts, /simpleenroll, and /simplereenroll mandatory
- Optional /fullcmc, /serverkeygen, and /csrattrs endpoints and the registration-authority role between device and CA
- PKCS#10 certificate requests and proof-of-possession enrollment
- October 2013 publication date on the timeline
- https://www.rfc-editor.org/info/rfc8995
Supports
- BRSKI definitions of pledge, MASA service, voucher, join proxy, and registrar
- Pledge state machine and imprinting as adoption of the first trust anchor
- Pledges MAY ignore voucher and certificate validity periods without a trusted clock
- IDevID installed at the factory and the MASA ownership audit log
- May 2021 publication date on the timeline
- https://www.rfc-editor.org/info/rfc8366
Supports
- The voucher artifact syntax referenced by BRSKI and the Reference links
- https://trustedcomputinggroup.org/resource/tpm-library-specification/
Supports
- TPM 2.0 library specification parts, version history, and the October 2014 r1.16 release on the timeline
- Adoption as the international standard ISO/IEC 11889:2015
- https://trustedcomputinggroup.org/resource/tcg-ek-credential-profile-for-tpm-family-2-0/
Supports
- The EK credential content and its X.509 instantiation for TPM 2.0
- https://trustedcomputinggroup.org/resource/tpm-2-0-keys-for-device-identity-and-attestation/
Supports
- TCG mapping of TPM 2.0 keys onto device identity and attestation roles, version 1.00 of October 2021 on the timeline
- https://trustedcomputinggroup.org/resource/tpm-main-specification/
Supports
- TPM main specification version 1.2 final revision on the timeline and acceptance as ISO/IEC 11889:2009
- https://www.etsi.org/deliver/etsi_en/303600_303699/303645/03.01.02_20/en_303645v030102a.pdf
Supports
- Consumer IoT standard provision against universal default passwords as the recognized failure mode fleet-wide shared credentials represent
- https://fidoalliance.org/device-onboarding-overview/
Supports
- FDO client, ownership voucher, rendezvous server, and late binding concepts
- Zero-touch onboarding installing secrets and configuration at first boot
- https://fidoalliance.org/specifications/download-iot-specifications/
Supports
- FDO specification versions from 1.0 through the 2.0 proposed standard of 2026
- https://fidoalliance.org/specs/FDO/
Supports
- FDO 1.0 review draft of December 2020 and proposed standard of March 2021 on the timeline
- https://learn.microsoft.com/en-us/azure/iot-dps/about-iot-dps
Supports
- DPS as a helper service enabling zero-touch, just-in-time provisioning to the right IoT hub
- The device connects to DPS, identity is verified, and the device is assigned and registered
- https://learn.microsoft.com/en-us/azure/iot-dps/concepts-service
Supports
- Enrollment records, individual enrollment versus enrollment group, and attestation mechanism definitions
- ID scope selection at the global endpoint global.azure-devices-provisioning.net
- https://learn.microsoft.com/en-us/azure/iot-dps/concepts-x509-attestation
Supports
- X.509 chain-of-trust structure with root, intermediate, and leaf certificates
- Chain-downward matching where the first matching enrollment entry wins and group registration requires the leaf-to-verified-certificate chain
- RSA or ECC keys with nistP256, nistP384, and nistP521 curves and mutual TLS support
- https://learn.microsoft.com/en-us/azure/iot-dps/concepts-tpm-attestation
Supports
- TPM attestation flow with endorsement key and storage root key publication and the nonce challenge encrypted with SRK and EK_pub
- Virtual TPM support and SAS token registration
- https://learn.microsoft.com/en-us/azure/iot-dps/concepts-symmetric-key-attestation
Supports
- Symmetric key attestation with the group key never used directly and the device key derived by HMAC-SHA256 from the registration ID
- Key lengths 16 to 64 bytes with 64 bytes as the generated default
- https://azure.microsoft.com/blog/azure-iot-hub-device-provisioning-service-preview-automates-device-connection-configuration/
Supports
- DPS public preview announcement of September 2017 on the timeline
- https://azure.microsoft.com/blog/azure-iot-hub-device-provisioning-service-is-generally-available/
Supports
- DPS general availability in December 2017 on the timeline
- https://docs.aws.amazon.com/iot/latest/developerguide/provision-wo-cert.html
Supports
- Fleet provisioning by claim and by trusted user with provisioning claim certificates embedded at manufacture
- certificateOwnershipToken expiring after one hour and temporary claim certificates after five minutes
- Restricted claim certificate policy topics and the pre-provisioning hook requiring allowProvisioning
- https://docs.aws.amazon.com/iot/latest/developerguide/provision-template.html
Supports
- Provisioning template structure with AWS::IoT::Thing, AWS::IoT::Certificate, and AWS::IoT::Policy resources
- https://docs.aws.amazon.com/iot/latest/developerguide/jit-provisioning.html
Supports
- JITP with a template attached to the registered CA, PENDING_ACTIVATION status, subject-parameter substitution, and the SNI requirement
- https://docs.aws.amazon.com/iot/latest/developerguide/auto-register-device-cert.html
Supports
- JITR automatic registration into a pending state with the registration event topic and a rule handling CRL verification, activation, and policy attachment
- https://aws.amazon.com/blogs/aws/aws-iot-cloud-services-for-connected-devices/
Supports
- AWS IoT beta launch in October 2015 on the timeline
- https://aws.amazon.com/blogs/aws/aws-iot-now-generally-available/
Supports
- AWS IoT general availability in December 2015 on the timeline
- https://smallstep.com/docs/step-ca/provisioners/
Supports
- ACME device-attest-01 challenge with apple, step, and tpm attestation formats
- The documented gap of TPM-bound end-to-end certificate flows in the open source build
- https://fido-device-onboard.github.io/docs-fidoiot/latest
Supports
- The maintained reference implementation of the FIDO Device Onboard specification as a runnable onboarding stack
- https://github.com/cisco/libest
Supports
- libest as a C language EST stack including client, server library, and examples
- https://github.com/hm-seclab/open-brski
Supports
- open-brski as a Rust example implementation of RFC 8995 roles with self-declared limitations
- https://github.com/tpm2-software/tpm2-tss
Supports
- tpm2-tss as the open source implementation of the TCG TPM2 Software Stack
- https://github.com/tpm2-software/tpm2-tools
Supports
- tpm2-tools as the command line toolkit for TPM 2.0 operations
- https://www.digicert.com/device-trust-manager
Supports
- Device Trust Manager capabilities for hardware root of trust embedding, factory credential provisioning, EST, SCEP, ACME, and CMPv2 support, and zero-touch provisioning
- https://www.globalsign.com/en/iot
Supports
- GlobalSign IoT device identity lifecycle with devices self-registering on first boot against a cloud RA service
- https://www.sectigo.com/sectigo-certificate-manager
Supports
- Sectigo Certificate Manager as CA-agnostic certificate lifecycle management with private PKI for devices and enrollment protocol automation
- https://github.com/fkie-cad/awesome-embedded-and-iot-security
Supports
- Curated discovery of embedded and IoT security resources, including the OWASP projects referenced in the Awesome Links tab
- https://owasp.org/www-project-internet-of-things/
Supports
- OWASP Internet of Things project coverage of common vulnerabilities and attack surfaces
- https://owasp.org/www-project-embedded-application-security/
Supports
- OWASP embedded application security best practices and tooling
