Re: [TLS] DTLS 1.3 ACKs
Ilari Liusvaara <ilariliusvaara@welho.com> Sun, 02 July 2017 07:54 UTC
Return-Path: <ilariliusvaara@welho.com>
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 A677D128B93 for <tls@ietfa.amsl.com>; Sun, 2 Jul 2017 00:54:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-0.001] autolearn=ham autolearn_force=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 IFoqOb7jOHrm for <tls@ietfa.amsl.com>; Sun, 2 Jul 2017 00:54:22 -0700 (PDT)
Received: from welho-filter4.welho.com (welho-filter4.welho.com [83.102.41.26]) by ietfa.amsl.com (Postfix) with ESMTP id DA301127444 for <tls@ietf.org>; Sun, 2 Jul 2017 00:54:21 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by welho-filter4.welho.com (Postfix) with ESMTP id 2ECB33B4E1; Sun, 2 Jul 2017 10:54:19 +0300 (EEST)
X-Virus-Scanned: Debian amavisd-new at pp.htv.fi
Received: from welho-smtp3.welho.com ([IPv6:::ffff:83.102.41.86]) by localhost (welho-filter4.welho.com [::ffff:83.102.41.26]) (amavisd-new, port 10024) with ESMTP id gQBW3iuLMtgV; Sun, 2 Jul 2017 10:54:18 +0300 (EEST)
Received: from LK-Perkele-VII (87-92-19-27.bb.dnainternet.fi [87.92.19.27]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by welho-smtp3.welho.com (Postfix) with ESMTPSA id D82F22313; Sun, 2 Jul 2017 10:54:16 +0300 (EEST)
Date: Sun, 02 Jul 2017 10:54:16 +0300
From: Ilari Liusvaara <ilariliusvaara@welho.com>
To: Eric Rescorla <ekr@rtfm.com>
Cc: "tls@ietf.org" <tls@ietf.org>
Message-ID: <20170702075416.7ozflgnxdo5k7gcd@LK-Perkele-VII>
References: <CABcZeBMpDLdrqaa7qEKyFFT8c-Qcodc01zDNqYcxmPp0qvi+pQ@mail.gmail.com> <20170624164749.bidmu2btsb6xsdjb@LK-Perkele-VII> <CABcZeBNkNUkgm9mrptgKO_+pkk2i9usYdGbmsFH762PhcVtFRw@mail.gmail.com> <20170701170103.htwyfrheq52pmm6l@LK-Perkele-VII> <CABcZeBMA3dUGKrk_V9EfYH1OtoD_JP+gTr8vf2+yq5Yaa-96vg@mail.gmail.com> <20170701210000.ppewrje6jcpy5w2b@LK-Perkele-VII> <CABcZeBNMwtExuep34WFp5r9phd94u7j_DvQdfeE3ha5TC0+7iQ@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
In-Reply-To: <CABcZeBNMwtExuep34WFp5r9phd94u7j_DvQdfeE3ha5TC0+7iQ@mail.gmail.com>
User-Agent: NeoMutt/20170609 (1.8.3)
Sender: ilariliusvaara@welho.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/0OGUTNIw_dz6pHCPE94wB8E-Xh0>
Subject: Re: [TLS] DTLS 1.3 ACKs
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: Sun, 02 Jul 2017 07:54:25 -0000
On Sat, Jul 01, 2017 at 03:52:37PM -0700, Eric Rescorla wrote: > On Sat, Jul 1, 2017 at 2:00 PM, Ilari Liusvaara <ilariliusvaara@welho.com> > wrote: > > > On Sat, Jul 01, 2017 at 10:26:17AM -0700, Eric Rescorla wrote: > > > On Sat, Jul 1, 2017 at 10:01 AM, Ilari Liusvaara < > > ilariliusvaara@welho.com> > > > wrote: > > > > > Just noticed that DTLS allows packing multiple independent fragments > > into one record (and then multiple records into one packet). > > > > Which impiles that an implementation that only prcesses one message at > > a time is not guaranteed to even be able to generate a valid list of > > RSNs to ACK, in case the peer sends sufficiently twisted (but still > > seemingly in-spec) input. > > > > I'm not following how that's true. When you decrypt, you record the received > RSNs and when you send an ACK you send the entire list. Then when you > finish a flight, you reset the list. Can you maybe show me a sequence of > events that would cause an error here? I think I figured out a case that doesn't involve peer intentionally generating very dubious input: Suppose that certificate is rather big (needs spliting to four parts), and: * The server preprares its flight, giving: - RSN 2:0 -> EncryptedExtensions, Certificate part 1/4 - RSN 2:1 -> Certificate part 2/4 - RSN 2:2 -> Certificate part 3/4 - RSN 2:3 -> Certificate part 4/4, CertificateVerify, Finished. * Now, RSNs 2:1, 2:3 disappear, 2:0 and 2:2 make it through. * Client ACKs RSNs 2:0 and 2:2. * Server sees the ACK, and re-encrypts the offending packets: - RSN 2:4 -> Certificate part 2/4 - RSN 2:5 -> Certificate part 4/4, CertificateVerify, Finished. * Now, RSN 2:4 disappears, 2:5 makes it through. * Client is one-message at a time. It can't ACK anything new. RSNs 2:1, 2:3 and 2:4 are lost. RSN 2:5 can not be ACKed, because that would imply the client received CV and F, which it did not. -Ilari
- [TLS] DTLS 1.3 ACKs Eric Rescorla
- Re: [TLS] DTLS 1.3 ACKs Ilari Liusvaara
- Re: [TLS] DTLS 1.3 ACKs Eric Rescorla
- Re: [TLS] DTLS 1.3 ACKs Ilari Liusvaara
- Re: [TLS] DTLS 1.3 ACKs Eric Rescorla
- Re: [TLS] DTLS 1.3 ACKs Ilari Liusvaara
- Re: [TLS] DTLS 1.3 ACKs Eric Rescorla
- Re: [TLS] DTLS 1.3 ACKs Ilari Liusvaara
- Re: [TLS] DTLS 1.3 ACKs Eric Rescorla
- Re: [TLS] DTLS 1.3 ACKs Ilari Liusvaara
- Re: [TLS] DTLS 1.3 ACKs Eric Rescorla
- Re: [TLS] DTLS 1.3 ACKs Ilari Liusvaara