Horizontal-org / Horizontal-org/Tella-Android

Feature Request: Support for Hardware Security Keys (YubiKey/FIDO2) in Vault Unlocking

Open
#407 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

improvement new feature
Dominant language
Kotlin
Stars
113
Forks
29
Avg merge
2d 1h
Merged PRs (30d)
9

Description

What is changing?

id like to request support for hardware security keys (e.g., YubiKey) as an authentication method for unlocking vaults on Android, replacing or supplementing password/PIN/biometrics.

How will this impact users?

More secure ways to unlock encrypted storage.

Preferred implementation: FIDO2 with PRF extension.
Use Android's WebAuthn API (Android 14+) to register a resident credential on a FIDO2 device. For unlocking, derive the vault's symmetric key from the PRF output: pass a fixed salt via getAssertion with prf:eval extension, then expand the 32-byte result to AES-256 key using HKDF. All operations local, no network required. Allows multiple keys for backup.
Simpler alternative: HMAC-SHA1 challenge-response.
User configures shared secret on the key. App sends random challenge via NFC/USB, verifies response, derives unlocking key. Can be implemented with yubikit-android library.
Optional: OpenPGP integration via OpenKeychain for asymmetric encryption of the master key.
This would enable passwordless unlocking with high security.
Any plans for similar features?
Thanks.

WebAuthn PRF Extension: https://w3c.github.io/webauthn/#prf-extension
YubiKey FIDO2 Documentation: https://developers.yubico.com/WebAuthn/
YubiKey Challenge-Response: https://developers.yubico.com/yubikey-manager/Challenge-Response_Configuration.html
yubikit-android: https://github.com/Yubico/yubikit-android

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by mapping the existing Android vault-unlock flow, then review Android's WebAuthn API and the yubikit-android integration described in the issue. Done should include a local hardware-key unlock path, support for backup keys, and documented behavior for the proposed FIDO2 PRF approach or an agreed alternative.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, kotlin
Domain
authentication, cryptography, mobile-dev, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.