Re: [secdir] [TLS] Secdir review of draft-ietf-tls-session-hash-04

Karthikeyan Bhargavan <karthikeyan.bhargavan@inria.fr> Thu, 16 April 2015 22:42 UTC

Return-Path: <karthikeyan.bhargavan@inria.fr>
X-Original-To: secdir@ietfa.amsl.com
Delivered-To: secdir@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6CC8B1B3826; Thu, 16 Apr 2015 15:42:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.56
X-Spam-Level:
X-Spam-Status: No, score=-6.56 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_FR=0.35, RCVD_IN_DNSWL_HI=-5, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
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 iOnhS1XCcSHb; Thu, 16 Apr 2015 15:42:29 -0700 (PDT)
Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1E02A1B381E; Thu, 16 Apr 2015 15:42:28 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="5.11,590,1422918000"; d="asc'?scan'208";a="135475101"
Received: from 5ec2c015.skybroadband.com (HELO adminisatorsmbp.lan) ([94.194.192.21]) by mail2-relais-roc.national.inria.fr with ESMTP/TLS/AES128-SHA; 17 Apr 2015 00:42:26 +0200
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
Content-Type: multipart/signed; boundary="Apple-Mail=_AC81B333-F0B3-43DF-B62F-F959B60394D2"; protocol="application/pgp-signature"; micalg="pgp-sha512"
X-Pgp-Agent: GPGMail 2.5b6
From: Karthikeyan Bhargavan <karthikeyan.bhargavan@inria.fr>
In-Reply-To: <BY2PR03MB554DF54BBBE619AEE2BDF08A7E40@BY2PR03MB554.namprd03.prod.outlook.com>
Date: Thu, 16 Apr 2015 23:42:25 +0100
Message-Id: <39C61EC6-9487-436C-902E-86F73CA88988@inria.fr>
References: <CAFOuuo7MA9Rd7zbsic8pJgShYF8NRgnddyC5JHfA6hGcGkkAfA@mail.gmail.com> <BB1534CC-76ED-482E-BA9B-D11E8B52C7AE@gmail.com> <CACsn0cmJBk0BVbktwyf0Qkyd0P8YOwfKz22kUAQmQcKT6W8hUQ@mail.gmail.com> <BY2PR03MB554DF54BBBE619AEE2BDF08A7E40@BY2PR03MB554.namprd03.prod.outlook.com>
To: Marsh Ray <maray@microsoft.com>
X-Mailer: Apple Mail (2.1878.6)
Archived-At: <http://mailarchive.ietf.org/arch/msg/secdir/R8k7tNXul5sTkjAk0c13_ud9chw>
X-Mailman-Approved-At: Fri, 17 Apr 2015 04:38:26 -0700
Cc: Watson Ladd <watsonbladd@gmail.com>, "secdir@ietf.org" <secdir@ietf.org>, "draft-ietf-tls-session-hash.all@tools.ietf.org" <draft-ietf-tls-session-hash.all@tools.ietf.org>, The IESG <iesg@ietf.org>
Subject: Re: [secdir] [TLS] Secdir review of draft-ietf-tls-session-hash-04
X-BeenThere: secdir@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Security Area Directorate <secdir.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/secdir>, <mailto:secdir-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/secdir/>
List-Post: <mailto:secdir@ietf.org>
List-Help: <mailto:secdir-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/secdir>, <mailto:secdir-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 16 Apr 2015 22:42:35 -0000

We’re running out of time on this revision, so I am submitting a new version with the changes
indicated before. That is, not making too many changes to support interoperability, but just making
the choice explicit.

-K.

On 16 Apr 2015, at 22:54, Marsh Ray <maray@microsoft.com> wrote:

> While there are limitations of this approach, at least for the current TLS protocol versions users of client certs need renegotiation to avoid sending the client cert in the clear. Hopefully something better will be possible for TLS 1.3.
> 
> As a data point, the 5 year experience with the Renegotiation Indication extension [RFC 5746] shows that we have achieved something like (100-2.9) = 97.1% coverage of sites that refuse insecure renegotiation, the vast majority of which support of the new extension.
> https://www.trustworthyinternet.org/ssl-pulse/
> 
> Thanks,
> 
> - Marsh
> 
> -----Original Message-----
> From: Watson Ladd [mailto:watsonbladd@gmail.com]
> Sent: Thursday, April 16, 2015 8:33 AM
> To: Karthikeyan Bhargavan
> Cc: Radia Perlman; draft-ietf-tls-session-hash.all@tools.ietf.org; The IESG; secdir@ietf.org
> Subject: Re: [TLS] Secdir review of draft-ietf-tls-session-hash-04
> 
> On Thu, Apr 16, 2015 at 12:06 AM, Karthikeyan Bhargavan <karthik.bhargavan@gmail.com> wrote:
>> Hi Radia,
>> 
>> Thanks for the comments. I made many of the smaller changes, and have
>> some questions about the interop concerns.
>> 
>>> In particular, section 5.2 paragraph 4 & 5 say:
>>> 
>>> "If the server receives a ClientHello without the extension, it
>>> SHOULD abort the handshake. If it chooses to continue, then it MUST
>>> NOT include the extension in the ServerHello."
>>> 
>>> "If a client receives a ServerHello without the extension, it SHOULD
>>> abort the handshake.”
>> 
>> The style we chose was to say that the client/server SHOULD abort the
>> handshake, but we also say in paragraph 7:
>> 
>> "If the client or server choose to continue a full handshake without the extension, they use the legacy master secret derivation for the new session. In this case, the considerations in section 5.4 apply.”
>> 
>> That is, we do offer them the choice of opting out of this draft for
>> interoperability, by following the recommendations in 5.4.
>> 
>> We could make this forward pointer more explicit by saying instead:
>> 
>> “In order to interoperate with legacy peers, some lients and servers
>> may choose to  to continue a full handshake without the extension. In
>> this case, they use  the  legacy master secret derivation for the new
>> session, and the  considerations in section 5.4 apply.”
>> 
>> Would this assuage the security/interoperability concern?
>> 
>> 
>>> In section 5.3, there is similar language to disable session
>>> resumption when the extension is not present. While this may be more
>>> acceptable because it will not break interoperability, it *will*
>>> cause a significant performance degradation in some important
>>> scenarios. I would again recommend that it be a configuration
>>> parameter so that no one will refuse to deploy this change because of performance concerns.
> 
> I seem to recall a discussion about this, where my minority position was that breaking renegotiation instead was more acceptable. We need to break one, and renegotiation is not used nearly as commonly for browsers.
> 
>> 
>> During resumption we use similar language to point forward to section
>> 5.2 if the client or server chooses to continue without the extension.
>> 
>>> Section 5.4 also mandates breaking behavior (and here it is a MUST)
>>> in scenarios where there is most likely to be a triple handshake vulnerability.
>>> Given that there are cases with no such vulnerability and given that
>>> people will be reluctant to deploy software that turns a subtle
>>> security vulnerability into non-interoperability, I believe this
>>> should be a matter of configuration.
>> 
>> This case seems most difficult, because section 5.4 is the defense of
>> last resort. Weakening the MUST requirements here would, in our mind,
>> be tantamount to disabling the extension altogether.
> 
> Web browsers have adopted a more minimal solution, namely not permitting renegotiation to change certificates. I doubt that the stricter defense in 5.4 will cause interoperability issues, and it may have been adopted by some of them. Input from browser writers would be greatly appreciated.
> 
> Sincerely,
> Watson Ladd
> 
>> 
>> Recall that in  the triple handshake attack, the man-in-the-middle is
>> a valid peer who is trying to fool both the client and the server.
>> Hence, we cannot rely on this man-in-the-middle sending the extension.
>> If we allow handshakes without the extension, the attack cannot be prevented, only mitigated.
>> The MUSTs in this section try to enforce these mitigations.
>> 
>> Best regards,
>> Karthik
>> 
>> 
>>> 
>>> Section 5.4 paragraph 4 seems to be undermining earlier requirements,
>>> saying that it MAY be safe (to break rules stated earlier). Taking
>>> this to heart, I would propose that the "MUST abort" clauses in
>>> sections 5.2 and 5.3 be softened to at least allow - and perhaps
>>> recommend - implementations to support this scenario.
>>> 
>>> -------
>>> 
>>> Nits:
>>> 
>>> In section 6.2, it is claimed that the security of TLS depends on the
>>> hash function used being collision resistant, use of MD5 and SHA1 is
>>> NOT RECOMMENDED. That would rule out use of TLS 1.0 and TLS 1.1.
>>> While a worthy goal, I don't believe this enhancement makes migration
>>> away from TLS 1.0 and TLS 1.1 any more urgent. I also don't believe
>>> that TLS depends on the hash function being collision resistant (but
>>> only that it is second preimage resistant).
>>> 
>>> P9: "each other identity" -> "each other's identities"
>>> P10: "that where hence" -> "that were hence"
>>> P11: "server/ Hence," -> "server. Hence,
>> 
>> _______________________________________________
>> TLS mailing list
>> TLS@ietf.org
>> https://www.ietf.org/mailman/listinfo/tls
> 
> 
> 
> --
> "Man is born free, but everywhere he is in chains".
> --Rousseau.