-
Notifications
You must be signed in to change notification settings - Fork 46
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
Move from GnuPG to Sequoia #812
Comments
A few notes from this week:
|
|
I was curious, so I did as DemiMarie suggested and replaced gpg2 in qubes.Gpg with chameleon, and.... it worked. Re upstream, there are still significant unimplemented methods that would still be needed to satisfy
Few examples of things that aren't implemented:
also
|
Thanks for this interesting feedback about the chameleon! (cc: @teythoon)
If you are thinking of using the chameleon, then it would be helpful for us if you could open an issue with the list of methods that you need so that we can prioritize them. If not, we'll get to them eventually.
The chameleon is intended to be a drop-in replacement for gpg. So anything not yet implemented is on the to do list.
As an aside: please don't work around any limitations of the chameleon. These are bugs in the chameleon. Thanks! |
The best way to drive the chameleon development into the direction you want is to propose a test suite that it should pass.
If you find divergences, please do file bugs. In this particular case, I'm not sure there is a divergence, because GnuPG also doesn't emit colon delimited output, at least not the version I'm testing:
|
Hi @nwalfield @teythoon thanks so much for your fast responses :) Look forward to spending more time looking at chameleon and at Sequoia generally, and great to hear about your plans. Qubes makes use of a wrapper around Re: test suite-- that makes sense. I/we will file bug reports as you suggest as relevant info surfaces (although I'm not sure on what timeframe, we're definitely interested in looking at this more as capacity permits). You'd also probably have a lot of interest in your comments+work in the upstream Qubes ticket that @legoktm mentioned. Re gpg import with-colons (debian 12, but same behaviour on debian 11):
|
Ah, I didn't know about |
@rocodes by the way, the latest release of the Chameleon now supports |
Just some more verbose notes on how to move forward here. encryptionJournalists write replies to sources, which are encrypted to the source's public key and sent to the server. Currently this goes over The source's public key is already stored in our This should provide a noticable performance improvement because 1) we no longer need to import the source's PGP key into the decryptionTo decrypt messages from sources, the encrypted file is sent to the I think we have two options here: ChameleonContinue using Pros:
Cons:
Custom RPC with SequoiaWe write our own Qubes RPC protocol that invokes Sequoia (maybe via Pros:
Cons:
I think we could probably do...both? Start with the Chameleon to get the Sequoia benefits right away and then figure out a custom RPC protocol later on. packagesChameleon isn't in bookworm (just trixie) and via IRC it was mentioned that |
Starting with the Chameleon seems to be the best idea. Demi did recent improvements to support Which I have tested and used Demi said on Matrix qubes-public:
Marek said on Matrix qubes-public:
Which is an edge case but also a deal breaker when it happens. Doing custom RPC with sequoia only works in the split-gpg (v1) style, as Sequoia has no agent, only the Chameleon version has. The client would be a wrapper and the server side could also be a workaround. It a subset of Sequoia options were used, this could work, but using split-gpg2 is cleaner from my POV, less maintenance burden letting Qubes OS restrict calls that can be made to the server. |
If something is missing that you need it would be helpful for us to prioritize development if you would open an issue.
What deal do you think is being broken?
Both the chameleon and sq can use gpg-agent. Can you please elaborate on what you mean? |
Sure!
For me, signing and encryption operations works, but validating signatures of users that updated their keys from vulnerable algorithms will be reported by sequoia as invalid: This is not a problem on all use cases of course.
Outdated information from my part, just read your comment about having gpg-agent support in sequoia (not only chameleon) now. Thanks for working on this! |
I think you are saying the following: A certificate, which relies on weak algorithms, is created at t0. At t1, it creates a signature. At t2, the certificate is updated to not rely on weak signatures. At t3, the signature still can't be verified. Is that correct? In that case, yes, the signature will be considered invalid. To be clear, this is not due to the use of
🙇♂️ |
Piggy backing off of freedomofpress/securedrop#6499 on the server.
Once we determined how Rust fits into our overall strategy (including but not limited to dependency review), and especially if Sequoia support gets merged into the server, I think it would be a good idea to discuss replacing
sd-gpg
with a Sequoia based solution as well.Such a move would also imply that the
qubes.Gpg
RPC call couldn't be used anymore, and we would need to replace it with our own.The text was updated successfully, but these errors were encountered: