| name | implementing-hardware-security-key-authentication |
| description | Implements FIDO2/WebAuthn hardware security key authentication including registration ceremonies, authentication flows, YubiKey enrollment, and passkey migration strategies. Builds a complete relying party server using the python-fido2 library that supports cross-platform authenticators, resident key (discoverable credential) workflows, and user verification policies. Use when working with implementing hardware security key authentication. |
| domain | cybersecurity |
| tags | ["FIDO2","WebAuthn","hardware-security-key","YubiKey","passkeys","passwordless-authentication","CTAP2"] |
| subdomain | identity-and-access-management |
| version | 1.0.0 |
| author | oyi77 |
| license | Apache-2.0 |
| atlas_techniques | ["AML.T0051","AML.T0054","AML.T0056"] |
| nist_ai_rmf | ["MEASURE-2.7","MEASURE-2.5","GOVERN-6.1","MAP-5.1"] |
| nist_csf | ["PR.AA-01","PR.AA-02","PR.AA-05"] |
Implementing Hardware Security Key Authentication
Overview
Cybersecurity skill for implementing hardware security key authentication. Follows industry best practices and security standards.
When to Use
Trigger phrases:
-
"implementing hardware security key authentication"
-
"Implements FIDO2/WebAuthn hardware security key authentication including registr"
-
Deploying phishing-resistant multi-factor authentication (MFA) using FIDO2 hardware security keys for high-value accounts (administrators, developers, privileged users)
-
Building a WebAuthn relying party server that supports both roaming authenticators (USB/NFC security keys) and platform authenticators (Windows Hello, Touch ID, Android biometrics)
-
Migrating an existing password-based authentication system to support passkeys (discoverable credentials) as a primary or secondary authentication factor
-
Enrolling YubiKey devices for an organization's workforce, including PIN setup, credential registration, and backup key provisioning
-
Implementing passwordless authentication flows that comply with NIST SP 800-63B AAL3 (authenticator assurance level 3) requirements
Do not use without HTTPS in production (WebAuthn requires a secure origin), for systems where users cannot physically access a USB/NFC port, or as the sole authentication factor without a recovery mechanism for lost keys.
When NOT to Use
- When you lack proper authorization for testing
- For production systems without change management
- When the task requires legal or compliance expertise beyond technical scope
Prerequisites
- Python 3.10+ with
fido2 (python-fido2 >= 2.0.0), flask, and cryptography libraries installed
- HTTPS-enabled web server (WebAuthn API requires secure context; localhost is exempt for development)
- FIDO2-compatible hardware security key (YubiKey 5 Series, SoloKeys, Titan Security Key) or platform authenticator
- Modern web browser supporting the WebAuthn API (Chrome 67+, Firefox 60+, Safari 14+, Edge 79+)
- Understanding of public key cryptography, challenge-response protocols, and HTTP session management
Workflow
import re
IOC_PATTERNS = {
"ip": r"\b(?:\d{1,3}\.){3}\d{1,3}\b",
: ,
: ,
: ,
}
() -> :
{k: re.findall(v, text) k, v IOC_PATTERNS.items()}