Skip to content
@linux-credentials

Credentials for Linux

Bringing Passkeys to the Linux desktop

The Credentials for Linux Project

The project aims to:

  • Allow applications to create, store, and retrieve credentials in a standardized way across Linux desktop environments
  • Implement FIDO2 platform functionality on Linux, allowing the use of Passkeys, FIDO2 and FIDO U2F credentials on hardware security keys, TPMs, and phones
  • Allow integration with third-party credential providers.

For more information, see:

This project merges and evolves previous efforts, including:

Repositories

The project is composed of multiple repositories:

  • libwebauthn: Linux native implementation of FIDO2 and FIDO U2F Platform APIs.

    • Fully written in Rust
    • No longer relies on Mozilla's authenticator-rs
    • Supporting multiple transports (currently USB HID, BLE, and Hybrid Transport). The library is designed to have pluggable transport implementations, making it easy to add transport backends (NFC is planned)
  • platform-api: API proposal and reference implementation for a service which will expose FIDO2 and FIDO U2F Platform APIs via a D-Bus interface, for desktop applications to use - including conteinerized apps such as Flatpaks.

Motivation

Other platforms

Here is a list of related APIs available on other platforms, which offer similar functionality:

Further references:

Contributing

We welcome contributions!

  • Check out the Issues tab of each repository.

  • Areas needing expertise:

    • Platform Authenticator support. Similarly to Android devices, and Windows Hello. In order to implement this (and request FIDO2 certification), support for the following is needed:

      • Trusted Platform Modules (TPMs)
      • User-verification devices (e.g. fingerprint readers)
    • Unprivileged access. FIDO2 credentials are scoped to an origin (e.g. https://example.org). The proposed API allows applications to specify any origin (as needed by browsers). Hence, it requires an additional user confirmation step for security purposes. This extra step may not be needed if the request sender could be verified, as the legitimate owner of the specified origin.

    • As an example, Android has implemented two APIs: Fido2ApiClient (unprivileged), and Fido2PrivilegedApiClient (privileged) for use by web browsers. The main difference between the two is that the privileged API allows specifying an arbitrary origin, whilst the unprivileged API requires linking your app to your origin.

    • PAM, and passwordless login (long-term goal). A PAM module would allow using FIDO2 for user login purposes, e.g. using the platform authenticator (similar to Windows Hello).

    • D-Bus Portal API design

    • Proposal and contribution processes (Flatpak, GNOME, etc.)

    • UI/UX

Popular repositories Loading

  1. libwebauthn libwebauthn Public

    FIDO2 (WebAuthn) and FIDO U2F platform library for Linux written in Rust

    Rust 385 14

  2. .github .github Public

Repositories

Showing 2 of 2 repositories
  • libwebauthn Public

    FIDO2 (WebAuthn) and FIDO U2F platform library for Linux written in Rust

    linux-credentials/libwebauthn’s past year of commit activity
    Rust 385 LGPL-2.1 14 21 (2 issues need help) 1 Updated Feb 13, 2025
  • .github Public
    linux-credentials/.github’s past year of commit activity
    0 0 0 0 Updated Feb 11, 2025

Top languages

Loading…

Most used topics

Loading…