On 03/02/2017 14:30, Ryan Sleevi wrote:
On Thu, Feb 2, 2017 at 9:37 PM Jakob Bohm <jb-mozi...@wisemo.com> wrote:

On 03/02/2017 05:22, Ryan Sleevi wrote:
On Thu, Feb 2, 2017 at 3:59 PM, Jakob Bohm <jb-mozi...@wisemo.com>
wrote:

On 02/02/2017 00:46, Kathleen Wilson wrote:

All,

I've added another Potentially Problematic Practice, as follows.


https://wiki.mozilla.org/CA:Problematic_Practices#Issuer_Encoding_in_CRL
The encoding of the Issuer field in the CRL should be byte-for-byte
equivalent with the encoding of the Issuer in the certificate; that is,
using the exact same string types and field contents. The specs (RFC
2459,
RFC 3280, RFC 5280) permit them to mismatch, but that causes
compatibility
issues with various clients -- in such cases client software might not
find
the entry for the revoked certificate in the CRL.

As always, I will appreciate your thoughtful and constructive feedback.

We ran into this situation several times while adding entries to OneCRL
for revoked intermediate certificates, because our script pulled the
data
from the CAs' CRLs where possible.

We have filed https://bugzilla.mozilla.org/show_bug.cgi?id=1330968 to
update the OneCRL client to be encoding agnostic when doing the Issuer
comparisons.


What should a CA do if they have used different encodings of the same
issuer DN in different certs that point to the same CRL location?

Wouldn't a more proper set of rules be:

1. The encoding of the Issuer field in the CRL must be the same as in
  the SubjectDN in the issuing certificate.

2. The IssuerDN in all future issued certificates must the same as in
  the SubjectDN in the issuing certificate.

3. If any previously issued certificates did not follow rule 2, the CA
  must publish a list of the exact IssuerDN encodings used in such
  certificates.


What value does 3 provide?


It provides data to allow services such as OneCRL (or even direct CRL
checking code in applications) to work around such past practices by
simply using a table of known Issuer name in certificate to actual
subject name in issuing certificate mappings, rather than trying to
implement fuzzy matching algorithms.


So don't you think it's useful and important to state the goal you're
trying to achieve when you propose Mozilla be prescriptive of all CAs?

The stated goal was to be *less* onerous than Kathleens proposal, which
was the the CRL issuer DN should be encoded exactly as it is in *every*
certificate referring to that issuer.

For the majority of CAs where this was always the case, neither
requirement would do involve any action at all.  For the cases where a
CA has in the past issued certificates and CRLs with different IssuerDN
encoding, but has done so consistently, my proposal would allow the CA
to end its problematic practice without having to roll a new
intermediary CA with a different CRL service URL.

For the third case (which may or may not be as common as the second
one) where a CA has in the past issued certificates and CRLs with
different IssuerDN encoding, but has already mended its ways so more
recently issued certificates have the same IssuerDN encoding as in the
CAcert and CRL, the original proposal would have required *the same
CRL* to contain two conflicting IssuerDN encodings while my proposal
would allow such a CA to simply make a public statement that this is
the situation (with some specific details) and then continue.


Put differently, there is a considerably high bar for requiring CAs take
some action - or answer a particular question. Making sure it's clear why
can help evaluate the value of what you propose, otherwise it's very easy
to dismiss such suggestions as random non sequitors.


The data is minimal and compact, unlike CT logs.


For example, this appears as a nonsequitor, because no one has proposed
sending CT logs to clients (the contextual way to read this suggestion,
given the statement that follows). Another way to read it (ignoring what
follows) suggests perhaps confusion between a CT log (which clients don't
download) and an SCT (which is minimal and compact for what it is). Or it
could be read that you're suggesting someone simply comb the CT logs,
extract the CRL URLs, and compare those against the issuer fields present.

I was indeed suggesting the impracticality of both these causes of
action.


While it seems highly unlikely you're proposing the last option, given your
expressed disdain and occasional confusion about CT, I mention it because
it's example of where the data can be independently obtained, rather than
using the threat of force (which is, implicitly, what is behind every CA
communication - the threat of removal), and arguably in a way that more
accurately captures practical impact.

The complete dataset
from all public CAs combined is likely to be just a few kilobytes
uncompressed, much less compressed.



Potentially, this same table as a substitute for fuzzy mapping can also
be used when building/following certificate chains.


Right, so just to follow:

You're proposing that, rather than list it as a problematic practice for an
edge case from a few CAs, Mozilla use a CA communication - possibly with a
change to the Baseline Requirements - so that they can write additional
code that no other client implements and ship several kilobytes (at least)
of data and code.

No, I am suggesting that while *still* listing it as a problematic
practice for an edge case from a few few CAs, Mozilla offers those few
CAs an easier way out, while at the same time obtaining for both itself
and any other implementors (such as Google's BoringSSL and Microsoft's
CNG) a table of the only values that code for that edge case will need
to handle.

I was also suggesting, that if, after gathering data, the resulting
table is very small, using the table in code might be easier than
coding an algorithm that matches certificates to issuers and CRLs for
all the needed non-identical cases.  This however would be an
implementation choice, as any other algorithm giving correct results
would solve the problem.


It does seem like Kathleen's current proposal is far more reasonable, and
so no, your proposal does not seem like a proper set of rules.



Enjoy

Jakob
--
Jakob Bohm, CIO, Partner, WiseMo A/S.  https://www.wisemo.com
Transformervej 29, 2860 Søborg, Denmark.  Direct +45 31 13 16 10
This public discussion message is non-binding and may contain errors.
WiseMo - Remote Service Management for PCs, Phones and Embedded
_______________________________________________
dev-security-policy mailing list
dev-security-policy@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-security-policy

Reply via email to