-
Notifications
You must be signed in to change notification settings - Fork 64
Add YubiKey and hardware security key guide #416
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
mattaereal
merged 21 commits into
security-alliance:develop
from
DicksonWu654:codex/issue-405-hardware-security-keys
Apr 6, 2026
+99
−0
Merged
Changes from all commits
Commits
Show all changes
21 commits
Select commit
Hold shift + click to select a range
2424949
Add hardware security key guide
DicksonWu654 6ad10f5
Credit Opsek authors on YubiKey guide
DicksonWu654 4ae7df0
Remove decorative separators from hardware security keys guide
DicksonWu654 d2df0cd
Fix lint in hardware security keys guide
DicksonWu654 edb7248
Tighten hardware security keys guide
DicksonWu654 3a37a12
Move hardware security keys guide to endpoint security
DicksonWu654 3c6f40a
Tighten hardware keys guide metadata
DicksonWu654 a795a06
Update hardware-security-keys.mdx
DicksonWu654 d57f7d4
Update hardware-security-keys.mdx
DicksonWu654 6f46f1c
Add hardware security key guide
DicksonWu654 e4ff5a4
Credit Opsek authors on YubiKey guide
DicksonWu654 0639a39
Remove decorative separators from hardware security keys guide
DicksonWu654 1a1d617
Fix lint in hardware security keys guide
DicksonWu654 a0c71f1
Tighten hardware security keys guide
DicksonWu654 44503c0
Move hardware security keys guide to endpoint security
DicksonWu654 2dd6046
Tighten hardware keys guide metadata
DicksonWu654 ba12c86
Merge reviewed hardware security key updates
DicksonWu654 cfcfb48
Add YubiKey-specific setup guidance
DicksonWu654 b6312ad
docs: tighten hardware key setup guidance
DicksonWu654 a1f274b
Delete AGENTS.md
mattaereal d087242
Merge branch 'develop' into codex/issue-405-hardware-security-keys
mattaereal File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
96 changes: 96 additions & 0 deletions
96
docs/pages/guides/endpoint-security/hardware-security-keys.mdx
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,96 @@ | ||
| --- | ||
| title: "Hardware Security Keys | Security Alliance" | ||
| description: "Use hardware security keys on critical accounts, keep a backup enrolled, and avoid weak recovery paths." | ||
| tags: | ||
| - Security Specialist | ||
| contributors: | ||
| - role: wrote | ||
| users: [dickson, louis, pablo] | ||
| --- | ||
|
|
||
| import { TagList, AttributionList, TagProvider, TagFilter, ContributeFooter } from '../../../../components' | ||
|
|
||
| <TagProvider> | ||
| <TagFilter /> | ||
|
|
||
| # Hardware Security Keys | ||
|
|
||
| <TagList tags={frontmatter.tags} /> | ||
| <AttributionList contributors={frontmatter.contributors} /> | ||
|
|
||
| ## Summary | ||
|
|
||
| > 🔑 **Key Takeaway for Hardware Security Keys:** Use FIDO2/WebAuthn security keys on high-value accounts, register | ||
| > at least two keys per critical account, disable SMS fallback where possible, and test recovery before you need it. | ||
|
|
||
| Hardware security keys are one of the strongest practical defenses against phishing, credential stuffing, and | ||
| SIM-swap-based account takeovers. They are especially valuable for email, source control, registrars, cloud platforms, | ||
| social accounts, and any admin or financial account that could be used to pivot into the rest of your organization. | ||
| This guide focuses on YubiKeys and similar FIDO2/WebAuthn hardware keys. | ||
|
|
||
| ## For Individuals | ||
|
|
||
| These steps apply to personal and work accounts that support FIDO2/WebAuthn security keys or passkeys stored on a | ||
| hardware key. | ||
|
|
||
| ### Setup Checklist | ||
|
|
||
| - [ ] Buy at least **two** security keys from a reputable vendor such as Yubico | ||
| - [ ] Prefer keys that match your device mix: | ||
| - USB-C for modern laptops and phones | ||
| - NFC if you regularly authenticate on mobile | ||
| - [ ] Label one key **Primary** and the other **Backup** | ||
| - [ ] Register both keys on every critical account that supports them: | ||
| - Primary email | ||
| - GitHub and code hosting | ||
| - Registrar and DNS providers | ||
| - Cloud and deployment platforms | ||
| - Banking, custody, or treasury accounts | ||
| - Social and communication accounts | ||
| - [ ] Where offered, prefer: | ||
| - **Security key** | ||
| - **Passkey on hardware key** | ||
| - Other phishing-resistant WebAuthn/FIDO2 options | ||
| - [ ] Disable **SMS** as a recovery or second-factor method wherever the service allows it | ||
| - [ ] Save provider-issued backup or recovery codes offline | ||
| - [ ] Test both the primary and backup key after enrollment | ||
|
|
||
|
DicksonWu654 marked this conversation as resolved.
|
||
| ### YubiKey Setup Notes | ||
|
|
||
| - Register both your primary and spare YubiKeys during the same setup session whenever the service allows it | ||
| - Set a PIN on the YubiKey or FIDO2 credential where the workflow supports it, and store that PIN separately from the | ||
| key itself | ||
| - If your YubiKey supports NFC and it is new, activate NFC before you rely on it for mobile logins | ||
| - Prefer the service's **Security key** or **Passkey** option on a YubiKey over app-based OTP when phishing-resistant | ||
| login is available | ||
| - If a service only supports authenticator-app codes, Yubico Authenticator can keep those codes tied to the YubiKey, | ||
| but treat that as a fallback rather than equivalent protection to WebAuthn security-key login | ||
|
|
||
|
DicksonWu654 marked this conversation as resolved.
|
||
| ### Practical Use | ||
|
|
||
| - Keep the **Primary** key with you for normal logins | ||
| - Store the **Backup** key in a separate secure location, not in the same bag or drawer | ||
| - Maintain a short note in your password manager listing which critical accounts have which keys enrolled | ||
| - For high-value accounts, avoid storing passkeys in a password manager; keep them on the hardware key or another | ||
| dedicated phishing-resistant authenticator instead | ||
| - If a service allows multiple authentication methods, avoid leaving weaker fallback paths enabled unless they are | ||
| operationally necessary | ||
| - Replace lost or damaged keys immediately and re-test the remaining enrolled key | ||
|
|
||
| ### Recovery Discipline | ||
|
|
||
| - Do not wait until you lose a key to learn how account recovery works | ||
| - If you lose your only key and do not have a second enrolled key or a usable recovery path, you can lock yourself out | ||
| of critical accounts at the moment you most need them | ||
| - Verify that your recovery path does not depend on a phone number if you are trying to reduce SIM-swap risk | ||
| - If an account only supports app-based MFA or SMS, record that exception clearly and prioritize moving the account to | ||
|
DicksonWu654 marked this conversation as resolved.
|
||
| a stronger provider or stronger configuration when possible | ||
|
|
||
| ## Further Reading | ||
|
|
||
| - [Opsek YubiKeys Cheatsheet](https://github.com/Opsek/Yubikeys-cheatsheet) | ||
| - [Yubico Setup Guide](https://www.yubico.com/setup/) | ||
| - [Yubico: YubiKey Authenticator](https://www.yubico.com/products/yubico-authenticator/) | ||
|
|
||
| </TagProvider> | ||
| <ContributeFooter /> | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -337,6 +337,7 @@ rootfs | |
| GitHub | ||
| GitLab | ||
| GoDaddy | ||
| Opsek | ||
| Alchemix | ||
| Bram | ||
| dmarcian | ||
|
|
||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.