Re: [TLS] draft-wang-tls-raw-public-key-with-ibc-10

michael cheng <mzhcheng@gmail.com> Mon, 25 March 2019 14:07 UTC

Return-Path: <mzhcheng@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 3C3E11204CA for <tls@ietfa.amsl.com>; Mon, 25 Mar 2019 07:07:31 -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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-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 BY6jFjQPMlgM for <tls@ietfa.amsl.com>; Mon, 25 Mar 2019 07:07:28 -0700 (PDT)
Received: from mail-io1-xd34.google.com (mail-io1-xd34.google.com [IPv6:2607:f8b0:4864:20::d34]) (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 22DA612043B for <tls@ietf.org>; Mon, 25 Mar 2019 07:07:28 -0700 (PDT)
Received: by mail-io1-xd34.google.com with SMTP id x3so7706263iol.10 for <tls@ietf.org>; Mon, 25 Mar 2019 07:07:28 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to:cc; bh=GC0HdJ5Tjk+pKdsS11inYPZFO5ATm+pfso4QHrTn2b4=; b=R9GGtztsgLsbdcd+27urXssLJGTgP5/Xgs3SxaCb876xHEJwWlx/KjwzauPvdPPa29 bGag1OwPWSOosIGHZS2dnpEPi3B3oYxko1vEoKgN7O+Df/SZK9usf4AZiCWTS1IgNJtf xx3QLMlkPcxQFLgagHCyikxOogrp2S1/RtfZI7eazfZg24YzLJ4x0nzHeJR8PiOLNkk6 mEVdk3qC5AMwTN8tmviizmHcABuG/Sb0xAZ8dYW99KHDFbpO2Q8pumnal0e/LIhpXcWN +JpJwnYkGQOhzNh51cDuQJiH8MLkVyyfzi8OMPZlM9e5E1OB+iUXTGUQTAk6ul9S9Flk PzHQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=GC0HdJ5Tjk+pKdsS11inYPZFO5ATm+pfso4QHrTn2b4=; b=lcqrnfSMFYPIny9ITzA+f48K9sjuHFSwdpLMHZyTik939Y5i0ehEISB+5WdlU1LBcT l1kwQrbx16ejNJgvlohB8rcv3wa9zdZWyC34ooQDpN9OI2mrrOOs8kSADDPTg42N9kDK XO8j9RdUhi32mLO6wh9hv2QfL2NBbXkv26yR72cF2nc1WPs6uUwl+C6WN4dRLps/W0U8 1nDfX+nJUOU1uos2d8VoGaJ6qGtI9wdxZ7Sfb3GJrxTg2NKVDcrSDxcgF3LN8sGdzQxn /3AeFXkZMbap1pNC4Lelt0YNMb2gLFfhs0IROMdGsJ+coQcBCgpN4Js1V+Jct82ep1lQ wNuA==
X-Gm-Message-State: APjAAAX51iirbwHhCBGRtiJnTW90HMcQWe6AW0r3BGt/RP3yXDnTIc4p vQ3eFZTQzLTn8F1imn8gsHv9B50oYNxa/JAy/PA=
X-Google-Smtp-Source: APXvYqw8k0/7KxiHj6qU4l0s/iF4muLAhiJ+q3xZdT5Ar3OP9ViDpSjLIdQMI/4j7JTC5BDf7JxSvBnWSiMFipwQRec=
X-Received: by 2002:a5e:c204:: with SMTP id v4mr17579319iop.252.1553522847339; Mon, 25 Mar 2019 07:07:27 -0700 (PDT)
MIME-Version: 1.0
From: michael cheng <mzhcheng@gmail.com>
Date: Mon, 25 Mar 2019 22:07:05 +0800
Message-ID: <CAPkJ7AgWXxZVoMEX-AS=G4xfAuget+5kH57WC5JVq4mYw609Uw@mail.gmail.com>
To: ekr@rtfm.com
Cc: tls@ietf.org, wang.haiguang.shieldlab@huawei.com
Content-Type: multipart/alternative; boundary="0000000000007758600584ebb99e"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/2vWm07zd2AovvlRuuhs6tYCd5nw>
Subject: Re: [TLS] draft-wang-tls-raw-public-key-with-ibc-10
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.29
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, 25 Mar 2019 14:07:36 -0000

Hi Ekr,


    As Haiguang explained in the email, the proposal now mainly targets the
IoT scenario and we believe there is a strong case that we should take a
new approach to the security of this scenario.



  As for IoT devices, mainly there are three possible choices. 1) use the
symmetric-key solution. Concurrently in the telecom networks, symmetric
keys are used for device authentication and session key establishment.
Maybe TLS could be further applied but with only server authentication and
a client device, whose symmetric key is known by the server, is
authenticated with the symmetric key in the application layer. 2) force
every device to obtain a certificate and use TLS with both client and
server authentication. 3)every device has a pair of public/private key and
use TLS for both client and server authentication. However, the raw public
key should be validated with separate mechanisms.



  As suggested in Erk's previous email, " the current situation is bad."
The first method is vulnerable to certain attacks and makes the whole
authentication process complicated if TLS+symmetric key (separated client
authentication) is used. In particular, roaming device authentication has
to involve the homework to participate in the authentication process.
However, the method is light on the client side and makes it the favorite
choice.


   The second method has the strongest security. On the other hand, it is
heavy, particularly for resource-constrained devices. This may be the main
reason that the first method is still a favorite choice for client
authentication.


   For the third method, the public key validation process should be
carried out. There are a couple of choices like DNS or PKIX or preinstalled
keys. For the server side's public key validation, DNS may be OK, but for
billions of IoT devices, this is not feasible. For PKIX, it is arguable
that if such system is "viable" in many cases with online certificate query
for tens of millions or even billions of devices. "viable" I mean both
technically and financially. Cost-effectiveness plays an important role
when a technical decision is made.  A PKI system with billions of
certificates may be technically possible like the one run by EMVCo.
However, for low-value target IoT devices, many service providers favor
low-cost solutions. A database containing the pairs of id and public keys
is a possible choice. On the other hand, the integrity of such maps has to
be guaranteed. If only a server needs to access such information, this may
not be critical. However, more scenarios should be considered too, like
cross-domain verifications and device2device authentications.



  Identity-based cryptography, particularly, identity-based signature in
the proposal offers another option. The entity's public key is calculated
from an identity string and a set of system parameters. It has several
advantages. First, it could use less bandwidth and computation power. For
example, the ECCSI algorithm could work exactly with an infostructure like
a PKIX with revocation capability. It still offers clear advantages. It
takes one point scalar to compute the public key and one point to represent
the public key reconstruction data. While in PKIX issuing certificates with
ECDSA, a certificate validation process requires two point scalar for ECDSA
verification, and the certificate contains an entity's identity info, a
public key and CA's signature (64 bytes at least). So,  ECCSI could be 50%
faster in term of public key validation and 50% shorter than a certificate
(if an identity encoding scheme with expiry info is about 32-bytes long,
for example, Zigbee smart energy standard uses 26-byte id encoding).
Second, IBC does not need a mechanism to map id with a key set, this
certainly simplifies the system. At least a highly protected database to
store a user's secret key is not necessary.



  As for the key escrow problem frequently raised in the emails, indeed,
there is a PKG in the system which could generate each device's private
key. However, when IBS is used in TLS1.3, passively attack to recover the
session key is not possible. Actively man-in-the-middle attack by replacing
exchanged DH tokens and signatures would certainly leave traces even
transiently. Similarly, a PKG could impersonate an entity to conduct a TLS
session, just as the KMS in the symmetric key solution, but forensic traces
could be also collected in this situation. It would be hugely risky for a
PKG, which would usually be a trusted party, to launch such attacks. If
such an attack is caught in red-handed, no one would trust the PKG's
service anymore.



   Overall, TLS+IBS offers advantages over symmetric-key based solution
with better security properties and flexibility. TLS+IBS could be better in
term of computation efficiency and communication bandwidth than
TLS+Certificate or TLS+raw public key. As for security, the only issue is
the key escrow capability of PKG. The passive attack is not possible with
TLS 1.3+IBS, and launching the active man-in-the-middle attack or
impersonation attack could severely corrode the PKG's reputation if such an
attack was detected. We believe for many application scenarios like the IoT
that the proposal is currently targeting, TLS+IBS makes a step forward
towards a better or more secure alternative.


Michael Cheng