Skip to content

Commit 1ca720e

Browse files
committed
Move goals to a separate file.
1 parent 98e399c commit 1ca720e

File tree

2 files changed

+58
-51
lines changed

2 files changed

+58
-51
lines changed

GOALS.md

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# Goals
2+
3+
The goal of this repository is to define a spec for clients (apps, browsers,
4+
etc.) to retrieve user credentials in a uniform way across Linux desktop
5+
environments.
6+
7+
Some high-level goals:
8+
9+
- define an API to securely create and retrieve local credentials
10+
(passwords, passkeys, security keys)
11+
- create and retrieve credentials on remote devices (e.g. via CTAP 2 BLE/hybrid
12+
transports)
13+
- Provide a uniform interface for third-party credential providers
14+
(password/passkey managers like GNOME Secrets, Bitwarden, Keepass, LastPass,
15+
etc.) to hook into
16+
17+
Some nice-to-haves:
18+
19+
- Design a specification for a platform authenticator. I'm not sure whether this
20+
needs to be specified, or whether it could be considered and implemented as a
21+
first-party credential provider.
22+
- A security key manager (e.g., for setting security key client PIN)
23+
24+
Some non-goals:
25+
26+
- Fully integrate with any specific desktop environment. Each desktop
27+
environment (GNOME, KDE, etc.) has its own UI and UX conventions, as well as
28+
system configuration methods (e.g., GNOME Settings), which this API will need to integrate with.
29+
Because of the variation, we intend to leave integration with these other
30+
components to developers more familiar with each of the desktop environments.
31+
For now, we are using bare GTK to build a UI for testing, but any UI
32+
implementation in this repository is for reference purposes. If anyone is
33+
willing to do some of this integration work, feel free to contact us!
34+
35+
- Create a full-featured password manager. Features like Password syncing,
36+
password generation, rotation, etc. is not part of this specficiation. Other
37+
password manager projects should be able to use this to make their credentials
38+
available to the user uniformly, though.
39+
40+
- BSD support. While we'd love to help out all open desktop environments, we don't
41+
know enough about any BSD to make it useful for them. Hopefully, the design
42+
process is transparent enough that someone else could design something that
43+
works for BSDs.
44+
45+
## Current Work
46+
47+
- April 2025: Added web extension for testing in Firefox.
48+
- March 2025: Integrated libwebauthn to support USB authenticators.
49+
- May 2024: Met with developers in GNOME and systemd to design internals for
50+
securely storing device credentials.
51+
- Jan 2024: Defined the [scenarios](/doc/historical/scenarios.md) that we expect this
52+
API to cover. We are working on extracting [API methods](/doc/api.md) required to
53+
implement the interactions between the client, portal frontend, portal backend,
54+
machine and mobile devices. Once that is done, I intend to convert the API into
55+
a [portal spec](/doc/historical/design-doc.md), making it fit normal D-Bus/portal patterns.

README.md

Lines changed: 3 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -68,57 +68,9 @@ There is also a demo web extension that can be used to test the service in Firef
6868

6969
## Goals
7070

71-
The goal of this repository is to define a spec for clients (apps, browsers,
72-
etc.) to retrieve user credentials in a uniform way across Linux desktop
73-
environments.
74-
75-
Some high-level goals:
76-
77-
- define an API to securely create and retrieve local credentials
78-
(passwords, passkeys, security keys)
79-
- create and retrieve credentials on remote devices (e.g. via CTAP 2 BLE/hybrid
80-
transports)
81-
- Provide a uniform interface for third-party credential providers
82-
(password/passkey managers like GNOME Secrets, Bitwarden, Keepass, LastPass,
83-
etc.) to hook into
84-
85-
Some nice-to-haves:
86-
87-
- Design a specification for a platform authenticator. I'm not sure whether this
88-
needs to be specified, or whether it could be considered and implemented as a
89-
first-party credential provider.
90-
91-
Some non-goals:
92-
93-
- Fully integrate with any specific desktop environment. Each desktop
94-
environment (GNOME, KDE, etc.) has its own UI and UX conventions, as well as
95-
system configuration methods (e.g., GNOME Settings), which this API will need to integrate with.
96-
Because of the variation, we intend to leave integration with these other
97-
components to developers more familiar with each of the desktop environments.
98-
For now, we are using bare GTK to build a UI for testing, but any UI
99-
implementation in this repository is for reference purposes. If anyone is willing to do some of this integration work, feel free to contact us!
100-
101-
- Create a full-featured password manager. Features like Password syncing,
102-
password generation, rotation, etc. is not part of this specficiation. Other
103-
password manager projects should be able to use this to make their credentials
104-
available to the user uniformly, though.
105-
106-
- BSD support. While we'd love to help out all open desktop environments, we don't
107-
know enough about any BSD to make it useful for them. Hopefully, the design
108-
process is transparent enough that someone else could design something that
109-
works for BSDs.
110-
111-
## Current Work
112-
113-
- April 2025: Added web extension for testing in Firefox.
114-
- March 2025: Integrated libwebauthn to support USB authenticators.
115-
- May 2024: Met with developers in GNOME and systemd to design internals for
116-
securely storing device credentials.
117-
- Jan 2024: Defined the [scenarios](doc/scenarios.md) that we expect this
118-
API to cover. We are working on extracting [API methods](doc/api.md) required to
119-
implement the interactions between the client, portal frontend, portal backend,
120-
machine and mobile devices. Once that is done, I intend to convert the API into
121-
a [portal spec](doc/design-doc.md), making it fit normal D-Bus/portal patterns.
71+
The primary goal of this project is to provide a spec and reference
72+
implementation of an API to mediate access to web credentials, initially local
73+
and remote FIDO2 authenticators. See [GOALS.md](/GOALS.md) for more information.
12274

12375
## Mockups
12476

0 commit comments

Comments
 (0)