Re: [TLS] RFC 6066 - Max fragment length negotiation

Peter Gutmann <pgut001@cs.auckland.ac.nz> Fri, 17 March 2017 10:38 UTC

Return-Path: <pgut001@cs.auckland.ac.nz>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CED7B129C03 for <tls@ietfa.amsl.com>; Fri, 17 Mar 2017 03:38:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.2
X-Spam-Level:
X-Spam-Status: No, score=-4.2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=auckland.ac.nz
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 8kaIb44pnkp3 for <tls@ietfa.amsl.com>; Fri, 17 Mar 2017 03:38:39 -0700 (PDT)
Received: from mx4.auckland.ac.nz (mx4.auckland.ac.nz [130.216.125.248]) (using TLSv1.2 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4990F126DED for <tls@ietf.org>; Fri, 17 Mar 2017 03:38:39 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=auckland.ac.nz; i=@auckland.ac.nz; q=dns/txt; s=mail; t=1489747119; x=1521283119; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=C8KQFxd2aPMW+Py8a6vcl33z28MbTADQwnnnM+tlBnY=; b=wNxR2fpoUG3nugqMNHpUvAjNGUV9HF7GEplhq+fhdllTmBeZ+cQ94Dcj zfaDhcVy02nS4uXNsklcWzoBYqpjmlixJ0JseY0CGgciYo2GyU7P3GCv5 Vu4LNJVPUO57R7SOFzokVpr/Tu/KITBpoDXLTpi0MdHpZS9KW6S2/AurX EfFrR+u8yjC8XoNuM+vK24ZqdKA/a/McWIBGeN0GWLOlkagmtGxGg2Mjp qRRXDVSEckvusEwVg0FHp8ackxxyBL/H/G98X6XaMlzSWQApEJ0AHjA9X eeqYQinL4KtNkjGVcXTV3bINvz8N22WH411d7ICgiE/0tx+gnS2dE3Cxe A==;
X-IronPort-AV: E=Sophos;i="5.36,176,1486378800"; d="scan'208";a="143650058"
X-Ironport-HAT: MAIL-SERVERS - $RELAYED
X-Ironport-Source: 10.6.3.9 - Outgoing - Outgoing
Received: from uxcn13-tdc-e.uoa.auckland.ac.nz ([10.6.3.9]) by mx4-int.auckland.ac.nz with ESMTP/TLS/AES256-SHA; 17 Mar 2017 23:38:37 +1300
Received: from uxcn13-ogg-d.UoA.auckland.ac.nz (10.6.2.5) by uxcn13-tdc-e.UoA.auckland.ac.nz (10.6.3.9) with Microsoft SMTP Server (TLS) id 15.0.1178.4; Fri, 17 Mar 2017 23:38:37 +1300
Received: from uxcn13-ogg-d.UoA.auckland.ac.nz ([10.6.2.25]) by uxcn13-ogg-d.UoA.auckland.ac.nz ([10.6.2.25]) with mapi id 15.00.1178.000; Fri, 17 Mar 2017 23:38:37 +1300
From: Peter Gutmann <pgut001@cs.auckland.ac.nz>
To: Martin Thomson <martin.thomson@gmail.com>
CC: Nitin Shrivastav <nitin.shrivastav@broadcom.com>, "tls@ietf.org" <tls@ietf.org>
Thread-Topic: [TLS] RFC 6066 - Max fragment length negotiation
Thread-Index: AQHSnpUB8UgZsR1fnUWlpN1q8vk4DKGYGe7w//8q+oCAANxgO///LA8AgADcRWz//0AsAAAe+X57//8qVYCAACsrgIABIKju
Date: Fri, 17 Mar 2017 10:38:37 +0000
Message-ID: <1489747107536.25854@cs.auckland.ac.nz>
References: <CAD8WAomJLs4hdaso9hT036=UORjT9=H5-oCHbdSofuv++n3rYg@mail.gmail.com> <1489706298995.98317@cs.auckland.ac.nz> <855C5079-FDA7-4E68-AE29-1E9605B495D7@broadcom.com> <1489707933992.42551@cs.auckland.ac.nz> <CABkgnnVRZBwXHZ6w=gX9pykNpXp80OLP1pe-VMg-uO-C6O8yEQ@mail.gmail.com> <1489710142144.88978@cs.auckland.ac.nz> <CABkgnnXiB5ksGbbPqDP3D=FVdQu9ht0vD8-T-5HTaEKQQE4+9w@mail.gmail.com> <1489721710740.52293@cs.auckland.ac.nz> <CABkgnnWq_5e8TJgJV+okqi6vo-_5=811pOZRtUCp0TD07SmNoQ@mail.gmail.com>, <CABkgnnW=Pz+6M8UYoB+MTY8rQp9vsHyh6aqiSb3EbTT_BdWokA@mail.gmail.com>
In-Reply-To: <CABkgnnW=Pz+6M8UYoB+MTY8rQp9vsHyh6aqiSb3EbTT_BdWokA@mail.gmail.com>
Accept-Language: en-NZ, en-GB, en-US
Content-Language: en-NZ
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [130.216.158.4]
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/5Utf-zugxsA9aThml4pqM0br-tU>
Subject: Re: [TLS] RFC 6066 - Max fragment length negotiation
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.22
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: Fri, 17 Mar 2017 10:38:41 -0000

Martin Thomson <martin.thomson@gmail.com> writes:

>I'd even go so far as to specify it:
>
>https://martinthomson.github.io/tls-record-limit/

Some comments...

Firstly, do we have much real-world experience in using this extension?  From
the TLS-support matrix, it looks like very few implementations support this,
does this mean few people care about it or just that it's defined in a such a
manner that it's not practical to support it?  For anyone who does use it, how
do you use it, and what would you like to see changed?  If no fixed version of
max_fragment_length is defined, would anyone care?

(I've had support for max_fragment_length in my code since the extension was
defined but it's always been commented out, no-one has ever asked for it to be
supported).

If the draft is published, I'd like to have a boolean don't-fragment flag or
something similar available alongside RecordSizeLimit for implementations that
don't implement fragmentation (the implementation matrix doesn't record which
implementations support this, but I'd be pretty surprised if many embedded
stacks did, given the complexity and extra memory use that this adds).  

In other words a way to say "set RecordSizeLimit to 2048 bytes but don't
fragment messages", meaning the client or server holds back from sending 8,000
cipher suites and 500 extensions in the hello to keep each record below 2048
bytes.  Otherwise asking for a RecordSizeLimit of 2048 might produce
fragmentation, which leads to another fragment_length-induced handshake
failure if your guess at what to send is wrong.

Peter.