ietf
[Top] [All Lists]

Re: Last Call: <draft-ietf-lamps-eai-addresses-05.txt> (Internationalized Email Addresses in X.509 certificates) to Proposed Standard

2017-02-09 11:34:49
On Wed, Feb 8, 2017 at 7:19 AM, Viktor Dukhovni 
<ietf-dane(_at_)dukhovni(_dot_)org>
wrote:

On Wed, Feb 08, 2017 at 06:46:41AM -0800, Wei Chuang wrote:

This draft breaks the existing name constraint restrictions, because
the same CA can now issue EE certificates with SmtpUtf8 addresses
outside the permitted rfc822Name tree.  Possibly including all-ASCII
addresses that just happen to be found in an SmtpUtf8 subjectAltName.

The problem is that the namespaces of the existing "rfc822Name"
constraints and the new "SmtpUtf8Name" constraints substantially
overlap leading to unexpected behaviour.

I wouldn't say unexpected.

It may well be expected as a consequence of decisions in the draft,
but it is objectively unwanted new behaviour for a name constrained
CA, to suddenly be able to issue certificates for previously excluded
addresses.  Software that allows such violations of previously
enforced constraints would IMHO be CVE-worthy.

The draft says the rfc822Name and SmtpUtf8Name
name constraints are applied separately, and don't affect other results
(see section 6).

Yes, that's what I'm objecting to.  This is a design error in the
draft.  The namespaces are *not* separate, and orthogonal constraints
are not desirable.


You are stretching the language used above.  They are "applied separately".


I think we're open to changing how name constraints are applied.  But its
worth spelling out the design concern clearly before going down that path.
The concern is that as we add a new representation for international email
address that we are seeing that combinatorial increase in comparisons
needed for name constraints.  An alternate design of SmtpUtf8Name would
have to check constraints for rfc822Name and legacy email address in
Distinguished Names in addition to SmtpUtf8Name and vice versa for those
forms.  This design chooses to simplify that by keeping rfc822Name name
constraint behavior and separately defining a new SmtpUtf8Name name
constraint behavior that works only on SmtpUtf8Name names.  That simplifies
the work of the path verifier and eliminates potential domain (A/U label)
conversions between the alternate forms.  Work is now shifted to the issuer
which must explicitly define SmtpUtf8Name name constraint.



It is followed by examples illustrating the behavior of
the overlap case.  The reason for separating the rfc822Name and
SmtpUtf8Name constraints was to minimize the domain A-label to U-label
conversions (and vice versa) (which I believe you're asking for too).

This is not a valid reason to violate the meaning of existing name
constraints.  It is not even clear why any conversions would be
required.  All that one needs to do is satisfy rfc822Name constraints
when no SmtpUtf8Name constraints are present in the same certificate.
When the domain is a non-ASCII domain, no permitted tree or excluded
sub-tree matches without conversion.  Thus the address is acceptable
only if the rfc822Name constraints contain only excluded sub-trees.

The only corner case is when an all-ASCII address (both localpart
and domainpart) for some reason appears in SmtpUtf8Name.  Such
names could match a full address in rfc822Name constraints (not
just a domainpart sub-tree).  This is why it is important to be
clear about whether all-ASCII names are valid in that context.

The assumption being made in the draft is that a SmtpUtf8Name
aware issuer will also be aware of the name constraints on that type.

The issuer may be SmtpUtf8 aware, but the parent CA that sets the
issuer's constraints (possibly some time ago in the past) may not.
The issuer should not be able to evade name constraints.


Assuming we keep the current name constraint design, we can add a
requirement that name constraints on email addresses has to be consistently
applied on the certificate issuance path.  In other words, an issuer with
only rfc822Name name constraints in its path can only issue rfc822Name
subAltName email addresses.  Similarly SmptUtf8Name.  An issuer with both
SmtpUtf8Name and rfc822Name in its path can issue both subjectAltName name
form email addresses.

-Wei

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

<Prev in Thread] Current Thread [Next in Thread>