Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

snap: Force usage of libsecret everywhere and remove password manager service plug #2477

Draft
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

3v1n0
Copy link
Contributor

@3v1n0 3v1n0 commented Nov 22, 2023

See each commit for further explanations.

The snap uses now a local and confined password manager, so it won't ever
try to access to the system one.

As per this disable the plug that could be a security hole.
When mailspring is confined it will only be able to access to
the password storage via libsecret and that will save the data
locally using the file storage.

As per this, don't make electron to use some other passwor storage
backend when running in different desktop environments.
This is already the case for the snap in most scenarios,
but in some this could not happen if no secret portal is
available in the system.
In such cases, let's still force using a local secret backend.
@foundry376-bot
Copy link

This pull request has been mentioned on Mailspring Community. There might be relevant details there:

https://community.getmailspring.com/t/password-management-error-after-the-latest-upgrade/7298/33

@3v1n0
Copy link
Contributor Author

3v1n0 commented Dec 4, 2023

Oh this may require canonical/snapcraft#4477 wondering if using it without "=" but a space instead works anyways.

@3v1n0 3v1n0 marked this pull request as draft December 6, 2023 02:38
@@ -56,6 +56,9 @@ apps:
TMPDIR: $XDG_RUNTIME_DIR
# Fallback to XWayland if running in a Wayland session.
DISABLE_WAYLAND: 1
# Force using the libsecret local backend in all the cases, even if no
# portal is detected.
SECRET_BACKEND: file
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm we may want to ship this separately since it'll require everyone to re-authenticate their accounts again (since we won't read their previously saved passwords from the password manager service)

Is there a way we can verify libsecret is receiving an encryption master key via a portal? I mostly want to be be sure that Chrome doesn't fall through to https://chromium.googlesource.com/chromium/src/+/53.0.2785.100/components/os_crypt/os_crypt_linux.cc#71 and use the password peanuts for everyone!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, I can see that... Well, I kept this a draft as we can avoid it for now.

However ea49cbf is safe to add and can likely be moved to another PR if you prefer.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants