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

Viktor Dukhovni <> Thu, 09 March 2017 03:19 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id A7E77129717; Wed, 8 Mar 2017 19:19:24 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id HbCfQ_P6vvTc; Wed, 8 Mar 2017 19:19:23 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id DC96F1296FD; Wed, 8 Mar 2017 19:19:22 -0800 (PST)
Received: from [] ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPSA id 8C5F97A32D8; Thu, 9 Mar 2017 03:19:21 +0000 (UTC) (envelope-from
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 10.2 \(3259\))
Subject: Re: [Spasm] Last Call: <draft-ietf-lamps-eai-addresses-05.txt> (Internationalized Email Addresses in X.509 certificates) to Proposed Standard
From: Viktor Dukhovni <>
In-Reply-To: <>
Date: Wed, 08 Mar 2017 22:19:20 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <>
References: <alpine.OSX.2.20.1702111606270.2386@ary.qy> <> <> <> <> <> <> <>
To: "" <>, IETF general list <>
X-Mailer: Apple Mail (2.3259)
Archived-At: <>
X-Mailman-Version: 2.1.17
Precedence: list
Reply-To: "" <>, IETF general list <>
List-Id: IETF-Discussion <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 09 Mar 2017 03:19:25 -0000

> On Mar 8, 2017, at 8:17 PM, Wei Chuang <> wrote:
> Okay.  I think the direction then is to have SmtpUTF8Name respect rfc822Name name constraints and vice versa.

Well, no, the simplest proposal on the table is for SmtpUTF8Name to
be *prohibited* when rfc822Name constraints are present and SmtpUTF8Name
constraints are not.  When both present, they can operate independently.

The verifier logic is then:

	1. If neither rfc822Name constraints nor SmtpUTF8Name constraints
           are present in any CA certificate in the chain, any mixture of
           rfc822Name and SmtpUTF8Name SAN elements is valid.

	2. If some certificate in the chain contains *only* rfc822Name
	   constraints, then these apply to rfc822Name SAN elements, but
	   all SmtpUTF8Names are prohibited.

	3. When both types of constraints are present in all CA certificates
           that have either type, then constraints for each SAN type are
	   exclusively based on just the corresponding constraint type.

	4. If some certificate in the chain contains only SmtpUTF8Name
 	   constraints then those are unavoidably at risk of bypass via
           rfc822Name SAN elements when processed by legacy verifiers.
	   Therefore, this should be avoided, and the CA needs to
 	   publish rfc822Name constraints that prevent bypass.  Such
	   constraints *need not* be equivalent (not always possible)
	   to the desired SmtpUTF8Name constraints.  Rather, it suffices
	   to not permit rfc822Name elements that would be prohibited
	   if they were simply cut/pasted (with no A-label to U-label
           conversions) as SmtpUTF8Name elements.  It is not necessary
	   for these to permit everything that SmtpUTF8Name permits.

Thus for example, if SmtpUtf8Name only permits addresses in the non NR-LDH
domain "духовный.org" (or a specific set of addresses in such a domain),
then the corresponding rfc822Name constraint could just permit "." (or the
reserved "invalid" TLD if that's preferable) which is not a usable email
domain.  This ensures that only the permitted SmtpUTF8Name SANs are used
and no rfc822Name SANs are used.

If, instead the Smtp8Name constraints are excluded non-ASCII address forms,
then since these have no literal rfc822Name equivalents, the rfc822Name
constraints can be omitted with the same effect.

Only when the intention is to permit NR-LDH domains with either ASCII or
UTF-8 localparts (or an all-ASCII full address) do the rfc822Name and
SmtpUTF8Name constraints need to be fully equivalent.  This is of course
trivial to do.  Just cut/paste the same string into both types of