WIP implementaion using TPM2 for fido on Linux
  • Rust 93.6%
  • Nix 5.5%
  • Python 0.9%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-07-17 23:04:38 +09:00
.github/workflows enable ci 2026-07-15 02:06:33 +09:00
.sqlx fix db format 2026-07-17 17:35:06 +09:00
agents test working 2026-07-17 16:15:33 +09:00
assets wip: polkit test and project id 2026-07-15 10:35:00 +09:00
docs remove GTK frontend code and dependencies 2026-07-14 21:48:19 +09:00
migrations fix db format 2026-07-17 17:35:06 +09:00
nix remove env 2026-07-17 19:06:43 +09:00
src fix using reference 2026-07-17 23:04:38 +09:00
.envrc initial 2026-07-13 15:17:53 +09:00
.gitignore initial 2026-07-13 15:17:53 +09:00
AGENTS.md fix using reference 2026-07-17 23:04:38 +09:00
Cargo.lock remove env 2026-07-17 19:06:43 +09:00
Cargo.toml passphrase thing 2026-07-17 18:54:09 +09:00
flake.lock test working 2026-07-17 16:15:33 +09:00
flake.nix fix db format 2026-07-17 17:35:06 +09:00
LICENSE Add GNU General Public License version 3 2026-07-15 10:35:00 +09:00
README.md remove GTK frontend code and dependencies 2026-07-14 21:48:19 +09:00

Linux TPM Fido2

Linux TPM Fido2 is an experimental Linux TPM-backed FIDO2/WebAuthn authenticator.

It exposes a browser-usable virtual HID authenticator, which uses the TPM for signing.

What It Does

  • Presents a virtual FIDO2 HID authenticator to browsers.
  • Creates TPM-backed P-256 credentials for registration and assertion.
  • Supports secure-boot PCR-bound credentials.
  • Supports recovery material unlocked by a passphrase and kept TPM-bound.
  • Checks user acknowledgement through polkit.

System assumptions

  • Linux
  • Systemd enabled
  • TPM2 on system
  • Secureboot Enabled (Recommended)

Usage

Daemon:

linux-tpm-fido2 --store-dir .linux-tpm-fido2-store --tpm-path /dev/tpmrm0 --uhid-path /dev/uhid

Useful flags:

  • --dry-run on the daemon prints the resolved configuration without opening devices.
  • --store-dir selects the SQLite store and UI settings directory.

Features

  • TPM-backed signing keys and PCR policy bindings.
  • Recovery slots stored separately from the primary credential metadata.
  • Sign counter persistence.

Future Work

  • Expand CTAP2 compatibility for additional browser request shapes.
  • Compatibility with polkit
  • Further security review

Current Limits

  • Experimental only.
  • No FIDO certification claims.
  • No production security claims for the development store.