Re: RFC 5280 interpretation of trust anchor certificates
Michael StJohns <[email protected]> Sun, 9 Oct 2022 21:17:49 -0400
| Newsgroups | gmane.ietf.x509 |
|---|---|
| Message-ID | <[email protected]> |
On 10/9/2022 4:03 PM, Niklas Matthies wrote: > Hi Michael, > > On Sun 2022-10-09 at 14:21h, Michael StJohns wrote on pkix: >> On 10/9/2022 1:52 PM, Niklas Matthies wrote: > : >>> In section 6.1.1, there is the following wording on page 76: >>> >>> The trust anchor information may be provided to the path >>> processing procedure in the form of a self-signed certificate. >>> When the trust anchor information is provided in the form of a >>> certificate, the name in the subject field is used as the trusted >>> issuer name and the contents of the subjectPublicKeyInfo field is >>> used as the source of the trusted public key algorithm and the >>> trusted public key. >>> >>> The first sentence seems to indicate that the case of providing a >>> trust anchor in the form of a non-self-signed certicate is not >>> considered here. But the second sentence doesn't repeat the >>> "self-signed" bit, which can be interpreted as that sentence also >>> applying to non-self-signed certificates. However, if that is the >>> case, why does the first sentence restrict itself to specifically >>> self-signed certificates? >> >> In the above, it's basically because it didn't really need to be >> repeated to be understood to refer to the same certificate which was >> referenced in the first paragraph. > > So, if I understand correctly, the intent is that the second sentence > also only applies to self-signed certificates. Hence, the > specification given by the second sentence of how to reduce a > certificate to a "plain" trust anchor is, strictly speaking, only > applicable to self-signed certificates, as far as RFC 5280 is concerned. > > That's not quite what I said or meant. What I meant was there was no reason to include "self-signed" in the second sentence because it was implied that we were talking about the same certificate. In any event, you're going to be happiest if you stop reading "self-signed certificate" and read "trust anchor information in whatever form provided". "... trust anchor information may be provided ... in the form of a self-signed certificate..." does not prevent the provision of the trust anchor information (d)1,2,3,4 in another format. >>> On page 74 there is also the following wording: >>> When the trust anchor is provided in the form of a self-signed >>> certificate, this self-signed certificate is not included as >>> part of the prospective certification path. >>> >>> If RFC 5280 also allows the possibility of trust anchors being >>> provided in the form of non-self-signed certificates, then it would >>> seem that the above restriction would not apply to those, i.e., that >>> they may be included as part of the prospective certifcation path. >>> However, I don't see how that would make any sense. >> >> Look at the Certificate Path Validation algorithm described in >> RFC5280. A self-signed certificate provides the information needed >> to initialize that algorithm, as does an intermediate CA. There's >> also RFC5914 which describes a non-self-signed ASN1 structure which >> provides basically the same level of information. It's pretty trivial >> to transform a self-signed certificate or other CA certificate into >> an RFC5914 format TrustAnchorInfo object. > > Yes, that's clear to me. My point is, if another specification (ETSI > specifications, in this case) refers to RFC 5280 for path validation > using trust anchors in the form of non-self-signed certificates, then > that specification would have to specify how to map non-self-signed > certificates to trust anchors as understood by RFC 5280, because RFC > 5280 only addresses self-signed certificates. It does not. That self same section you quote just suggests self-signed certificates as one form of trust anchor info and actually lists what the trust anchor info needs to consist of. > > Specifying that mapping is trivial, of course (it's the same as for > self-signed certificates), but without specifying it there is a formal > disconnect between the two specifications. > > I'm actually surprised that RFC5914 isn't tagged as updating 5280. I wouldn't actually say "disconnect" as Section 6.1.1 bullet (d) just says "trust anchor information" and then notes that a self-signed certificate is one form. >>> All the wording taken together, my conclusion up to now was that RFC >>> 5280 simply does not consider the possibility that the trust anchor >>> could be provided in the form of a non-self-signed certificate, and >>> that therefore, specifications which *do* allow for that possibility >>> (such as in the context of ETSI trusted lists) have to clarify how >>> that case maps onto what RFC 5280 expects. >>> >>> If that interpretation is incorrect, that is, if RFC 5280 doesn't >>> actually care about whether a trust-anchor-representing certificate >>> provided as input to the path validation algorithm is self-signed or >>> not, then maybe an erratum is in order? >> >> See RFC5914, section 3 - TrustAnchorList/TrustAnchorChoice - a >> Certificate (of any form, including X.509) is one form of a >> TrustAnchor. I think we're good. > > Just to clarify: There is no particular reason why RFC 5280 should > restrict certificate-represented trust anchors to self-signed > certificates, but it just happens to do so for historical reasons? It goes back before that I think to X.509 v1. A self-signed certificate was a well defined ASN1 object that could be used to carry trust information. It could also be used to carry the information needed to enroll a public key in a certificate. In any event, I believe you're mis-reading 5280 as restricting trust anchor information to X509 self-signed certificates. It does not. Later, Mike > > Niklas > > _______________________________________________ > pkix mailing list > [email protected] > https://www.ietf.org/mailman/listinfo/pkix _______________________________________________ pkix mailing list [email protected] https://www.ietf.org/mailman/listinfo/pkix