Code Review Request, JDK-8140436, Support the FFDHE TLS extension
Jamil Nimeh
jamil.j.nimeh at oracle.com
Mon Apr 17 23:47:20 UTC 2017
Hi Xuelei, one question and one nit, the rest looks pretty good.
* SupportedGroupsExtension
o Line 267 and 278: From what I can see historically and with TLS
1.3 draft 19 the underlying list for elliptic_curves and/or
supported_groups extension data cannot be empty. Should there be
guards in the two constructors to prevent use of an empty array
or an incoming empty vector?
* NamedGroup
o This is a nit, but I'm curious why you didn't just overload
valueOf as valueOf(int) and valueOf(String) similar to how
Integer does it and others like it. I'm fine with it as-is if
you prefer to keep it that way.
--Jamil
On 4/14/2017 10:48 AM, Xuelei Fan wrote:
> Hi,
>
> Adam Petcher have some good comments in a private mail to me. The
> webrev is updated accordingly:
>
> http://cr.openjdk.java.net/~xuelei/8140436/webrev.01/
>
> Major update: No customization is allowed for the FFDHE parameters.
>
> Thanks,
> Xuelei
>
> On 4/13/2017 11:15 AM, Xuelei Fan wrote:
>> Hi,
>>
>> Please review the enhancement to support Finite Field Diffie-Hellman
>> Ephemeral (FFDHE) Parameters negotiation in SSL/TLS/DTLS implementation.
>>
>> http://cr.openjdk.java.net/~xuelei/8140436/webrev.00/
>>
>> Updates:
>> 1. Support predefined FFDHE parameters.
>> JDK will support the following FFDHE parameters defined in RFC 7919, in
>> preference order:
>> name | key size (bits)
>> ---------------+-------------------
>> ffdhe2048 | 2048
>> ---------------+-------------------
>> ffdhe3072 | 3072
>> ---------------+-------------------
>> ffdhe4096 | 4096
>> ---------------+-------------------
>> ffdhe6144 | 6144
>> ---------------+-------------------
>> ffdhe8192 | 8192
>> ---------------+-------------------
>>
>>
>> 2. Define a new System Property so as to disable the FFDHE mechanism
>> For RFC 7919 compatible client, the predefined FFDHE parameter names are
>> present in the "supported_groups" TLS extension. Some server may not be
>> able to handle this extension or the FFDHE groups in the extension. If
>> there is an interop issue, the new defined System Property,
>> "jsse.enableFFDHE", can be used to dismiss the predefined FFDHE
>> parameters for DHE cipher suites.
>>
>> 3. Redefine the jdk.tls.ephemeralDHKeySize System Property.
>> For connection request from RFC 7919 compatible clients, the server
>> would prefer to use FFDHE mechanism at first unless
>> "jdk.tls.ephemeralDHKeySize" is defined to use "legacy" mode for
>> compatibility reason.
>>
>> jdk.tls.ephemeralDHKeySize | FFDHE | Server behavior
>> ---------------------------+----------------------+----------------------
>>
>> "legacy" | in any case | Use legacy mode.
>> ---------------------------+----------------------+----------------------
>>
>> not "legacy" | Not present in the | Use DHE parameters
>> | ClientHello message | compatible to the
>> | | System Property.
>> ---------------------------+----------------------+----------------------
>>
>> not "legacy" | Present in the | Use the FFDHE
>> | ClientHello message | defined parameters.
>>
>> Note: Exportable cipher suites do not use the FFDHE mechanism.
>>
>> 4. Extend the "jdk.tls.namedGroups" System Property
>> Extend the "jdk.tls.namedGroups" System Property to support customized
>> FFDHE groups. The following names are now supported by the System
>> Property.
>>
>> Names for named group | For EC or DH | Is it new in the update?
>> ------------------------+---------------+-------------------------
>> secp256r1 | ECDHE | No
>> ------------------------+---------------+-------------------------
>> secp384r1 | ECDHE | No
>> ------------------------+---------------+-------------------------
>> secp521r1 | ECDHE | No
>> ------------------------+---------------+-------------------------
>> sect283k1 | ECDHE | No
>> ------------------------+---------------+-------------------------
>> sect283r1 | ECDHE | No
>> ------------------------+---------------+-------------------------
>> sect409k1 | ECDHE | No
>> ------------------------+---------------+-------------------------
>> sect409r1 | ECDHE | No
>> ------------------------+---------------+-------------------------
>> sect571k1 | ECDHE | No
>> ------------------------+---------------+-------------------------
>> sect571r1 | ECDHE | No
>> ------------------------+---------------+-------------------------
>> ffdhe2048 | FFDHE | Yes
>> ------------------------+---------------+-------------------------
>> ffdhe3072 | FFDHE | Yes
>> ------------------------+---------------+-------------------------
>> ffdhe4096 | FFDHE | Yes
>> ------------------------+---------------+-------------------------
>> ffdhe6144 | FFDHE | Yes
>> ------------------------+---------------+-------------------------
>> ffdhe8192 | FFDHE | Yes
>> ------------------------+---------------+-------------------------
>>
>> Thanks,
>> Xuelei
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/security-dev/attachments/20170417/1a34f604/attachment.htm>
More information about the security-dev
mailing list