Your YubiKey is half the answer. The machine is the other half.
A YubiKey proves a key was born on a genuine YubiKey. It doesn’t say which machine that key is plugged into, or whose hands are on it. Smallstep answers the machine half, binding access for your admins and engineers to the laptop’s own secure element.

A YubiKey attestation identifies the key. Not the machine.
PIV attestation is strong proof: the key was generated on the YubiKey and never imported, and the statement carries the serial number, the firmware version, and the PIN and touch policy set at generation. But it attests any genuine YubiKey, including one bought this morning, and it says nothing about the machine the key is in. Approving the key is a separate step.
- Proves on-device key generation, not ownership
- Attests any genuine YubiKey, not only yours
- Nothing in the statement describes the host

Enrollment backed by hardware, not a shared secret
The YubiKey signs the ACME device-attest-01 challenge with a key it generated in hardware. Nothing enrolls on a static password or a SCEP challenge phrase anyone can copy.

The key proves a person. The laptop proves the machine.
A YubiKey travels between machines by design. A device credential is re-earned from that machine’s secure element and can’t be carried elsewhere. It also can’t tell you who is at the keyboard, which is why customers run both.

The lifecycle a security key does not manage
Hardware protects the key. It does not renew the certificate, rotate it, or retire it when someone leaves. Smallstep owns that lifecycle: short lifetimes, renewal gated on fresh attestation, and revocation that blocks a key from enrolling again. Laptop credentials renew unattended. YubiKey credentials re-attest on your schedule.

One device policy, every sensitive resource
The machine credential is what resources check. The same hardware-bound device identity anchors Wi-Fi and VPN with EAP-TLS, gates SSH and internal apps, and becomes a device factor at SSO login. Your YubiKey stays the user factor on top of it. One policy instead of six consoles that disagree.
For engineering teams, the same device credential carries hardware-bound SSH certificates for GitHub, so a YubiKey on an unenrolled laptop can’t push code.
Keep your YubiKeys. Add the layer they were never meant to be.
Attested enrollment, automated certificate lifecycle, and device identity, so resources that require both reject a lost key on a machine you have not approved.