-
Notifications
You must be signed in to change notification settings - Fork 47
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
Avoid manual downloading of dom0 rpm during bootstrapping #945
Comments
#467 is an alternative solution. |
@legoktm I think this is a good idea whether or not we end up working towards an ISO, although I think it's currently semi blocked on the last sentence you mentioned (bit more of an internal conversation about update cadence/making sure our upstream ask isn't too onerous). What I'm wondering if we do this is why we wouldn't also ship the .repo file and have it be autoconfigured in the postinnst. I think we can find some way of visually confirming to the user before they proceed with the installation, and/or we can still support the legacy method of checking and importing the key manually for users who want to go the extra mile. |
Yep. I'm happy with that idea as long as the Qubes team is happy as well. I had kind of mentioned this a while ago as an alternative approach to the
|
Bumping this for a couple reasons, besides the initial benefits discussed above:
|
Just flagging that depending on the Qubes team preferences and choices, we could also ask to ship our repository by default but keep it disabled, and then asks users to just issue
Or ship the repo file as a package too as it seems they are doing here https://www.qubes-os.org/doc/installing-contributed-packages/ |
I'm leery of having our repo included in dom0 by default (even disabled) because it essentially asks the Qubes team to put an elevated level of trust in us and our package repos - were we compromised there would be potential impact for Qubes users that never even looked at SD. But the contrib repo has come up as an option before. It's not exactly great either (now SD users need to add both contrib and us (the last via rpm)) but assuming they continue to maintain -contrib it's worth investigating. |
After our conversation with the Qubes team, it sounds like they're open to having a small rpm with our key and repo file in qubes-contrib. I made a small repo with an rpm .spec file, the .repo file, the pubkey, and our containerized build stuff (I don't know that Qubes will use the latter, but tbd); the spec file was as below, just to show how basic it can be (2 files!):
but there's a hiccup, as I've indicated in comments - we can't use afaict, the best we can do re key management is provide a bootstrapping script that the user runs after the initial RPM is downloaded and the transaction lock on the rpm database is lifted. |
Per @zenmonkeykstop's suggestion, I took a look at this, building on top of @rocodes' work. Here's the current status:
This ended up being easier than I expected. I think the I also took a look at other keyring/repo packages to see if there's anything extra we could do or what which best-practices exist. I found the following:
Next steps:
|
I want to split out the first step from #942 as its own separate issue:
https://workstation.securedrop.org/en/stable/admin/install.html#download-and-install-securedrop-workstation describes a lot of steps related to verifying the key, manually writing a .repo file, verifying and moving the RPM around and then finally installing it.
My proposed solution would be to have a
securedrop-keyring
RPM that is shipped in the Qubes repositories, so you can simply runsudo dnf install securedrop-keyring
from dom0 and it provisions our public signing key in/etc/pki/rpm-gpg/
(or elsewhere). Then the user creates the .repo file, and can runsudo dnf install securedrop-workstation-dom0-config
and we're all set. Instead of directly trusting the SD release key, we would be trusting that the Qubes-signed package provided us with the correct key (certainly if Qubes is compromised, the whole workstation is compromised anyways).This would largely require the Qubes team being willing to ship our key, figuring out details around update cadence, timelines, etc.
The text was updated successfully, but these errors were encountered: