Replace kwallet with oo7-daemon #700
Labels
No labels
a11y
btrfs
Closed As
Can't fix
Closed As
Deferred to upstream
Closed As
Duplicate
Closed As
Fixed
Closed As
Invalid
Closed As
Won't fix
default-apps
easyfix
epel
experience
flatpak
installation
kinoite
marketing
meeting
meeting-request
meta
mobile
need-info
need-work
nvidia
packaging
pending-action
updates
x11
No milestone
No project
No assignees
4 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
kde/tracker#700
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
I would like to suggest replacing kwallet with oo7-daemon https://github.com/linux-credentials/oo7/tree/main/server as a Rust re-implementation of the secret service specification.
Currently fedora already ships oo7 (the client library that the daemon is built upon) along with oo7-cli, a secret-tool replacement so most of the dependencies are there already.
oo7-daemon, offers a full drop-in replacement of gnome-keyring-daemon/kwallet with PAM support as well. It has good test coverage and works out of the box on both GNOME and KDE Plasma making it possible to eventually drop both gnome-keyring-daemon and kwallet.
KDE upstream is interested in using that as a replacement of kwallet as they have implemented the necessary prompting interfaces at https://invent.kde.org/mart/ksecretprompter.
Both the daemon and client library offers two cryptographic backends; one based on Rust native libraries and one based on openssl so it not be a problem to use the opeenssl based one if desired.
Please let me know if further information is needed.
This must be implemented in coordination with workstation/tickets#506
Would you suggest to replace it for existing installations or only new ones?
I think it might wind up being done on upgrades too, because of the PAM changes.
We don't have a way to migrate from kwallet keyrings to oo7-daemon ones. So if it is possible to only replace it for new installations, I would start with that.
Although, if that is the only blocker we have, I might spend some time in adding support for that as well.
@bilelmoussaoui wrote in #700 (comment):
Realistically, I think that is probably the only major blocking issue, as the mechanics of the rest of it is straightforward.
I am forwarding this message from David Edmundson
kwalletrc:
and we have a few things we need to solve for things to work smoothly.
make QtKeychain look up apiEnabled and use libsecret (or have startplasma do it and set the env explicitly) Otherwise on Plasma things take a stupid roundtrip, though it should work in theory.
Modify Plasma Login Manager pam files to include oo7
Users KCM password changing needs to go via pam directly and not AccountsService
Portals : ksecretd apparently provides a portal impl, we need that to be overriden to be oo7
kwalletd has code to migrate stuff to the o.f.secrets provider, but we need to make sure something triggers that since kwalletd is launched on demand
If oo7 takes over the secrets portal we need to make sure that existing portal secrets from kwallet are migrated correctly.
We also need to make sure that the KWallet UI in systemsettings (kwalletmanager) behaves sensibly. The configuration UI for it has lots of options that don't apply to oo7 that shouldn't be shown then
We don't have that kind of option for Silverblue and Kinoite so this means that we will have to ship both for a while and let user migrate. An automatic migration path would be great.
Related KDE Linux ticket: https://invent.kde.org/kde-linux/kde-linux/-/issues/566
This now lives at https://invent.kde.org/plasma/plasma-workspace/-/tree/master/ksecretprompter
@siosm wrote in #700 (comment):
I noticed that kwallet supports GPG as well, do we know how widely that is used? That would make automatic migration difficult. In any case, I spent some time last evening writing a parser of the kwallet file format so I can do automatic migration for it similar to gnome-keyring v0 format: https://github.com/linux-credentials/oo7/pull/439
If anyone using KDE and wants to try it out, kwallet-cli should give you a list of all your tokens.
I have no idea how commonly used the GPG encrypted wallet format is used. At least in Fedora, we default to the Blowfish one and try to ensure it's connected to user login credentials.
Change filed: https://fedoraproject.org/wiki/Changes/oo7_Secrets_Service_Provider
It looks like this is happening for F45 for GNOME variants with gdm dist-git commit 2bcbc53b and for other desktops with releng/fedora-comps#1326.
But I don't see where this is done for KDE. What am I missing?
I have deferred it due to lacking time to deal with integration issues. I'm having some discussions with upstream KDE about it too.
OK, so this is deferred only for KDE if I understand correctly? (I'm working on it for the Atomic Desktops in atomic-desktops/config#798).
Yes, any Fedora variant that uses KDE Plasma Desktop or Plasma Mobile should not require oo7 currently.