Re: [TLS] Connection ID Draft

Eric Rescorla <ekr@rtfm.com> Mon, 23 October 2017 12:13 UTC

Return-Path: <ekr@rtfm.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 2677413875A for <tls@ietfa.amsl.com>; Mon, 23 Oct 2017 05:13:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-com.20150623.gappssmtp.com
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 DcT_r9S7BFuI for <tls@ietfa.amsl.com>; Mon, 23 Oct 2017 05:13:14 -0700 (PDT)
Received: from mail-yw0-x231.google.com (mail-yw0-x231.google.com [IPv6:2607:f8b0:4002:c05::231]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3FAB41386F3 for <tls@ietf.org>; Mon, 23 Oct 2017 05:13:14 -0700 (PDT)
Received: by mail-yw0-x231.google.com with SMTP id q126so8878752ywq.10 for <tls@ietf.org>; Mon, 23 Oct 2017 05:13:14 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=evAecY+8s+DFNpn+w9iy+rH5jug9uL7QGhkSB2/Ofuk=; b=BfEiC/Ojrb4xP7B+dcpoKqT6YsNYOaxKtnyO8XPd+K/JaUbqfTNSJgcJrcTf1iqPy/ zwL874op24w6EKRIm5Klyud0mbpxVoAa01Iu14oKXNJ/LZi8AkYVGxVq4JmUH+Oj6M+M X2Y+8wac7JQZxVYlIXLEJppwXz84BLk8EQLlsnCmF20hvCpYxGkwhy1EQSUiHCrsOgTX lvvejltHyRO0DccsJEJpXSWotnUQjRQ9bJPoxOBybK84sjUi06UsWo/janKeuV0k2km4 MA5cYE/3q+sTvtFdyMX29IK0tHp8RBfpwbxsrHnTMSQYq//koN6iNVxTCHhQrYXkRvht iKdQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=evAecY+8s+DFNpn+w9iy+rH5jug9uL7QGhkSB2/Ofuk=; b=HnVQAgaoqynsUUf0BHhDiERfBI7+mpia2X6xilK0+YXHRtllV4DAaP8Tk/jdWU/0ob xlegERjshf2+9ZIJ7zvp0FOmvIgnHY/lZYI9NeKdpLMLrJhJOWL4zaq+FPXKAeeKvS7V RA5P0Uzf7yR/CWZyGUJM+HiALThVIiQYSd9yhoh5lx7C7qplmqQ7fCqBv/hzFOW6j136 i2IxQpw85FCtBJOMECVpOCcQUxwnhDAA/8UYZRZWyqhKjRl7QjDeK5+8fPCq4NHiZyYh U69QXXeVDzVfEFArc989eafnP+eSaguocnPKIyoakW/B3iZmNldBpN/5oLNroARvqSrV 4a9g==
X-Gm-Message-State: AMCzsaUHvTTVitP59abcp3Kpy5jT7Hffwr1pWFQNPD/k8cnRFPIlPxyC /7/g5klRzfxj1P9ihHGJqlgibmTVb2ozP+VGRm8b+w==
X-Google-Smtp-Source: ABhQp+To+BZW2/lrCg20mvmXQDA82QmuzwZs5pNidNk8VUC7NjZpHyPfLOnEqxHj2TJCL//4lRv9wTAGu8/frFxL7+M=
X-Received: by 10.37.45.83 with SMTP id s19mr8008240ybe.400.1508760793475; Mon, 23 Oct 2017 05:13:13 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.129.75.194 with HTTP; Mon, 23 Oct 2017 05:12:32 -0700 (PDT)
In-Reply-To: <DBDF9AE44733284D808F0E585E1919022D14F6FB@dggeml511-mbs.china.huawei.com>
References: <DBDF9AE44733284D808F0E585E1919022D14F6FB@dggeml511-mbs.china.huawei.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Mon, 23 Oct 2017 05:12:32 -0700
Message-ID: <CABcZeBOJrTeFHbc9DQ86jkFV7EJv6x5AjwvSrfGDO3biyuuVNQ@mail.gmail.com>
To: yinxinxing <yinxinxing@huawei.com>
Cc: "tls@ietf.org" <tls@ietf.org>
Content-Type: multipart/alternative; boundary="f4030435b010256f42055c35bff2"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/g8mBhUQ8XGM-JdlX2bMOO9eOtzA>
Subject: Re: [TLS] Connection ID Draft
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: Mon, 23 Oct 2017 12:13:17 -0000

On Mon, Oct 23, 2017 at 12:53 AM, yinxinxing <yinxinxing@huawei.com> wrote:

> Hi Ekr,
>
>
>
> For the post-handshake messages in the draft, I have some comments.
>
>
>
> 1.       When one peer sends NewconnectionID message to the other, it
> uses a newly defined handshake type. This new CID is attached in the
> payload of the record message. But there must be some information for the
> receiver to know which CID is going to be updated. I mean that when sending
> new CID through the NewConnectionID message, the record header should
> include the “old” CID, so that the receiver knows which one to replace.
>
The way that this mechanism works is that it either replaces all of them or
supplements the set. I'm not sure that this is the right dynamic, but I'd
first want to see some worked through cases.

2.       In the draft, is the new CID encrypted? I suggest that the new CID
> (for the first time sending) can be encrypted  to make sure that an
> attacker can not associate a new CID with an old CID. Let’s consider a case
> where an attacker wants to track an IOT device. If the newly generated CID
> is not encrypted when updating, the attacker can associate the new CID with
> the old one. Then, when the peer sends message with the new CID later, the
> attacker knows this packet is sent from the victim. If we encrypt the new
> CID when updating, this tracking problem can be avoided.
>

TLS 1.3 post-handshake messages are always encrypted.

 Another comment is about symmetrical CID.
>
> 1.       Consider a client sends a normal CID (CID length is not zero,
> named C-CID) to server, but the server doesn’t wants to use client’s CID
> and sends a CID generated by the server (named S-CID) to the client.
>
No. The CID is for the client's benefit, so why would this be useful?


> At the same time, client needs to know server has ignored C-CID (which
> means the downlink application message from the server will not include
> C-CID), and client will use S-CID in its application message. Will the
> draft cover this scenario?
>
No.

-Ekr


>
>
> Yin Xinxing
>
>
>
> *发件人:* Eric Rescorla [mailto:ekr@rtfm.com]
> *发送时间:* 2017年10月13日 21:00
> *收件人:* yinxinxing
> *抄送:* tls@ietf.org
> *主题:* Re: [TLS] Connection ID Draft
>
>
>
>
>
>
>
> On Fri, Oct 13, 2017 at 1:11 AM, yinxinxing <yinxinxing@huawei.com> wrote:
>
> Hi Ekr,
>
>
>
> Thanks for your effort. The draft looks good. A few comments are listed
> below.
>
>
>
> 1.       Based on the draft, for either DTLS1.2 or 1.3, server can’t
> differentiate whether the packet from client is a “connection ID” packet or
> a standard DTLS 1.2/1.3 packet. (I saw Thomas Fossati and Nikos also
> introduced this problem)
>
> Maybe we can add a new “ContentType” in the DTLS record format to help
> server identify the “connection ID” packet. In addition, you see the length
> of the record payload is limited by 2^14-1, this means the first two bits
> of “length” is zero. We could utilize this feature and set the first two
> bits or more bits of CID being one, e.g., 1111….(but the CID must be put
> between sequence number and length). When server finds 1111 after sequence
> number, it knows this is a “connection ID” packet. However, I don’t know
> whether it is proper to use such magic number. In my view, adding new
> contenttype may be a choice.
>
>
>
> As I said to Nikos, for DTLS 1.2, you can use a specially-constructed CID
> that would not be a valid length field. This can actually just have the
> leading bit set. As we're revising the DTLS 1.3 record format, we would
> need to do something different for that.
>
>
>
> 2.        For DTLS 1.2, there is no NewConnectionID and
> RequestConnectionID message. DTLS 1.2 server and client also has the
> requirement to request for a new CID, and at present, many products still
> use DTLS1.2 and I believe it will continue to be used for a long time even
> if TLS/DTLS1.3 is published. My point is that we need a corresponding
> method for updating CID for DTLS1.2 too.
>
> In general, the WG is working on TLS 1.3, not TLS 1.2, so I'm not really
> that excited about putting a lot of effort into enhancing TLS 1.2. The
> basic extension works fine for them, but if they want to change CIDs, then
> they should adopt DTLS 1.3.
>
>
>
> I don’t quite understand the following sentences
>
> “In DTLS 1.2, connection ids are exchanged at the beginning of the
>
>    DTLS session only.  There is no dedicated "connection id update"
>
>    message that allows new connection ids to be established mid-session,
>
>    because DTLS 1.2 in general does not allow post-handshake messages
>
>    that do not themselves begin other handshakes.”
>
>
>
> The only post-handshake messages allowed in DTLS 1.2 are ClientHello and
> HelloRequest.
>
>
>
> Besides, for CID in DTLS1.3, I think the corresponding responding messages
> of  NewConnectionID and RequestConnectionID are also needed to ensure that
> the peer has received CID.
>
>
>
> No, you use the ACK for these (https://tools.ietf.org/html/
> draft-ietf-tls-dtls13-01#section-7). This is one reason why there is not
> a straightforward port to DTLS 1.2 for these messages.
>
>
>
> 4.       The generation of CID should be more concrete. For example,
> using random number or a counter?
>
> I explicitly did not want to do that, because there are a lot of valid
> ways to generate CID. This is also what we did in QUIC.
>
>
>
> -Ekr
>
>
>
>
>
>
>
> Regards,
>
> Yin Xinxing
>
>
>
> *发件人:* TLS [mailto:tls-bounces@ietf.org] *代表 *Eric Rescorla
> *发送时间:* 2017年10月13日 7:14
> *收件人:* tls@ietf.org
> *主题:* [TLS] Connection ID Draft
>
>
>
> Hi folks,
>
>
>
> I have just posted a first cut at a connection ID draft.
>
> https://tools.ietf.org/html/draft-rescorla-tls-dtls-connection-id-00
>
>
>
> Comments welcome.
>
>
>
> -Ekr
>
>
>
>
>
>
>
>
>