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

Marsh Ray <maray@microsoft.com> Thu, 16 April 2015 21:54 UTC

Return-Path: <maray@microsoft.com>
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 AD8391B3780; Thu, 16 Apr 2015 14:54:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.902
X-Spam-Level:
X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] 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 UC6-4DtJwDtb; Thu, 16 Apr 2015 14:54:53 -0700 (PDT)
Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1on0736.outbound.protection.outlook.com [IPv6:2a01:111:f400:fc10::736]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 297791B377C; Thu, 16 Apr 2015 14:54:53 -0700 (PDT)
Received: from BY2PR03MB554.namprd03.prod.outlook.com (10.141.141.156) by BY2PR03MB556.namprd03.prod.outlook.com (10.141.142.145) with Microsoft SMTP Server (TLS) id 15.1.118.21; Thu, 16 Apr 2015 21:54:32 +0000
Received: from BY2PR03MB554.namprd03.prod.outlook.com ([10.141.141.156]) by BY2PR03MB554.namprd03.prod.outlook.com ([10.141.141.156]) with mapi id 15.01.0118.029; Thu, 16 Apr 2015 21:54:31 +0000
From: Marsh Ray <maray@microsoft.com>
To: Watson Ladd <watsonbladd@gmail.com>, Karthikeyan Bhargavan <karthik.bhargavan@gmail.com>
Thread-Topic: [TLS] Secdir review of draft-ietf-tls-session-hash-04
Thread-Index: AQHQeAm2Xn7AfNfeP0+q3/GpYRs4wZ1PN7QAgACNgICAAGddsA==
Date: Thu, 16 Apr 2015 21:54:31 +0000
Message-ID: <BY2PR03MB554DF54BBBE619AEE2BDF08A7E40@BY2PR03MB554.namprd03.prod.outlook.com>
References: <CAFOuuo7MA9Rd7zbsic8pJgShYF8NRgnddyC5JHfA6hGcGkkAfA@mail.gmail.com> <BB1534CC-76ED-482E-BA9B-D11E8B52C7AE@gmail.com> <CACsn0cmJBk0BVbktwyf0Qkyd0P8YOwfKz22kUAQmQcKT6W8hUQ@mail.gmail.com>
In-Reply-To: <CACsn0cmJBk0BVbktwyf0Qkyd0P8YOwfKz22kUAQmQcKT6W8hUQ@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [131.107.160.206]
authentication-results: spf=none (sender IP is ) smtp.mailfrom=maray@microsoft.com;
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR03MB556;
x-o365ent-eop-header: Message processed by - O365_ENT: Allow from ranges (Engineering ONLY)
x-microsoft-antispam-prvs: <BY2PR03MB556B2EBB811BE9AD03EDA14A7E40@BY2PR03MB556.namprd03.prod.outlook.com>
x-forefront-antispam-report: BMV:1; SFV:NSPM; SFS:(10019020)(979002)(6009001)(13464003)(377454003)(51914003)(51704005)(24454002)(164054003)(77096005)(4001410100001)(74316001)(2656002)(87936001)(19580405001)(19580395003)(106116001)(15975445007)(92566002)(99286002)(102836002)(62966003)(77156002)(46102003)(86362001)(86612001)(122556002)(40100003)(50986999)(33656002)(76176999)(230783001)(76576001)(2950100001)(66066001)(2900100001)(54356999)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1102; SCL:1; SRVR:BY2PR03MB556; H:BY2PR03MB554.namprd03.prod.outlook.com; FPR:; SPF:None; MLV:ovrnspm; PTR:InfoNoRecords; LANG:en;
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(5005006)(5002010); SRVR:BY2PR03MB556; BCL:0; PCL:0; RULEID:; SRVR:BY2PR03MB556;
x-forefront-prvs: 0548586081
received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts)
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: microsoft.onmicrosoft.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Apr 2015 21:54:31.6608 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR03MB556
Archived-At: <http://mailarchive.ietf.org/arch/msg/secdir/LeWFtBL5TWuLCIhRrpQi8TgFKek>
X-Mailman-Approved-At: Fri, 17 Apr 2015 04:38:26 -0700
Cc: "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 21:54:55 -0000

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.