Re: [TLS] Extensions "supported_groups" and "key_share" in TLS 1.3

Xuelei Fan <xuelei.fan@vimino.com> Fri, 27 November 2015 01:37 UTC

Return-Path: <xuelei.fan@vimino.com>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9ACE51A1AE6 for <tls@ietfa.amsl.com>; Thu, 26 Nov 2015 17:37:31 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.277
X-Spam-Level:
X-Spam-Status: No, score=-1.277 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, NORMAL_HTTP_TO_IP=0.001, SPF_PASS=-0.001] autolearn=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 h-DZQ4OWdjSC for <tls@ietfa.amsl.com>; Thu, 26 Nov 2015 17:37:30 -0800 (PST)
Received: from mail-oi0-x22f.google.com (mail-oi0-x22f.google.com [IPv6:2607:f8b0:4003:c06::22f]) (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 EAF231A1AD9 for <tls@ietf.org>; Thu, 26 Nov 2015 17:37:29 -0800 (PST)
Received: by oixx65 with SMTP id x65so54503529oix.0 for <tls@ietf.org>; Thu, 26 Nov 2015 17:37:29 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vimino-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=8UsE18kP7gYh+MH4n6qGSLB89zQZGcYkd7z6OBwqTgs=; b=NNLgfIezoWpg+KCxYpxhI2c+dawr8vHJGa6jDKvV3vCR7XCnbQ44kZGcRrYT/O83sa ul8UQCK1eH28BHx3S4Vfo38OxSOLnhSPlwuJSxfQjdrGLo7ViQ7rQUUKpRe0SqyZGt3s Jb1RWnQHXcnkjHlcCchsUzD2eitS2VsJyFXobXljwf3PwqL90sJDbT7K70rpgYvpd6ho 9sigm/RtwudJDhbLchu+xcha0kcAfrC+kXi5HjTm1WOghJVt+bYtN719Yju4+Qisl9ia 4C6RQEkcVfqMvT3u+BJ7BceWaSuStArrnDRcxQfAQ6EVsiXUGTxeLHV0/9jWSesQ4V6x v9vw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=8UsE18kP7gYh+MH4n6qGSLB89zQZGcYkd7z6OBwqTgs=; b=PSf+IJ0oRb0n7kPRryGjCUljVx789HHgDt6ePg/UTH0tE8QMC5/XvgWdegSxy8obGk SpdjgHZqtAeiU9ndEVS3M3ne42eDdSu6BdaMcxPNtQ7lvofLi8ey5YwKg75qrXyIcAAJ TnjXzGXK9r1SmX3DnrQ9pSDOSnW2+oG8Oi31rd+jEOcMzvCPIB68J3ZuG4XazXIcqFaf 9Ts1lfEI4lQ+uCJiqZzjxwJVU4ZvIDbtIqE+w7uDfttQ/pfCSWu4DTwgp4glZ+61Swqu yyohGTyGmeNdZuxiP6aOIOwKQf5jROSM0obJ9g2NgoDwGEzVy7hnPcLAW4TWrWc3bjLh GU5Q==
X-Gm-Message-State: ALoCoQkLpVR8xTBERxHcpjNwhgLaWzW6XnlgHDknZNen3rBqcyz2eiSm9N19PHEkFNhh/kY86Ffg
MIME-Version: 1.0
X-Received: by 10.202.215.195 with SMTP id o186mr17171263oig.87.1448588249458; Thu, 26 Nov 2015 17:37:29 -0800 (PST)
Received: by 10.76.171.103 with HTTP; Thu, 26 Nov 2015 17:37:29 -0800 (PST)
X-Originating-IP: [148.87.19.218]
In-Reply-To: <CAAgBOhvRY+TPKb-Bwtpm_uGKJwJyaY7pDZfd38MrucOhSC_oEg@mail.gmail.com>
References: <CAAgBOhuOPB=jxO=WWHmy_y7ARY5qfdK2x4xC9t-Z-vn0UU5Paw@mail.gmail.com> <20151126142632.GA3582@LK-Perkele-V2.elisa-laajakaista.fi> <CAAgBOhtG7vKx6Bro9+Qp2Gbcz8sitatYKEL=R5tW8ix7rSeMqw@mail.gmail.com> <20151126191525.GB3728@LK-Perkele-V2.elisa-laajakaista.fi> <CAAgBOhvRY+TPKb-Bwtpm_uGKJwJyaY7pDZfd38MrucOhSC_oEg@mail.gmail.com>
Date: Fri, 27 Nov 2015 09:37:29 +0800
Message-ID: <CAAgBOhuc9hJ2S9nxevvgYL6vkPfFTd7qAO7XubJtBVisbYdCcA@mail.gmail.com>
From: Xuelei Fan <xuelei.fan@vimino.com>
To: Ilari Liusvaara <ilariliusvaara@welho.com>
Content-Type: multipart/alternative; boundary="001a113d531009039605257bbc36"
Archived-At: <http://mailarchive.ietf.org/arch/msg/tls/eDQL7Ld9gxubZu6UKecERjhupFE>
Cc: "tls@ietf.org" <tls@ietf.org>
Subject: Re: [TLS] Extensions "supported_groups" and "key_share" in TLS 1.3
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.15
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: Fri, 27 Nov 2015 01:37:31 -0000

>
> > > > The "supported_groups" extension defines the groups, while the
>> > > "key_share"
>> > > > extension defines both the groups and the key exchange
>> information.  Both
>> > > > extension has its own preferences for the supported named groups.
>> It's
>> > > > easy to get conflicted if the two preferences are not consistent.
>> The
>> > > > "key_share" extension contains the information of the supported
>> named
>> > > > groups.  So, the information can be used to indicate the client
>> supported
>> > > > named groups.  Maybe, for TLS 1.3, it is not necessary to use the
>> > > > "supported_groups" extension any more.
>> > >
>> > > The only way to be conflicted would be to send key share for group
>> not in
>> > > supported_groups. Sending supported_group for group not in key_shares
>> is
>> > > not a conflict[1].
>> > >
>> > The preferences may be not consistent, too.  For example, the
>> > supported_groups prefer ffdhe2048, but the key_share prefer ffdhe4096.
>> > Using two preferences would make the implementation inconsistent between
>> > vendors if no clearly specification about the preference of the two.
>>
>> Only supported_groups are perference-ordered. Key_shares is unordered,
>> with special exception for retry (the added group always goes last).
>>
>>
> In section 6.3.2.3:
>     client_shares
>          A list of offered KeyShareEntry values in descending order of
> client preference.
>
> I think, key_share is ordered too.  If considering both key_share and
> supported_groups together, looks like there are two options:
> 1. key_share defines the preferences and supported named groups, which is
> overlap with supported_groups. supported_groups is used for version
> down-negotiation purpose. Don't define supported_groups as mandatory any
> more.
>
> For this case, empty key_share vector can be used to indicate to request
> server choice shares.
>
> 2. key_share won't defines the preferences any more.  The named groups in
> key_share MUST exist in supported_groups extensions.  supported_groups is
> used to define the supported named groups and preference, and key_share is
> used to define the shares.  Both are mandatory.
>
> For this case, key_share can be omitted to indicate to request server
> choice shares.
>
>
Update: key_share can be omitted, or the client_shares vector can be empty to
indicate to request server choice shares.

Xuelei