ietf
[Top] [All Lists]

Re: My two cents on draft-leiba-rfc2119-update

2016-08-11 14:02:13
Eric Gray wrote:

For instance, a lot of external (non-IETF) documents use the same terms,
even referring to RFC 2119, and yet explicitly create implied differences
in interpretation.  For instance, I know of a few cases where - in spite
of an explicit reference to RFC 2119 - usage in context implicitly treats
"SHOULD" and "MAY" as equivalent (often because the fact that a requirement
is defined as something that SHOULD be done, makes it an optional
requirement - very much like "MAY").

We can take a parochial view and claim that this "outside usage" doesn't
affect us

We do not need to go that far.

Inside-IETF (ab)use of rfc2119 terminology is fairly common.


Canonical example of how bad it can get is PKIX (rfc5280).

The document targets three very distinct audiences:
 - implementors of PKIX ("relying parties")
 - application writers on top of PKIX implementations
 - PKIX-conforming CAs.

but often fails to indicate to which audience individual requirements
apply.

Then it creates lots and lots of SHOULD and MUST requirements on
Certificates and Certificate Extensions (Section 4) and on
CRLs and CRL extensions (Section 5), and goes on and
waters down essentially all of those SHOULDs into factual MAYs
with the concept of a "minimum requirements implementation".


You may now think "well, that still leaves the MUST in place".
WRONG.  All of the MUSTs in Sections 4 and 5 are _euthanized_
for "implementations of PKIX" with the following paragraph
in Section 6.1 of rfc5280 on the implementation of a certificate
path validation function (end of 3rd paragraph of section 6.1):


https://tools.ietf.org/html/rfc5280#section-6.1

   While the certificate and CRL profiles specified in Sections 4 and 5
   of this document specify values for certificate and CRL fields and
   extensions that are considered to be appropriate for the Internet
   PKI, the algorithm presented in this section is not limited to
   accepting certificates and CRLs that conform to these profiles.
   Therefore, the algorithm only includes checks to verify that the
   certification path is valid according to X.509 and does not include
   checks to verify that the certificates and CRLs conform to this
*> profile.  While the algorithm could be extended to include checks for
*> conformance to the profiles in Sections 4 and 5, this profile
*> RECOMMENDS against including such checks.


So much for the IETF itself being clear on its use of rfc2119
in its own standards and RFC documents.


-Martin