Geoff,

In re-reading the repository structure document I realized that my edits were based on the previous version (03) vs. the current version (04), because I started them before the 04 version was posted. Sorry 'bout that. I will review the 04 version and post comments for material contained there that is not present in the 03 version. Using the IETF diff tool, it appears that most of the text upon which I commented is still present, so most of the comments/edit are still applicable.

I think it would be very helpful if the document used the term directory, instead of the more generic term "publication point" when a directory is intended, and avoid the unwieldy "repository system publication point directory" phrase.

I see that the 04 version provides a more thorough discussion of Figure 1, but it still does not discuss the CRLDP instances in the example.

I like the added text about "locking" a directory during an update, so that RPs don't retrieve an inconsistent set of files, but why is this a SHOULD vs. a MUST? An RP will have to process the files, figure out that they are mismatches, and retry the retrieval if it grabs an inconsistent set of files, right?

I also find it a confusing that the document talks about EE certificate pub points (in the early part of the document), without making a clear distinction between singe-use and multi-use EE certificates, in this regard. My impression is that a single-use EE certificate appears only in a corresponding CMS object. This is true for ROAs and manifests, and I think it would be an appropriate rule for all such certificates, going forward. If so, then these EE certificates never appear in a directory, except in CMS objects) and that is not clear from the text.

The multi-use EE certificate discussion is also confusing to me. Section 2.2 says that all certificates issued under the CA certificate appear in the directory for that CA, which means that multi-use EE certificates appear in that directory. Section 2.3 talks about a (separate?) EE directory, but does not make it clear to me when this directory is distinct from that of the CA that issued these certificates. The revised text in 2.2 add a discussion of "guidelines" for file name extensions for different types of RPKI objects (in the broad use of this term). I agree that some of the file name derivation discussions are just advisory, but the text does not provide enough info in every case to ensure that alternative file name generation approaches achieve the same goals. For example, If we want to make it easy for an RP to match a CRL and a manifest to a CA certificate, then using the CA's public key to derive the name for the corresponding files is important. The text should be make it clear that this sort of association is important (critical?), and that the CA ought not (MUST not) keep old copies of manifests and CRLs in a directory. I also I think that the file extensions ought to be MUSTs. Otherwise, RPs will have to decode each file and examine the ASN.1 structures to figure out which files are certificates, CRLs, manifests, ROAs, etc. I think this is an undue burden to impose.

It might be helpful to incorporate a table that summarizes repository naming conventions. Below is my first cut at such a table.

Object Type             File extension  File name source
CA certificate  .cer                    Based on ??
CRL                     .crl                    hash of CA's public key
Manifest                .mft                    hash of CA's public key

Single-use EE           N/A (because it is      N/A (embedded in
certificate             in a CMS object)        signed object)

ROA                     .roa                    hash of EE public key

Other objects that make use of single-use certificate will have a file extension documented in the RFC defining each object and will use the hash hash of EE public key to generate the file name??

Multi-use EE cert       .ee (??)                hash of EE public key ??

Other multi-use EE cert signed objects will have have a file extension documented in the RFC defining each object and will use ??? to generate the file name

Section 4 says that it is important to maintain the same CA directory name when reissuing a CA certificate, without a key change. The section should be more explicit about the motivation for this, i.e., each subordinate certificate contains an AIA extension pointing back to that directory. But, it seems that section also should discuss the implications of this with regard to certificate reissuance for a CA, e.g., the need for multiple CRLs and manifests if the old and new CA certificates overlap in time. Also, if a CA rekeys, it can still reissue subordinate CA certificates, unilaterally. One presumably wants EE certificates under the reissued CA certificates to not have to change the AIA back-pointers as well. Thus this section should encompass both reissued (same key) and rekeyed CA certificates, right?

Another issue that I still find a bit confusing is the need to generate a new Subject name for a CA whenever the key changes (See Section 2.2, before the file name and extension discussion). This is not a requirement that PKIs impose in general, so I think it is important to explain why the RPKI imposes this constraint. Also, the text that discusses this notes that it is OK for the (rekeyed) CA to put objects into the same directory. The text does not provide a rationale for this, and it does introduce some complexity, e.g., multiple instances of CRLs and manifests in the same directory. I'm guessing that the motivation here is that using the same directory allows the rekeyed CA to (unilaterally) reissue certificates to its subordinate CAs and not break the AIA back-pointers in the EE certificates under those certificates. If that's the motivation, we should say so.

Conversely, the document says (Section 2.2) that if a CA gets a new certificate and does not change its key pair, the new certificate replaces the old one (if the file name is derived exclusively from the CA's public key.) This implies that a reissued certificate triggers immediate replacement, instead of allowing old and new certificate to coexist. If this is what we intend, it probably should be said explicitly, and motivated, e.g., because this procedure avoids ambiguity for RPs. (This may be a lot less desirable for algorithm migration, i.e., we may need to allow for overlapping validity intervals. I'm still thinking about issues like that.)

Finally, I think it might be helpful to ad a table that concisely describes the forward and back pointers used in CA and EE certificates, in the form of AIA and SIA extension contents. This table should indicate when a URL points to a directory vs. a file, and indicate how an RP uses the pointer (why it is needed) in constructing certificate paths. (Note that these extensions are non-critical, and not needed for certificate path validation, only for discovery). Since Section 5 of the repository structure document describes a top-down tree walk for path discovery, it seems especially important to motivate the use of back pointers here. I realize that there is a discussion of AIA and SIA in the resource certificate profile, but I think it would be helpful to have a table of this sort here.

When I began work on the algorithm migration I-D, I realized that we first needed to document the key rollover process (with no algorithm change). There are hints about this in a few places in this document, but not a complete discussion of this important topic. Unless the WG chairs object, I will include the key rollover discussion as part of the I-D that is also going to discuss algorithm migration. (Maybe I'll call it key and algorithm rollover :-).)

Steve
_______________________________________________
sidr mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/sidr

Reply via email to