Nelson B Bolyard wrote:
I understand your question to be relating the way FF works today, and
NOT to the way it will/might work when CrlDP extension processing causes
automatic CRL fetches.

Yes, that's correct. My question was with respect to the current situation, i.e., if we were to approve inclusion of the Hongkong Post root now and include it in a near-term version of Firefox.

Yes, if a user possesses (or can find) the URL from which to download a
full CRL,  then as long as the CRL served from that URL remains a full CRL,
(It's allowed to change, BTW) the user could manually download that CRL
and it should work OK for him without any errors ... at least until CrlDP
processing happens, and maybe even after that.

OK, thanks. Now that we know that manually loading the full CRL for Hongkong Post will work, my next priority is getting more clarification on what either we or Hongkong Post (or both of us together) can do to forestall any problems in the future. (It would be lamentable if we included the Hongkong Post root and then users started getting errors in the future when NSS and Firefox are upgraded to support new CRL-related features.)

Here is my current understanding; please correct or confirm my understanding as appropriate:

* Hongkong Post-issued end entity certs include a cRLDistributionPoints extension that references the URL

  http://crl1.hongkongpost.gov.hk/crl/eCertCA1CRL2.crl

* The CRL located at this URL is a partitioned CRL that has an issuingDistributionPoint extension flagged as critical. Because NSS does not recognize the CRL IDP extension and the extension is marked as critical, NSS throws an error when a user attempts to manually load the CRL. This error presumably would also occur in future if NSS attempted to automatically fetch and process the CRL (i.e., as part of CRL DP support), unless NSS were changed to either implement the necessary IDP support or otherwise handle this case without error (see below).

* Hongkong Post also maintains a full CRL located at the URL

http://crl1.hongkongpost.gov.hk/crl/eCertCA1CRL1.crl

This CRL works correctly when manually loaded into Firefox today. It would also presumably work correctly in a future version of NSS with CRL DP support, if the URL for the full CRL were referenced in the CRL DP extension in the end entity certs.

* At present plans are for CRL DP support to be implemented in NSS (i.e., auto-fetching and processing of CRLs identified in the CRL DP extension), but not support for partitioned CRLs using the CRL IDP extension.


Given the above, here's my take on possible options for how to handle this situation in future (i.e., once CRL DP support gets implemented in NSS).

Option 1: Hongkong Post makes no changes to end entity certs, but removes the CRL IDP extension from the CRL at the URL referenced in the CRL DP extension. In this option Hongkong Post puts a full CRL at

  http://crl1.hongkongpost.gov.hk/crl/eCertCA1CRL2.crl

instead of a partitioned CRL. Once CRP DP support is implemented in NSS then NSS will auto-fetch the CRL and should process it normally.


Option 2: Hongkong Post re-issues all end entity certs with a different URL in the CRL DP extension. In this option Hongkong Post changes the CRL DP extension in all end entity certs to refer to the URL for the full CRL

  http://crl1.hongkongpost.gov.hk/crl/eCertCA1CRL1.crl

instead of the URL for the partioned CRL. Again, NSS with CRL DP support would fetch this full CRL and should process it without problems.


Option 3: Hongkong Post re-issues all end entity certificates to include two URLs, one for the full CRL and one for the partitioned CRL. NSS would then have to fetch the CRLs at both URLs, recognize that it couldn't use the partitioned CRL with the IDP extension, and instead use the full CRL. This behavior, if implemented, would seem to be consistent with RFC 5280 as discussed below.


Option 4: Hongkong Post makes no changes to either its CRLs or its end entity certs, and NSS ignores partitioned CRLs encountered in CRL DP processing. In this option Hongkong Post would make no changes whatsoever to its current practices. NSS would fetch the partitioned CRL located at the URL referenced in the CRL DP extension, find that it had a CRL IDP extension marked as critical, and then simply ignore the CRL, treating the revocation status of the certificate as unknown.

Here I'm following RFC 5280, section 5.2.5 ("Issuing Distribution Point"): "... implementations that do not support this extension MUST either treat the status of any certificate not listed on this CRL as unknown or locate another CRL that does not contain any unrecognized critical extensions." As I read it, this allows NSS to not throw an error but instead to simply act as if no CRL were present -- in other words, as would happen today by default in the absence of CRL DP support.

An additional twist is if the user had previously manually loaded the full CRL. My reading of RFC 5280 is that NSS could use that CRL in preference to the CRL identified in the CRP DP extension -- i.e., in this case NSS is able to "locate another CRL that does not contain any unrecognized critical extensions". This would let "power users" to enable revocation checking (just as they can do today) even if typical users don't get this benefit.


From my point of view option #3 is the most preferred option, but option #4 would be acceptable: It would ensure that typical users would not see any errors, and that power users could still enable revocation checking by loading the full CRL manually -- in other words, it would maintain the same situation we're in now in the absence of CRL DP support in NSS.

Your thoughts?

Frank

--
Frank Hecker
hec...@mozillafoundation.org
--
dev-tech-crypto mailing list
dev-tech-crypto@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-crypto

Reply via email to