Re: [Uta] Eric Rescorla's Yes on draft-ietf-uta-email-deep-09: (with COMMENT)

Eric Rescorla <ekr@rtfm.com> Wed, 25 October 2017 22:30 UTC

Return-Path: <ekr@rtfm.com>
X-Original-To: uta@ietfa.amsl.com
Delivered-To: uta@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7DBB813F496 for <uta@ietfa.amsl.com>; Wed, 25 Oct 2017 15:30:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-com.20150623.gappssmtp.com
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 FlKBRKoJc55o for <uta@ietfa.amsl.com>; Wed, 25 Oct 2017 15:30:06 -0700 (PDT)
Received: from mail-yw0-x236.google.com (mail-yw0-x236.google.com [IPv6:2607:f8b0:4002:c05::236]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0E36F13F488 for <uta@ietf.org>; Wed, 25 Oct 2017 15:30:03 -0700 (PDT)
Received: by mail-yw0-x236.google.com with SMTP id i198so1367916ywe.7 for <uta@ietf.org>; Wed, 25 Oct 2017 15:30:03 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=XU3FwatFjaiLU+oRNuiWmS7Qg2bbXbl0rAwHYHmoFj4=; b=Fa+R2b/0ZwFT7Al0Yl+CMeE7rs4YYWhHpmYE1ptnp4UKY1XfMq6Z5bCFQBjbI6NCZw cnPjT1CDG48pEk8bCSI/wepGPvsaQ864Soga7aC2soT2HefSx2zVxTHriXMjjJ2OMthd wTMsz3s861afjZC6tT/Gc0WFN/NLNJYYaevgsO0fY+A086ctsdwVp/gts7QqWxggRIco OPXxsU03Lonk76FV95Ff3eLRGWevxn4FuRiYzlY3qXxE9gOY92FoCuojsoWyswoANxcO 7hvZWFNCPO7585n9ABk+OWTLBDkrnyPl9Rxp9Zuu0sMC0RdWkIpKCatKZT17jd2TwlLP BQ5A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=XU3FwatFjaiLU+oRNuiWmS7Qg2bbXbl0rAwHYHmoFj4=; b=ctZimbMvf7D2BRXoynFOS8ulpwwphKi3P7hXI8vwh9j7Y8b11K5eSoC+rovyDakOZo qriVfOY3IsufIsgQVCv/j7pUb2xku1eSUo4TqmMWCLAvh67Xe2kyS1sCCfaHBycxxx5f cFCHh/8wX8fvRTr/oPdRy5OcjZcK06sf7T46O3c+dPUzszHQkYcjO0Srfg1Uydr6uCOe NC/FfJTTyiEp/uP5F42fBR407aew/pCRzDoI8YBM9w3miPHm6u2b6ZKmfU2c7LL3CMH7 dvODBFEhJgQ8JeZYnrolSmro3Df1KTFCscuGivsSoZ+d7/kVVVsuqLCy+TE8DG1+LzW8 8lCQ==
X-Gm-Message-State: AMCzsaWw7Q0fE4ox0tx/0QxVGRgVpU/xfHdEiONnc4pBt0Ab0J40zhXZ VyRoXUr08vaYdcCtIvnYXd1112/XagofHr2gzPY2xA==
X-Google-Smtp-Source: ABhQp+SlIMr9jkO2C0BBHiCZDClDX9HeRdsikXm56DWNk/vi0bdlUAUl5UHpQvg+BVdBs+Zb0flCrmNYX8NNrCFDBHE=
X-Received: by 10.129.172.75 with SMTP id z11mr14310911ywj.155.1508970602332; Wed, 25 Oct 2017 15:30:02 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.129.75.194 with HTTP; Wed, 25 Oct 2017 15:29:21 -0700 (PDT)
In-Reply-To: <98fddd93-a0a8-efa3-ce2e-530449ae536c@network-heretics.com>
References: <150852235551.15416.1247335476327491501.idtracker@ietfa.amsl.com> <98fddd93-a0a8-efa3-ce2e-530449ae536c@network-heretics.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Wed, 25 Oct 2017 15:29:21 -0700
Message-ID: <CABcZeBP47cwBGcKGuNAAX7PC91_hjEHrLrN-6U1VrX8+GiG=Sw@mail.gmail.com>
To: Keith Moore <moore@network-heretics.com>
Cc: The IESG <iesg@ietf.org>, draft-ietf-uta-email-deep@ietf.org, uta-chairs@ietf.org, Leif Johansson <leifj@sunet.se>, "uta@ietf.org" <uta@ietf.org>
Content-Type: multipart/alternative; boundary="f403045e95acba87b1055c669895"
Archived-At: <https://mailarchive.ietf.org/arch/msg/uta/EYDb2qXCC8s0EkvIA2gMjV4b_DY>
Subject: Re: [Uta] Eric Rescorla's Yes on draft-ietf-uta-email-deep-09: (with COMMENT)
X-BeenThere: uta@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: UTA working group mailing list <uta.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/uta>, <mailto:uta-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/uta/>
List-Post: <mailto:uta@ietf.org>
List-Help: <mailto:uta-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/uta>, <mailto:uta-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 25 Oct 2017 22:30:08 -0000

On Tue, Oct 24, 2017 at 5:31 PM, Keith Moore <moore@network-heretics.com>
wrote:

> (inline)
>
> Line 186
>>     TLS, and to encourage a greater consistency for how TLS is used, this
>>     specification now recommends use of Implicit TLS for POP, IMAP, SMTP
>>     Submission, and all other protocols used between a Mail User Agent
>> Do you want to say RECOMMENDED?
>>
>
> Lower case "recommends" (non-2119 meaning) was intentional, though my
> reasoning may be unclear:  One of the first things I learned while studying
> engineering was to not specify the same thing in two different ways,
> because subtle differences between the two could create ambiguity.   (I
> remember this point clearly because about a year before, someone had
> constructed a beautiful piece of cabinetry to my specifications, which
> completely did not fit into the intended space because I had made this very
> error.)
>
> So when writing technical specifications, I believe there should be a
> clear distinction between summary text (which glosses over details), and
> the text that actually defines the requirements of the specification.
> Admittedly this could be called out more explicitly, though it doesn't seem
> conventional for IETF RFCs to do so.


OK, this was just a note.




>        the TLS ciphersuite of the session in which the mail was received,
>>        in the Received field of the outgoing message.  (See Section 4.3.)
>> Do you want to also suggest that it include the name of the DH group, if
>> any?
>>
>
> I've attempted to add that attribute but please check the text:
>
>       The ESMTPS transmission type <xref target="RFC3848"/> provides trace
>       information that can indicate TLS was used when transferring mail.
>       However, TLS usage by itself is not a guarantee of confidentiality or
>       security. The TLS cipher suite provides additional information about
> the
>       level of security made available for a connection. This defines a new
>       SMTP "tls" Received header additional-registered-clause that is used
> to
>       record the TLS cipher suite that was negotiated for the connection.
> The
>       value included in this additional clause SHOULD be the registered
> cipher
>       suite name (e.g., TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) included
> in the TLS
>       cipher suite registry. In the event the implementation does not know
> the
>       name of the cipher suite (a situation that should be remedied
> promptly),
>       a four-digit hexadecimal cipher suite identifier MAY be used.
>       In addition, the Diffie-Hellman group name associated with the
>       ciphersuite MAY be included (when applicable and known) following the
>       ciphersuite name.   The ABNF for the field follows:
>       <figure>
>         <artwork type="abnf">
> tls-cipher-clause  =  CFWS "tls" FWS tls-cipher [ "group" dh-group ]
>
> tls-cipher         =  tls-cipher-name / tls-cipher-hex
>
> tls-cipher-name    =  ALPHA *(ALPHA / DIGIT / "_")
> ; as registered in IANA cipher suite registry
>
> tls-cipher-hex     =  "0x" 4HEXDIG
>
> dh-group           = ALPHA *(ALPHA / DIGIT / "_")
>

I might want to include hyphen here because "P-256"



> Line 405
>>     implementation does not know the name of the cipher suite (a
>>     situation that should be remedied promptly), a four-digit hexadecimal
>>     cipher suite identifier MAY be used.  The ABNF for the field follows:
>> Hard to see how you could realistically get into this state...
>>
> Chris wrote this so this is just a guess on my part:   I'm assuming there
> are TLS APIs out there that let the caller query which ciphersuite is being
> used, but the implementation returns an integer rather than the name, and
> provides no convenience routine to look up the name text.


OK. Chris?



Line 594
>>     accounts SHOULD be at least use of TLS version 1.1 or greater, and
>>     successful validation of the server's certificate.  (Future revisions
>>     to this specification may raise these requirements or impose
>> This second requirement is more important.
>>
>
> Agree, or at least I think I do (are MiTM attacks taking advantage of no
> or weak cert validation really more of a threat than attacks on TLS < 1.1
> protocol or ciphersuites?  yeah, I could see that.).


No, they're not.


> But I certainly want implementors to pay more attention to cert validation.
>
> I'm not sure what change to the text you had in mind, but I reversed the
> order to put cert validation first.


I think that success validation needs to be a MUST.


added a note about this.
>
>> Line 679
>>     TLS handshake unless the server requests one and the client has
>>     determined the certificate can be safely used with that specific
>>     server, OR the client has been explicitly configured by the user to
>> Can you note that this is just a restatement of the rules in TLS?
>>
>
> I attempted to fix this as well as the next item, though it's possible I'm
> still missing something:
>
>     MUAs MAY implement client certificate authentication on the
>     Implicit TLS port.  An MUA MUST NOT provide a client certificate
>     during the TLS handshake unless the server requests one AND at
>     least one of the following is true: the client has determined the
>     certificate can be safely used with that specific server, OR the
>     client has been explicitly configured by the user to use that
>     particular certificate with that server. How to make this
>     determination is presently implementation specific. (The
>     requirement that the server request a certificate is just a
>     restatement of the TLS protocol rules, e.g.
>     <xref target="RFC5246"/> section 7.4.6.  The requirement that the
> client
>     not send a certificate not known to be acceptable to the server is
>     pragmatic in multiple ways: the current TLS protocol provides no way
> for
>     the client to know which of potentially multiple certificates it
>     should use; also, when the client sends a certificate it is
>     potentially disclosing its identity (or its user's identity) to
>     the server - perhaps unnecessarily and for no useful purpose.


This is fine.


Line 681
>>     server, OR the client has been explicitly configured by the user to
>>     use that particular certificate with that server.  How to make this
>>     determination is presently implementation specific.
>> The structure of this text is confusing. The rule is:
>>
>> if (server asked &&
>>      (client determined safe || certificate configured)) {
>>      can use
>> } else {
>>      can't use
>> }
>>
>
> reworded text in -10 to try to make this clearer.
>
> Line 781
>>     or interception; this is not intended to mitigate active attackers
>>     who have compromised service provider systems.
>> IMPORTANT: Client auth with TLS 1.2 reveals the user's identity. This is a
>> privacy issue, and so we need to note it. The options here are not great
>> with <
>> 1.3 because renegotiation is also bad, so I'm not suggesting a normative
>> change, but I think the doc needs to be clear.
>>
>
> Added a paragraph:
>
> Implementors should be aware that use of client certificates with TLS
> 1.2 likely reveals the user's identity to the server and therefore may
> compromise the user's privacy.  There seems to be no easy fix other
> than to avoid presenting client certificates except when specifically
> configured to do so.


The issue here is that it exposes it not to the  server (though it does)
but to anyone on the
wire. This is actually better with TLS 1.3.

-Ekr



Line 959
>>     in RFC 6186 resolves that critique for email.  The second bullet is
>>     correct as well, but not very important because useful deployment of
>>     security layers other than TLS in email is small enough to be
>> The second bullet is less correct than it used to be because we no longer
>> support export suites. Ordinarily I wouldn't bother to make this point,
>> but if
>> we're revisiting this point by point, I think we should note that.
>>
>
> added a note for this.
>
> Keith
>
>
>