On Wed, Oct 25, 2017 at 8:02 PM, yinxinxing <yinxinx...@huawei.com> wrote:

> Hi Ekr,
>
>
>
> Sorry for the delay. I don’t quite understand “The way that this
> mechanism works is that it either replaces all of them or supplements the
> set.” I see the new CID is encrypted in the post-handshake message and
> transferred to the peer. So, the record header of this message needs to
> contain the “old” CID.
>

Yes. I don't understand what your question is.

When you send a new CID, you can either label it as  cid_immediate or
cid_spare. "immediate" means "stop using all the other CIDs you have and
"spare" means "this is a CID you can use in addition to the others you have.



> Besides, I have summarized the ways of distinguishing the CID packet and
> standard packet that people have discussed in the mailing list:
>
> a)       Adding new ContentType.
>
> b)       Adding new version. (As you replied, since 1.3 is going to
> remove version field in the record header, so this choice may not be
> proper.)
>
> c)       Using specifically-constructed CID. (I saw you replied that it
> would be a way for DTLS 1.2. But for 1.3, you want a different way.)
>
> d)       By comparing the 5-tuple. Martin made this. (If I understand
> right) His idea is that first check the 5-tuple of the packet, if there is
> a match, then use the corresponding key. If there is no match, then treat
> the packet as a CID packet and find the CID in the packet according to the
> new format. But, the precondition for well working is that the 5-tuple of
> the CID packet will not be successfully matched in the receiver's 5-tuple
> table.
>
>
>
> For the above choices, what do you think? Or do you have any other good
> solution to be updated in the draft?
>

I think we should do neither (a) nor (b). I don't really understand (c) but
I think (d) is fine, though not the only technique implementors could use.

-Ekr



>
>
> Regards,
>
> Yin Xinxing
>
>
>
> *发件人:* Eric Rescorla [mailto:e...@rtfm.com]
> *发送时间:* 2017年10月23日 20:13
> *收件人:* yinxinxing
> *抄送:* tls@ietf.org
> *主题:* Re: [TLS] Connection ID Draft
>
>
>
>
>
>
>
> On Mon, Oct 23, 2017 at 12:53 AM, yinxinxing <yinxinx...@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:e...@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 <yinxinx...@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-boun...@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
>
>
>
>
>
>
>
>
>
>
>
_______________________________________________
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls

Reply via email to