Re: [TLS] TLS 1.3 - Support for compression to be removed

"Short, Todd" <tshort@akamai.com> Thu, 08 October 2015 21:53 UTC

Return-Path: <tshort@akamai.com>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C7CA61B2D41 for <tls@ietfa.amsl.com>; Thu, 8 Oct 2015 14:53:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.397
X-Spam-Level: *
X-Spam-Status: No, score=1.397 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FH_RELAY_NODNS=1.451, HELO_MISMATCH_COM=0.553, HTML_MESSAGE=0.001, J_CHICKENPOX_51=0.6, RDNS_NONE=0.793, SPF_PASS=-0.001] autolearn=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 zx290PwmHmzp for <tls@ietfa.amsl.com>; Thu, 8 Oct 2015 14:53:21 -0700 (PDT)
Received: from prod-mail-xrelay07.akamai.com (unknown [23.79.238.175]) by ietfa.amsl.com (Postfix) with ESMTP id EB0C91A1B48 for <tls@ietf.org>; Thu, 8 Oct 2015 14:53:16 -0700 (PDT)
Received: from prod-mail-xrelay07.akamai.com (localhost.localdomain [127.0.0.1]) by postfix.imss70 (Postfix) with ESMTP id 09D024334C2; Thu, 8 Oct 2015 21:53:16 +0000 (GMT)
Received: from prod-mail-relay11.akamai.com (prod-mail-relay11.akamai.com [172.27.118.250]) by prod-mail-xrelay07.akamai.com (Postfix) with ESMTP id E79CE4334BF; Thu, 8 Oct 2015 21:53:15 +0000 (GMT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=akamai.com; s=a1; t=1444341195; bh=U2qK+39tn+JuFpI6QQMM870okuCakmBdOQQVkFurJ0E=; l=12515; h=From:To:CC:Date:References:In-Reply-To:From; b=WlKGjhssBn0fHxu14zjUJa2PSuqfH2TcK5STqmpf5WLCctbGarT1oNDWsh7/vM5Kq zMdgiWmqEt+lUWZyv4regeh/57h8WcHLBQyXBTrLXvqcHHNFKsDFIcNswkLrj/MgS1 16ijy6dIb44y7XI1qNAohXCii0t3OzIP+z5FA3Hc=
Received: from email.msg.corp.akamai.com (ustx2ex-cas2.msg.corp.akamai.com [172.27.25.31]) by prod-mail-relay11.akamai.com (Postfix) with ESMTP id C4C9D203F; Thu, 8 Oct 2015 21:53:15 +0000 (GMT)
Received: from USTX2EX-DAG1MB5.msg.corp.akamai.com (172.27.27.105) by ustx2ex-dag1mb5.msg.corp.akamai.com (172.27.27.105) with Microsoft SMTP Server (TLS) id 15.0.1076.9; Thu, 8 Oct 2015 16:53:15 -0500
Received: from USTX2EX-DAG1MB5.msg.corp.akamai.com ([172.27.27.105]) by ustx2ex-dag1mb5.msg.corp.akamai.com ([172.27.27.105]) with mapi id 15.00.1076.000; Thu, 8 Oct 2015 16:53:15 -0500
From: "Short, Todd" <tshort@akamai.com>
To: "mrex@sap.com" <mrex@sap.com>
Thread-Topic: [TLS] TLS 1.3 - Support for compression to be removed
Thread-Index: AQHRATmlz8vkrT+RfEa++i1UEDH43Z5g0u4AgAAIBoCAAADdAIAAA8SAgAB5lwCAARcwgIAACHeA
Date: Thu, 08 Oct 2015 21:53:14 +0000
Message-ID: <60BB8707-F1CF-4DD2-88BC-883C9CCDB0A7@akamai.com>
References: <20151008212255.D1F431A2CF@ld9781.wdf.sap.corp>
In-Reply-To: <20151008212255.D1F431A2CF@ld9781.wdf.sap.corp>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [172.19.40.182]
Content-Type: multipart/alternative; boundary="_000_60BB8707F1CF4DD288BC883C9CCDB0A7akamaicom_"
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/tls/rK_2fNnRTWn0ySNVhtWhk9uDsvI>
Cc: "tls@ietf.org" <tls@ietf.org>
Subject: Re: [TLS] TLS 1.3 - Support for compression to be removed
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <tls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tls>, <mailto:tls-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tls/>
List-Post: <mailto:tls@ietf.org>
List-Help: <mailto:tls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tls>, <mailto:tls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 08 Oct 2015 21:53:22 -0000

Eric specifically clarified it:

On Oct 7, 2015, at 5:15 PM, Eric Rescorla <ekr@rtfm.com<mailto:ekr@rtfm.com>> wrote:

Sorry, I spoke carelessly. It must contain solely the null method.

-Ekr

So the text needs to be corrected to reflect that. This will avoid the backward compatibility issues.

IMHO, the text should also clearly state something along the lines that “A TLSv1.3 client MUST NOT support compression, regardless of the protocol version that may be negotiated.” This reinforces backwards-compatibility via the use of CipherMethod.null, makes it blatantly obvious that compression is not supported, and a TLSv1.3 client is a good citizen in avoiding CRIME-type attacks.

--
-Todd Short
// tshort@akamai.com<mailto:tshort@akamai.com>
// "One if by land, two if by sea, three if by the Internet."

On Oct 8, 2015, at 5:22 PM, Martin Rex <mrex@sap.com<mailto:mrex@sap.com>> wrote:

Eric Rescorla wrote:
Short, Todd <tshort@akamai.com<mailto:tshort@akamai.com>> wrote:

However, for those ClientHello?s that support older versions, the
compression_method field may contain other values. This means that if a
TLSv1.3 client happened to support compression for TLSv1.2, it would be
unable to negotiate that via a single ClientHello. There?s no way to
attempt to negotiate TLSv1.2+compression and TLSv1.3+no-compression in a
single ClientHello.

Yup, that is the problem with the current text.



In effect, the document is stating that a TLSv1.3 client MUST NOT support
compression, regardless of the protocol version that may be negotiated.

Yes, this is what I believe it says and what I believe the WG had consensus
on, the reasoning being that we really wished to just remove the feature
entirely. If the chairs declare consensus on something else, I will of
course edit it to say something else.

The current text is trying to force a specific policy in a fashion
that is in the worst conceivable violation of rfc2119 section 6 that
is possible.

A ClientHello with

   ClientHello.client_version = (3,3)
   ClientHello.compression_methods = (1,0)

will be interoperable with TLSv1.0, TLSv1.1, TLSv1.2 and TLSv1.3 servers.


   ClientHello.client_version = (3,4)
   ClientHello.compression_methods = (1,0)

will be interoperable with TLSv1.0, TLSv1.1 and TLSv1.2 servers,
but TLSv1.3 servers that follow the stupid idea will choke and
abort with an "illegal_parameter" alert.

Essentially, the current wording is calling for a newly creating what
must be called a "compression method intolerance" -- but essentially
it is indistinguishable from a "TLS version intolerance"


For a number of years, it seemed to have been consensus in the IETF TLS WG
that TLS version intolerance is an implemenattion defect and a real problem.
It would be sad if the current TLS WG would confirm that recklessly adding
handshake failure causing new intolerances into TLSv1.3 is the new
engeneering approach.



-Martin