We should find a good transition away from Erinn's signing key. There are already different proposals on the table with different kinds of efforts involved:
Move on to a different key of one of the Tor people.
I'm strongly in favor of creating a role key and continue to sign files individually.
How should we handle that role key in a sane way given how distributed we are?
Define a set of trusted people.
Have a computer hardened as possible to do key manipulation with the master key. Hardened X60 + Tails + air gap?
After the master key has been generated, use gfshare to split it so that a subset of the trusted people will be needed to ever reconstitute the master key again.
Use the master key to create subkeys that will go on smartards. Have some people in the Tor Browser team carry these smartcards. Maybe 2 or 3 smartcards not in the same part of the world. Optionally other people in the team could carry revocation certificates for these subkeys.
Every year, have enough trusted people meet to be able to rotate the subkeys.
What are the blockers you see for giving all users the full benefits of reproducible builds?
I would rather postpone that for another time. Right now there's a hell lot of documentation out there that assumes that files are signed individually. I'm interested in finding the best ways to continue doing so.
What are the blockers you see for giving all users the full benefits of reproducible builds?
I would rather postpone that for another time. Right now there's a hell lot of documentation out there that assumes that files are signed individually. I'm interested in finding the best ways to continue doing so.
Huh? I fail to see why "there's a hell lot of documentation out there that assumes that files are signed individually" should prevent enumerating the blockers for moving to a different verification scheme. But it seems at least the amount of documentation relying on single keys is one of the blockers (which is, btw, kind of a catch-22 situation as we won't get new documentation if we are not switching the verification scheme). Good, what else?
A few stupid thoughts as I am distracted from other things:
There doesn't need to be a single unitary solution here. Suppose that our we believe that what we'd really like to do (were usability not an issue) is sign everything using threshold postquantum signatures over blake2 + cubehash, with a drum solo to drive away the evil spirits. And suppose that from a usability POV we have no idea how to make that usable, and we think that we need to do gpg signatures for the forseeable future if we want any hope of users actually checking these things.
What stops us from doing both? Give people a high-security way to check packages and a high-usability way if we don't believe we can make a single way that has both properties.
What stops us from doing both? Give people a high-security way to check packages and a high-usability way if we don't believe we can make a single way that has both properties.
Nothing is stopping us from doing both. In fact, we do both already. There was just the thought that we maybe could drop the high-usability only way and have a high-security AND, say, usability way of doing things instead.
As Mike noted today on IRC we are hopefully soon able to ship signed MAR files for the updater which means that it might not be worth all the fancy efforts in trying to safeguard a role signing key given that we need to include that one MAR signing key into our Tor Browser which creates yet another single point of failure... (granted I am simplifying a bit given the certificate pinning but still...).