Re: [TLS] Fwd: Clarification on interleaving app data and handshake records
Matt Caswell <frodo@baggins.org> Tue, 13 October 2015 09:12 UTC
Return-Path: <frodo@baggins.org>
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 2EA021A3B9F for <tls@ietfa.amsl.com>; Tue, 13 Oct 2015 02:12:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.201
X-Spam-Level:
X-Spam-Status: No, score=-1.201 tagged_above=-999 required=5 tests=[BAYES_05=-0.5, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_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 c-j3PylAHHTp for <tls@ietfa.amsl.com>; Tue, 13 Oct 2015 02:12:49 -0700 (PDT)
Received: from ns3.dns-engine.com (ns3.dns-engine.com [87.106.189.53]) by ietfa.amsl.com (Postfix) with ESMTP id DBAD61A21B7 for <tls@ietf.org>; Tue, 13 Oct 2015 02:12:48 -0700 (PDT)
Received: from [10.196.1.6] (unknown [104.238.169.119]) by ns3.dns-engine.com (Postfix) with ESMTPSA id 434FC18004D9 for <tls@ietf.org>; Tue, 13 Oct 2015 10:12:46 +0100 (BST)
To: "tls@ietf.org" <tls@ietf.org>
References: <560BB34F.4070201@openssl.org> <560BB416.10602@baggins.org>
From: Matt Caswell <frodo@baggins.org>
Message-ID: <561CCB0D.6020506@baggins.org>
Date: Tue, 13 Oct 2015 10:12:45 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0
MIME-Version: 1.0
In-Reply-To: <560BB416.10602@baggins.org>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/tls/0pjxGK3UGkZlRbUBT5IHe8Wq-a0>
Subject: Re: [TLS] Fwd: Clarification on interleaving app data and handshake records
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: Tue, 13 Oct 2015 09:12:51 -0000
Hello, Does anyone have any views on the below? Thanks Matt On 30/09/15 11:06, Matt Caswell wrote: > Hi all > > I have a question on how to interpret RFC 5246 with regards to the > interleaving of app data and handshake records. > > RFC 5246 (and RFC 4346 before it) contains these words: > > Note: Data of different TLS Record layer content types MAY be > interleaved. Application data is generally of lower precedence for > transmission than other content types. However, records MUST be > delivered to the network in the same order as they are protected by > the record layer. Recipients MUST receive and process interleaved > application layer traffic during handshakes subsequent to the first > one on a connection. > > This wording seems to place no limits whatsoever on when it is valid to > receive app data in the handshake. By the wording in the RFC it would be > valid for app data to be received *after* the ChangeCipherSpec has been > received but *before* the Finished has been processed. > > There is also this wording: > > Note: If a rehandshake occurs while data is flowing on a connection, > the communicating parties may continue to send data using the old > CipherSpec. However, once the ChangeCipherSpec has been sent, the > new CipherSpec MUST be used. The first side to send the > ChangeCipherSpec does not know that the other side has finished > computing the new keying material (e.g., if it has to perform a > time-consuming public key operation). Thus, a small window of time, > during which the recipient must buffer the data, MAY exist. In > practice, with modern machines this interval is likely to be fairly > short. > > I think this means that as soon as the first party sends a CCS, they > must not send any app data until they have received a CCS back - they > must buffer it until the CCS is seen - but on reading it again I'm not > sure! If that were the case then the second party should never expect to > see app data between CCS and Finished. It doesn't tell you anything > about what the first party can expect though, i.e. is the second party > allowed to send app data between the CCS and Finished? > > Finally there is also this: > > A Finished message is always sent immediately after a change > cipher spec message to verify that the key exchange and > authentication processes were successful. > > I suppose this trumps everything else, although as this section is > specifically talking about handshakes you could interpret "immediately" > as applying to the handshake sequence only without saying anything about > interleaved app data records. > > I believe the intention is that app data should not be sent between the > CCS and Finished but the RFC wording is not exactly crystal clear. This > is the interpretation I have taken whilst fixing this OpenSSL bug: > > https://rt.openssl.org/Ticket/Display.html?id=3712&user=guest&pass=guest > > Can some confirm my interpretation is correct? > > Thanks > > Matt > >
- [TLS] Fwd: Clarification on interleaving app data… Matt Caswell
- Re: [TLS] Fwd: Clarification on interleaving app … Matt Caswell
- Re: [TLS] Fwd: Clarification on interleaving app … Ilari Liusvaara
- Re: [TLS] Fwd: Clarification on interleaving app … Watson Ladd
- Re: [TLS] Fwd: Clarification on interleaving app … Martin Rex
- Re: [TLS] Fwd: Clarification on interleaving app … Matt Caswell
- Re: [TLS] Fwd: Clarification on interleaving app … David Benjamin
- Re: [TLS] Fwd: Clarification on interleaving app … Martin Thomson
- Re: [TLS] Fwd: Clarification on interleaving app … David Benjamin
- Re: [TLS] Fwd: Clarification on interleaving app … Matt Caswell
- Re: [TLS] Fwd: Clarification on interleaving app … Martin Thomson
- Re: [TLS] Fwd: Clarification on interleaving app … Matt Caswell
- Re: [TLS] Fwd: Clarification on interleaving app … Matt Caswell
- Re: [TLS] Fwd: Clarification on interleaving app … Martin Rex
- Re: [TLS] Fwd: Clarification on interleaving app … Matt Caswell
- Re: [TLS] Fwd: Clarification on interleaving app … Hubert Kario
- Re: [TLS] Fwd: Clarification on interleaving app … Watson Ladd
- Re: [TLS] Fwd: Clarification on interleaving app … Hubert Kario
- Re: [TLS] Clarification on interleaving app data … Short, Todd
- Re: [TLS] Fwd: Clarification on interleaving app … Kurt Roeckx
- Re: [TLS] Fwd: Clarification on interleaving app … Hubert Kario
- Re: [TLS] Fwd: Clarification on interleaving app … Peter Gutmann
- Re: [TLS] Fwd: Clarification on interleaving app … Watson Ladd
- Re: [TLS] Fwd: Clarification on interleaving app … Peter Gutmann
- Re: [TLS] Fwd: Clarification on interleaving app … Watson Ladd
- Re: [TLS] Fwd: Clarification on interleaving app … Peter Gutmann
- Re: [TLS] Fwd: Clarification on interleaving app … Watson Ladd
- Re: [TLS] Fwd: Clarification on interleaving app … Peter Gutmann
- Re: [TLS] Fwd: Clarification on interleaving app … Watson Ladd
- Re: [TLS] Fwd: Clarification on interleaving app … Yoav Nir
- Re: [TLS] Fwd: Clarification on interleaving app … Watson Ladd
- Re: [TLS] Fwd: Clarification on interleaving app … Kurt Roeckx
- Re: [TLS] Fwd: Clarification on interleaving app … Hubert Kario
- Re: [TLS] Fwd: Clarification on interleaving app … Hubert Kario
- Re: [TLS] Fwd: Clarification on interleaving app … Karthikeyan Bhargavan
- Re: [TLS] Fwd: Clarification on interleaving app … Hubert Kario
- Re: [TLS] Fwd: Clarification on interleaving app … Hubert Kario