-
-
Notifications
You must be signed in to change notification settings - Fork 48
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
split-gpg2 should accept (and ignore) NOP command #9483
split-gpg2 should accept (and ignore) NOP command #9483
Comments
after I shared this issue on on #sequoia on irc.ofct.net, upstream developer neal said: | h01ger: ideally the chameleon should be fixed rather than client software |
filed upstream as https://gitlab.com/sequoia-pgp/sequoia-chameleon-gnupg/-/issues/96 now. |
upstream asks for more info as grepping GnuPG's source revealed that GnuPG used to have a nop action, but it was removed in 1998... |
I created a separate test qube, with worthless keys, so I could enable debug logging. This revealed the following:
|
Enumerating secret keys with "KEYINFO --list" does not work over a restricted connection. As a result, gpg prints "gpg: problem with fast path key listing: Forbidden - ignored", which Mutt interprets as a prompt the user must respond to. This causes the user to need to press enter twice to send a signed email. Sequoia Chameleon does not implement the fallback and is unable to list secret keys or decrypt messages. The filtering done by split-gpg2 is far stronger than what gpg-agent does, so there is no loss of security. Fixes: QubesOS/qubes-issues#9483
This command is used by Sequoia Chameleon. Fixes: QubesOS/qubes-issues#9483.
That's extra defense that @HW42 added, and it IMO makes sense. Maybe make it configurable, so user can still use this extra filtering with compatible applications? |
I’d prefer for the default connection to be unrestricted, mostly because I expect |
From split-gpg2 perspective, it's more important what is used as the backend (gpg-agent side), not the frontend. And here IIUC sequoia can't help (yet?). |
On Tue, Oct 22, 2024 at 07:30:48PM -0700, Marek Marczykowski-Górecki wrote:
From split-gpg2 perspective, it's more important what is used as the backend
(gpg-agent side), not the frontend. And here IIUC sequoia can't help (yet?).
why do you think so? (that sq cant help..)
…--
cheers,
Holger
⢀⣴⠾⠻⢶⣦⠀
⣾⠁⢠⠒⠀⣿⡁ holger@(debian|reproducible-builds|layer-acht).org
⢿⡄⠘⠷⠚⠋⠀ OpenPGP: B8BF54137B09D35CF026FE9D 091AB856069AAA1C
⠈⠳⣄
It started as a virus and has mutated into an IQ test.
|
AFAIK sequoia does not implement gpg-agent itself (it can just talk to the GnuPG's gpg-agent). |
Unless the functionality is really needed I would prefer to use the restricted socket. The protocol filtering approach has the risk of the filter and gpg interpreting things differently. In such case using the restricted socket has the big advantages that you would need another bug in gpg (that's also accessible via the filter) to be able to extract a secret. Why does sequoia need the unrestricted socket? Even with a agent implementation by sequoia this would only address memory safety issues, not necessarily other bugs. OTOH depending on how nicely their code is to adopt, it might be easiert to implement a restricted agent with their code, thereby avoiding the protocol confusion problem altogether. |
I just looked through the code to see if there were any such cases. I believe there are none (which is good), but it wasn’t trivial to check this (which is bad).
Sequoia Chameleon only knows how to list secret keys via
In the long term I agree. In the short term, I wonder if a workaround could be used: make a separate unrestricted agent connection and send |
Thanks. Given that in the code comment you mentioned that the warning message from gpg confuses for example mutt it might be worth taking it upstream. Both for the specific case, but also maybe it would make sense to reevaluate if it's worth blocking this command.
That's an interesting idea. |
How to file a helpful issue
Qubes OS release
R4.2
Brief summary
split-gpg2 does not work with Sequoia Chameleon.
Steps to reproduce
Use split-gpg2 with Sequoia Chameleon.
Expected behavior
Works
Actual behavior
Fails. Part of this (not supporting
NOP
) is fixed by QubesOS/qubes-app-linux-split-gpg2#17 but the failure mode is now “unusable secret key” instead of the connection being dropped.The text was updated successfully, but these errors were encountered: