-
Notifications
You must be signed in to change notification settings - Fork 648
Description
Currently the README.md neither suggests how someone can get the key for verification of signatures without being vulnerable to a third party nor will there be a way to rotate the key to ensure one can reduce the risk of the key having been compromised or recover from it.
Is that correct, or did I miss something?
There are two well known ways to solve this: TUF and Web of Trust. And a way that is not realistic, which is always obtaining the rotated key in person. A widely observed log for the public keys can help less widely observed projects but has the same problem itself again. There are other implementations of the same concepts.
Are there any noteworthy other concepts to solve this?
Obtaining a fingerprint or similar of the public key in person from the owner is simply unrealistic. While it happens that people do this, it that needs to last for multiple decades (from my experience of projects where people use GPG Web of Trust), but key rotation needs to happen perhaps more often than yearly. The tools we use should also strive to automatically do this, e.g. before doing a signature, or where people desire harder compartmentalization prompt the user for a rotated key and refuse to sign until then.
TUF solves this by signing rotated keys with previous ones creating a chain of them. Then if you managed the expense of obtaining a fingerprint or similar of the key in person from the owner, you do not need to do that again on rotation, but instead follow the chain of key rotations.
The issue for TUF integration was closed: #86
Should that be reopened?
Web of Trust as known from OpenPGP solves this by obtaining a personal public key in person from someone you know, signing and publishing a statement that you did do so. To get to a public key for someone you did not meet you'd then follow this web constructed by these statements to the one you need. If someone rotates their key you do the previous again. AFAIK there is currently no implementation of a Web of Trust that has good usability and I'll omit a list of potential solutions for that here. Though it still manages to do better than only obtaining a key from some website.
As cosign supports creating keys, is it in scope to support key rotation?