linux-credentials / linux-credentials/oo7

[Question] theoretical passwordless login impl.

Open
#506 13 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

question server
Dominant language
Rust
Stars
373
Forks
39
Avg merge
14h 2m
Merged PRs (30d)
14

Description

**Situation:**
- Password-less methods like yubikeys etc have their own unique keys. A backup yubikey has a different second key. (see fido2 hmac-secret for how to get deterministic keys out)
- Users have a backup-password in-case they do not have their yubikey with them.

For login there currently exists a yubico provided pam module which handles multiple keys and delegates to pam_unix for password login.
However that module doesn't emit the user-password when unlocking with a yubikey, since it doesn't store it.

**Problems:**
- No single password during login -> no keyring unlock during certain flows.
- Current keyring prompters ask for a password, I doubt they are extendible like PAM?

The first thing that comes to mind for me when needing a shared secret is SOPS, but that seems to be aimed at ssh or age keys, not arbitrary ones. Another option is to simply encrypt the shared secret with each key. Keys can hopefully be distinguished by id or method.
I believe would need to solve that shared secret issue outside of oo7, since oo7 seems to already have been written for the single password model.

**Question:**
If I were to implement a proof of concept for passwordless with oo7.
I suppose I would need to:
1. write my own pam-module (to support passwordless methods and to extract the shared key, update on passwd change)
2. create a 3rd prompter in the server to talk to custom prompter client.
3. create a prompter client (to support passwordless methods and to extract the shared key)

Is what I described the intended path to support passwordless methods?

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 with oo7's single-password model and the server and prompter interfaces mentioned in the issue. Trace how a custom PAM module, third prompter, and prompter client would carry a shared key; done means a maintainer-confirmed design for passwordless methods and keyring unlocking.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux, rust
Domain
authentication, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.