Subject: RE: ticket 839: trustedCertifiers

From: "Paul Leach" <[email-masked]>
Date: Sun, 20 Mar 2005 13:47:07 -0800

I don't understand why making trustedCertifiers a hint reduces
interoperability.

As far as I can see, it increases it. It means that if the KDC doesn't
have a cert rooted in one of those certifiers, it doesn't have to just
give up -- it can use another one in the hope that the client will
accept it.

---

From: Sam Hartman <[email-masked]>
Date: Sun, 20 Mar 2005 17:36:28 -0500

>>>>> "Paul" == Paul Leach <[email-masked]> writes:

    Paul> I don't understand why making trustedCertifiers a hint
    Paul> reduces interoperability.

I have a KDC with two certs.  The KDC needs to do more than treat this
value as a hint to determine which cert to use.  In particular if the
KDC always gives back the wrong cert it will decrease interop.

    Paul> As far as I can see, it increases it. It means that if the
    Paul> KDC doesn't have a cert rooted in one of those certifiers,
    Paul> it doesn't have to just give up -- it can use another one in
    Paul> the hope that the client will accept it.

This is not about interop; the client can retry without
trustedcertifiers.

That said, supporting this functionality will allow a client in this
case to avoid a round trip.  Someone (Martin?) points out that doing
so makes debugging somewhat harder.  I think the tradeoff between
debugability and performance is is something the working group needs
to decide.  If the working group decides in favor of performance then
allowing a KDC to return some cert when its cert does not trace back
to one of the clients' trusted certifiers is fine.

That's all independent of the question of what should happen when the
KDC cert can be traced back to a trusted certifier.  There's a lot of
room on this axis.  You could argue that a KDC needs to be able to
build arbitrary paths in the PKI and any pkinit implementation needs
to be able to return the right cert if a path exists.  Alternatively
at the other end of the axis is the case when trustedcertifiers is
just a hint.  I believe either extreme is too far.  I'd be happier
with requiring KDCs to distinguish between certs based on
trustedcertifiers to the extent that they can build the paths to do
so.  I'm not sure how to put that into text.

--Sam