Re: [TLS] Solving the NAT expiring problem causing DTLS renegotiation with high power consumption in DTLS1.2

Dan Wing <danwing@gmail.com> Thu, 13 July 2017 00:52 UTC

Return-Path: <danwing@gmail.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 1EA7312EC01 for <tls@ietfa.amsl.com>; Wed, 12 Jul 2017 17:52:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-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=gmail.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 WDns2p4Q2yxs for <tls@ietfa.amsl.com>; Wed, 12 Jul 2017 17:52:24 -0700 (PDT)
Received: from mail-pf0-x244.google.com (mail-pf0-x244.google.com [IPv6:2607:f8b0:400e:c00::244]) (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 A8B7D126C7A for <tls@ietf.org>; Wed, 12 Jul 2017 17:52:24 -0700 (PDT)
Received: by mail-pf0-x244.google.com with SMTP id c24so5090889pfe.1 for <tls@ietf.org>; Wed, 12 Jul 2017 17:52:24 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=U994YohKKzENlo4mXYbnT/kiLgg4QhGMHF2j+uAZFLU=; b=WqfRzgipSMhyDN77kiEuvqtF0wCuW9J13GMlV9nNM0djjHxnUQMzfOyc4oSEg+Paey 0LwmuXORpKYTPrbVnsBtV/INYFM3d1EvZvB9uKFvA44J+ZHQrNNlm2njzRx9EZg8WfE1 BE80VItMix3NSXhWgYlePUAdpqvckdwZcyT2GTUqO+Cfb6mM54SbZQ9c4h0Z2lAXaXpn M7o/zgXJ6hMVwwDcF1qWW9KjXbKb6/Mcbq2G6KxPIyLU/P8FEioQJv0mbb1wGmw90n0a VidKWRUVhPtN4UieFrAlbiNQgGNBuqoH/kQTk+gMpJCmSplCjwcTvCFKunQ11KTvd2NX ZQgQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=U994YohKKzENlo4mXYbnT/kiLgg4QhGMHF2j+uAZFLU=; b=uM+KI0VGRqGaAvS7asEx3lLDudrOsL7apZ9bFfftA99o1S/4mnC4X165CI5SqipxOp 09rf019FPpRg1R0CKDQOmx2FTxyAsGevZZ9QzQpN+/tly/tE+neeqJy/vuft5TdifUSj W3zPVGvguyyU5vL5EDkxFz8p2Gj7vfnWMMAtSJUExNeoE4ObLjHU3M2aB1bLdGNHA2ZV EWB5JdzEJgBqQlBOjYUfIqMkJDqIsjoqLKVZ8CNjD1U6lYRQTSMhngxRyvtrdBdVg8I4 YIYmvwjGdgisecNViAH4BpiKDFtLF01NpeEZosWmD0u0Hq9HltJBgDhpjoPSIs86aRf0 o18Q==
X-Gm-Message-State: AIVw110xPZtrV0KUDnldXDLqfqCuiBTm3Fxq3LrKwkHFY3KwTKSEu97m 5aAbJLNhO09hXw==
X-Received: by 10.98.217.23 with SMTP id s23mr58849522pfg.204.1499907144087; Wed, 12 Jul 2017 17:52:24 -0700 (PDT)
Received: from prome-1n-dhcp2-133.eng.vmware.com ([208.91.1.34]) by smtp.gmail.com with ESMTPSA id f19sm10793632pfj.14.2017.07.12.17.52.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 12 Jul 2017 17:52:23 -0700 (PDT)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
From: Dan Wing <danwing@gmail.com>
In-Reply-To: <DBDF9AE44733284D808F0E585E1919022C78C375@dggemi508-mbx.china.huawei.com>
Date: Wed, 12 Jul 2017 17:52:21 -0700
Cc: "tls@ietf.org" <tls@ietf.org>, Sean Turner <sean@sn3rd.com>
Content-Transfer-Encoding: quoted-printable
Message-Id: <D0A5233A-5790-4239-A73B-71F683861B7D@gmail.com>
References: <DBDF9AE44733284D808F0E585E1919022C78B070@dggemi508-mbx.china.huawei.com> <EF3E130D-1061-40A8-8A7E-89F251366D89@sn3rd.com> <8B21E199-A56B-41DE-A50B-C689C0DA7BA0@gmail.com> <DBDF9AE44733284D808F0E585E1919022C78C375@dggemi508-mbx.china.huawei.com>
To: yinxinxing <yinxinxing@huawei.com>
X-Mailer: Apple Mail (2.3273)
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/ujbIbRejSyYbMf-w-YMp3LNhln4>
Subject: Re: [TLS] Solving the NAT expiring problem causing DTLS renegotiation with high power consumption in DTLS1.2
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: Thu, 13 Jul 2017 00:52:27 -0000

> On Jul 12, 2017, at 5:21 PM, yinxinxing <yinxinxing@huawei.com> wrote:
> 
> Hi Dan Wing,
> 
> Thanks for your comments.
> 
> Please see my comments inline.
> 
> Regards,
> Yin Xinxing
> 
> -----邮件原件-----
> 发件人: Dan Wing [mailto:danwing@gmail.com] 
> 发送时间: 2017年7月13日 1:09
> 收件人: yinxinxing
> 抄送: tls@ietf.org; Sean Turner
> 主题: Re: [TLS] Solving the NAT expiring problem causing DTLS renegotiation with high power consumption in DTLS1.2
> 
> 
>> On Jul 12, 2017, at 7:56 AM, Sean Turner <sean@sn3rd.com> wrote:
>> 
>> 
>>> On Jul 6, 2017, at 23:04, yinxinxing <yinxinxing@huawei.com> wrote:
>>> 
>>> Hi all,
>>> 
>>> The NAT table expiring problem mentioned in the  following email should also be considered in DTLS1.2 as an extension.
>>> 
>>> The value and necessity are as follows.
>>> 
>>> 1. Essentially, NAT expiring problem causing DTLS renegotiation with high power consumption is existing in DTLS 1.2. Even if we solve this in DTLS1.3, this problem still exist for products using DTLS1.2.
>>> Currently, many IOT products using DTLS 1.2 are going to be deployed commercially, such as intelligent water/gas meter. These meters usually have limited battery and low cost. To be more accurate, the battery of the chip module of the intelligent water/gas meter are required to last for 10 years. These lead to an exercise strict control over the power consumption of the chip module. NAT expiring problem causing DTLS renegotiation with high power consumption is a bottleneck of these IOT devices. According to our experimental data, under the worst coverage level (ECL2), power consumption of the chip module when DTLS is embedded increases by nearly 60%. Therefore, there should be a solution to solve the urgent problem to match the low-cost and low-battery feature of the IOT devices in DTLS 1.2.
>> 
>> I have to ask whether these IoT devices are updatable?
>> 
>>> 2. DTLS 1.3 will be standardized in 2018, but the corresponding open source code will be available about one year later after the standardization. At present, large-scale commercial IOT industry deployment is urgent, it is too late to wait for DTLS 1.3. Thus, we hope that the above problem could be solved in DTLS 1.2 as soon as possible.
>> 
>> On this point, I’m hoping that you’ll be wrong ;). From the list of TLS implementations found here:
>> https://github.com/tlswg/tls13-spec/wiki/Implementations
>> and assuming there is as much enthusiasm to implement DTLS1.3 as there was for TLS1.3 then I’m hoping that the DTLS implementations will be ready much sooner than a year after publication (they might be ready before the RFC is published).
> 
> 
>> Yin Xinxing,
> 
>> While waiting for cid, perhaps today do session resumption (RFC5077), anytime the client has reason to suspect their UDP port or IP address might have changed -- such as it's been longer than, say, 30 seconds since last UDP transmission.  (The problem isn't solely NAT; there are several ISPs that change subscriber's IP address, >also forcing re-negotiation of DTLS security association.  Less frequent than NATs timing out UDP, of course.)
> 
>> -d
> [Yin] Yes, you are right. The problem isn't solely NAT expiring, but changing from WLAN to 3GPP, or IOT devices waking up from sleep mode. All of these could lead to IP change.
> Session resumption is a good way to re-negotiate the DTLS session. However, according to our IOT products, e.g., intelligent water/gas meter, session resumption mechanism still needs to communicate 6 or 5 messages(based on the cipher suite TLS_PSK_WITH_AES_128_CBC_SHA256) and this re-negotiation mechanism still costs too much battery and can not ensure 10-year lifetime of the IOT products' battery. 

I see 3 messages and no cryptographic operations for the client in Figure 2 of https://tools.ietf.org/html/rfc5077#page-5.  So I guess you're saying the IoT device can't send two packets and receive one packet without impacting its battery.  I agree 'cid' is more efficient, but it isn't yet standardized.  I would consider doing RFC5077 and then, when 'cid' or DTLS 1.3 is available, update the devices to support 'cid' or DTLS 1.3, as Sean implied when he asked if the devices could be updated.

(I hope the devices aren't using the same pre-shared key!  That would be bad.)

-d




> 
>> spt
>> 
>>> Any comment is appreciated.
>>> 
>>> Regards,
>>> Yin Xinxing
>>> 
>>> 
>>> 发件人: yinxinxing 
>>> 发送时间: 2017年6月27日 16:28
>>> 收件人: 'Eric Rescorla'
>>> 抄送: tls@ietf.org; Tobias Gondrom
>>> 主题: Re: [TLS] Yin Xinxing joins the TLS WG
>>> 
>>> Thanks Eric,
>>> 
>>> I have seen the CID scheme, and talked with Hannes(the author of the scheme).
>>> 
>>> CID scheme is a good idea to solve the problem I mentioned.
>>> 
>>> I think the length of CID (currently, it is 32 bits) can be longer so that it can support more DTLS sessions. It is known that for IOT scenario, 1 million connection is nothing.
>>> 
>>> Regards,
>>> Yin Xinxing
>>> 
>>> 发件人: Eric Rescorla [mailto:ekr@rtfm.com] 
>>> 发送时间: 2017年6月25日 21:33
>>> 收件人: yinxinxing
>>> 抄送: tls@ietf.org; Xiongxiaochun
>>> 主题: Re: [TLS] Yin Xinxing joins the TLS WG
>>> 
>>> Hi Yin,
>>> 
>>> The usual solution to this is to add a connection id. Please see:
>>> https://github.com/tlswg/dtls13-spec/issues/6
>>> 
>>> -Ekr
>>> 
>>> 
>>> 
>>> 
>>> On Sun, Jun 25, 2017 at 2:33 AM, yinxinxing <yinxinxing@huawei.com> wrote:
>>> Hello everyone,
>>> 
>>> I am Yin Xinxing from Huawei company. I am glad to join the TLS WG.
>>> 
>>> For the DLTS 1.3 draft, I am interested and have some ideas to talk with you.
>>> 
>>> DTLS has a lot of application scenarios in IOT fields, but currently, there is some difficulty when DTLS 1.2 is applied to IOT devices, especially the battery-constrained IOT devices.
>>> 
>>> For example, when the IOT device wakes up from sleep mode, the NAT table may have expired.
>>> Then the IOT device has to establish a new DTLS session or at least launches a resume process with the server, the corresponding power consumption is too high for some power-constrained devices. 
>>> How can DTLS renegotiation be avoided in order to save battery?
>>> 
>>> I hope the contributors of DTLS 1.3 (or DTLS 1.2) can consider this problem and give a proper solution.  
>>> 
>>> Any comment or idea about this problem is welcome.
>>> 
>>> Regards,
>>> Yin Xinxing
>>> 
>>> _______________________________________________
>>> TLS mailing list
>>> TLS@ietf.org
>>> https://www.ietf.org/mailman/listinfo/tls
>>> 
>>> 
>>> _______________________________________________
>>> TLS mailing list
>>> TLS@ietf.org
>>> https://www.ietf.org/mailman/listinfo/tls
>> 
>> _______________________________________________
>> TLS mailing list
>> TLS@ietf.org
>> https://www.ietf.org/mailman/listinfo/tls
>