<p dir="ltr"><br>
Den 11 feb 2015 07:37 skrev "Trevor Perrin" <<a href="mailto:trevp@trevp.net">trevp@trevp.net</a>>:<br>
><br>
> On Mon, Feb 9, 2015 at 5:13 PM, elijah <<a href="mailto:elijah@riseup.net">elijah@riseup.net</a>> wrote:<br>
> ><br>
> > (3) We need common practices for "verified key transitions".<br>
><br>
> Do you mean this:<br>
>  - When you replace your long-term key, the old key signs the new (and<br>
> maybe vice versa)?<br>
>  - When someone presents their new key with correct signatures, you<br>
> silently replace the old one in your local trust store (no key change<br>
> warning)<br>
><br>
> I wonder how useful that is.  Consider the reasons for key replacement:<br>
><br>
> 1) You lost your old key<br>
> 2) You're proactively replacing your old key<br>
> 3) Your old key was compromised<br>
><br>
> This doesn't help (1).<br>
><br>
> It avoids the warning in (2), but adds complexity - a public key no<br>
> longer matches one fingerprint, now it can be verified by any<br>
> fingerprint that chains to it.  So your protocols have to deal with<br>
> these chains, and users will encounter situations where they had one<br>
> fingerprint for Alice before talking to her, and a different one<br>
> after.<br>
><br>
> (3) arguably becomes worse, because someone who steals your private<br>
> key can silently replace the public key your correspondents have for<br>
> you, just by messaging them.<br>
><br>
> I'm not sure this is a net positive.</p>
<p dir="ltr">What I want is identity declarations like more advanced PGP keys. </p>
<p dir="ltr">They would be static (append-only mechanism for updates), identified by the hash. And the main difference is that they would have room for new ways fields like key succession policies (requiring a chosen third party to agree?), revocation policy (if 3 of 5 of entities out of the group XYZ signs the revocation, it is valid even without a signature from my own key - allows you to show up in person with an ID card to get your key revoked if you lose your computer and all backups of the key), messaging policy (always sign mail to me, encrypt with PFS if sensitive; I always sign mails I send), updates must follow rules ABC (this can also even ban certain future configurations, you can say "I will NEVER send unsigned email), updates are available via sources 1, 2 and 3 (append-only, signed and using hash chains like git and Bitcoin blocks do), etc...</p>
<p dir="ltr">But you won't need to store the full multi-megabyte raw blob of all data, as all the fields could be separately hashed in a Merkle tree hash (or patricia tree? Supposedly you can prove if entries are lacking or not with them, IIRC), and a regular hash of that tree hash would be the identifier. </p>
<p dir="ltr">Not sure if a signature always should be appended or not, thoughts? Should it still be self-signed if the hash is how you always identify it? Maybe it is sufficient with having one of the entries in the tree hash be a signature of the other entries that are considered mandatory to include. Or you have two levels of tree hashes, one which is signed and which is based on the raw data as well as another tree hash that includes all the raw data plus the previous tree hash plus the signature. But that doesn't seem strictly necessary for avoiding tampering if you're always careful with verifying the hash. </p>
<p dir="ltr">With an interconnected network that propagate all public identity declaration hashes (like a mix of PGP keyservers and DHT) and that tracks who to ask to get the details for each key, lookups using the hash could be fast and reliable as long as you have an Internet connection. </p>
<p dir="ltr">A scheme like certificate transparency or a blockchain like Namecoin could be used to make sure there's no conflicting sets of appended entries or changes that has been published, as well as for key lookups. </p>