[openpgp] Re: I-D Action: draft-ietf-openpgp-replacementke y-02.txt

Daniel Huigens <[email protected]>
Newsgroups gmane.ietf.openpgp
Message-ID <_vCCQ4cQunC8YzHL0oder_9QngbTWZJ2nLVf5jUssLMpN4-wAag6goursPWrOFD5lwyitOiuYBSxgiSFQ1Z6pzIL0-FnDNOlYXCneBRrjc8=@protonmail.com>
Hi Johannes & all,

At the OpenPGP email summit, folks agreed that there shouldn't be chains
of replacement keys, mainly for simplicity, but I also think it's
unnecessary.

If you have existing keys A and B where B replaces A, and then you
generate C replacing both, *and* you don't have access to key A, then
you can't sign a statement with key A saying that key C replaces it.
Therefore you can't create an equivalence binding.

You can sign a statement with key C saying that it replaces A, but
that's fairly meaningless and shouldn't be trusted in the absence of
other evidence, because anyone could sign such a statement claiming to
replace your key. Hopefully, by that time you would at least have some
trust / third-party sigs or w/e in key B, such that it's sufficient to
sign a statement with key B saying that key C is the replacement key.

Also, if you don't have the key material of key A anymore, it can't act
as a fallback key. In that scenario, you only want folks to use B or C.
Ideally, you would thus have a revocation certificate for key A lying
around somewhere, and use that to revoke key A.

I do agree that the note in the draft saying that key equivalence is
transitive is potentially confusing and perhaps it should just be
removed, in favor of explicitly saying that all keys in an equivalence
binding are equivalent to all the others (in some sense).

---

All of the above does not totally remove the question of what to do
when an implementation encounters chains in violation of the spec.

In our implementations and applications, I don't imagine we'll
proactively follow pointers in keys to look up other keys, at all.
Rather, we'll look up all available keys from WKD/KOO/whichever sources
are deemed appropriate, and then make a decision on which of those to
use. Even there, we might prefer to just pick the key that's most
recently generated or "most secure" (according to some heuristic).

The way I then imagine us using the information in the replacement key
subpacket is in the scenario where the user has manually verified /
trusted key A, and not the latest&greatest key B. Then, iff key A and
key B are equivalent, we can use key B instead of key A without asking
the user explicitly. That way, there are no chains to follow at all,
and at least the low-level API can be very simple, we just need
"select the key we like the most" and "are key A and B equivalent".
(For high-level APIs like SOP we might want something more abstract
as I've argued before.)

And then, the first step could later be expanded to take into account
the replacement key subpackets, but perhaps only if they present a
consistent view of the key holder's preference (i.e. without chains
and loops and so on).

Best,
Daniel

_______________________________________________
openpgp mailing list -- [email protected]
To unsubscribe send an email to [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.