Re: [Spasm] Different EAI options for carrying IDNs

Russ Housley <housley@vigilsec.com> Tue, 09 May 2017 21:35 UTC

Return-Path: <housley@vigilsec.com>
X-Original-To: spasm@ietfa.amsl.com
Delivered-To: spasm@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4D77C12EB26 for <spasm@ietfa.amsl.com>; Tue, 9 May 2017 14:35:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id dsGtXUvuzICO for <spasm@ietfa.amsl.com>; Tue, 9 May 2017 14:35:42 -0700 (PDT)
Received: from mail.smeinc.net (mail.smeinc.net [209.135.209.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5F21F12EB22 for <spasm@ietf.org>; Tue, 9 May 2017 14:35:42 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by mail.smeinc.net (Postfix) with ESMTP id CBEBB3004DB for <spasm@ietf.org>; Tue, 9 May 2017 17:35:41 -0400 (EDT)
X-Virus-Scanned: amavisd-new at mail.smeinc.net
Received: from mail.smeinc.net ([127.0.0.1]) by localhost (mail.smeinc.net [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 6Zz4lB0HWHA6 for <spasm@ietf.org>; Tue, 9 May 2017 17:35:40 -0400 (EDT)
Received: from a860b60074bd.home (pool-108-45-101-150.washdc.fios.verizon.net [108.45.101.150]) by mail.smeinc.net (Postfix) with ESMTPSA id 0FD253004B6 for <spasm@ietf.org>; Tue, 9 May 2017 17:35:40 -0400 (EDT)
From: Russ Housley <housley@vigilsec.com>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Date: Tue, 09 May 2017 17:35:39 -0400
References: <CAAFsWK3ydxV1RzpE9=Ex7Q5ddz9HL0BWAuubs8kxOraZQ4akTQ@mail.gmail.com> <29B90E2A-42A1-41E8-9741-3B8405AE2EBB@dukhovni.org>
To: SPASM <spasm@ietf.org>
In-Reply-To: <29B90E2A-42A1-41E8-9741-3B8405AE2EBB@dukhovni.org>
Message-Id: <B934ABD3-8677-41F9-BAD3-51F0E2003BBA@vigilsec.com>
X-Mailer: Apple Mail (2.3273)
Archived-At: <https://mailarchive.ietf.org/arch/msg/spasm/eloT_k23Wfa26jdnVePJ_LFMy3s>
Subject: Re: [Spasm] Different EAI options for carrying IDNs
X-BeenThere: spasm@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "This is a venue for discussion of doing Some Pkix And SMime \(spasm\) work." <spasm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spasm>, <mailto:spasm-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spasm/>
List-Post: <mailto:spasm@ietf.org>
List-Help: <mailto:spasm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spasm>, <mailto:spasm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 09 May 2017 21:35:44 -0000

I agree with everything that Viktor has proposed with one, hopefully minor, point to discuss regarding comparison of rfc822Name.  My understanding is that the left-hand-side of the at sign is a case-sensitive compare, but the right-hand-side of the at sign is case-insensitive compare.

With the change to the name constraints discussed in Chicago, the name constraints never include the at sign or anything on the left-hand-side, so this has no impact on enforcing name constraints.  It does impact the comparison of the SAN (SubjectAltName) to the email message.

Russ


> On May 9, 2017, at 1:32 AM, Viktor Dukhovni <ietf-dane@dukhovni.org> wrote:
> 
> 
>> On May 7, 2017, at 6:42 PM, Wei Chuang <weihaw@google.com> wrote:
>> 
>> To resolve the direction of the EAI draft, I've tried to summarize the different
>> options from the earlier mail threads on draft-ietf-lamps-eai-addresses-09 and
>> highlight particular features that might help differentiate the approaches.  In
>> particular there might have been confusion with the earlier Option 1, so this
>> describes draft -09 take on it.  This then tries to summarize the two very
>> different approaches of carrying IDNs solely as A-label (Option 2) and U-label
>> (Option 4).  This also describes the option of providing both SAN forms
>> rfc822Name and SmtpUTF8Name that was brought up in the thread as well (Option 3). 
>> I've tried CC'ing the folks who proposed these different options, in case I've missed
>> anything in the summary.  Comments welcome, particularly about about a preferred
>> direction.
> 
> This is clearly a difficult area to pin down without being *very* precise in
> one's language.  Some of the alternatives described, that are attributed to
> me differ from what I actually attempted to propose.  So whatever we ultimately
> agree on, it will be very important that the draft describe it clearly, in detail,
> with good examples, and with strategic redundancy (i.e. repetition) that it will
> be unlikely to be misconstrued.
> 
> My preference at this point is I think roughly option 1.  That is:
> 
> 1.  When the localpart is ASCII, store the SAN as an rfc822Name SAN with
>    U-labels in the domain part encoded as A-labels.
> 
>    1.1.  The CA must make sure that the U-labels corresponding to any A-labels
>    used are valid IDNA2008 U-labels (without application of any "mappings").
>    All A-labels must be lower-case ASCII.
> 
>    1.2.  When comparing against the reference identifier, decode the A-labels
>    in the SAN back to U-labels (this just requires a punycode decoder,
>    and does not require an IDN library).  Likewise convert any A-labels
>    in the From address back to U-labels.  Then compare NR-LDH labels
>    case-insensitively, but compare U-labels byte for byte.
> 
>    1.3  The comparison with rc822Name constraints is case-insensitive as
>         it has always been.
> 
> 2.  When the localpart is not ASCII, store the SAN as SMTPUtf8Name with
>    U-labels replacing any A-labels in the domain part.
> 
>    2.1.  The CA must make sure that the U-labels are valid IDNA2008 U-labels
>          (without application of any "mappings")
> 
>    2.2.  When comparing an SMTPUTF8Name SAN against the From address, decode
>          any A-labels in the From address to U-labels.  The compare the result
>          with the SAN, comparing NR-LDH labels case insensitively, and U-labels
>          byte for byte.
> 
>    2.3   The comparison with rfc822Name constraints is done by decoding A-labels
>          in the name constraint to U-labels and comparing with the labels in the
>          SAN as above (case-insensitive for NR-LDH, verbatim for U-labels).
> 
> Note that I am careful to avoid all U-label -> A-label conversions.  Rather all
> conversions are from A-labels to U-labels, and trusted CAs are expected to only
> generate A-labels that decode to valid IDNA2008 U-labels.  This avoids the whole
> question of IDNA2003 transitional form and all that.  All that one needs is a
> punycode decoder.
> 
> -- 
> -- 
> 	Viktor.
> 
> _______________________________________________
> Spasm mailing list
> Spasm@ietf.org
> https://www.ietf.org/mailman/listinfo/spasm