RFR JDK-8247630: Use two key share entries
Jamil Nimeh
jamil.j.nimeh at oracle.com
Mon Jul 27 19:28:56 UTC 2020
Hi Xuelei, I've updated the webrev based on your suggestion. It
actually made the logic a lot simpler so that was a good suggestion for
sure.
I also added a couple additional tests in ClientHelloKeyShares.java to
cover a few different namedGroup orderings.
https://cr.openjdk.java.net/~jnimeh/reviews/8247630/webrev.02/
--Jamil
On 7/27/20 9:11 AM, Jamil Nimeh wrote:
> Yes, I think I could restructure this to support that approach. You're
> right in that FFDHE gets the short end of the stick in the current
> scheme unless it's the only type in the namedGroups property and even
> then it takes the longest in terms of time. I'll restructure this and
> issue a new webrev.
>
> --Jamil
>
> On 7/27/2020 8:21 AM, Xuelei Fan wrote:
>> I was just wondering, could we just simplify the implementation by
>> using two named groups for the top two-preferred categories, without
>> limited to XDH and ECDHE? For example, if FFDHE is on the top 2,
>> FFDHE will be used as well. Normally, XDH and ECDHE will be used,
>> but the simplifying is a little bit more flexible if FFDHE is
>> preferred. What do you think?
>>
>> Xuelei
>>
>> On 7/8/2020 3:57 PM, Jamil Nimeh wrote:
>>> Hello all,
>>>
>>> This is a small enhancement to the TLS 1.3 client hello. With this
>>> change JSSE will make a best-effort attempt to select the
>>> most-preferred XDH and ECDHE named group. In most cases this will
>>> be x25519 and secp256r1. This was done to help reduce the number of
>>> times our clients get HelloRetryRequests due to servers wanting
>>> secp256r1 when we would just assert x25519.
>>>
>>> The asserted key shares can be affected by different settings for
>>> the jdk.tls.namedGroups System property. If x25519 and/or secp256r1
>>> are missing, the next-most-preferred named group of that class will
>>> be selected. If no other named group in that class is in the
>>> supported_groups extension, then it will be skipped. In the
>>> unlikely event that no XDH or ECDHE supported group is asserted,
>>> then the client will assert one key share, the most preferred one
>>> out of the supported groups.
>>>
>>> This also fixes one minor spec compliance issue where we weren't
>>> throwing an exception when a server returned an illegal
>>> HelloRetryRequest with a named group that was in the original
>>> key_shares extension from the client hello.
>>>
>>> Webrev: https://cr.openjdk.java.net/~jnimeh/reviews/8247630/webrev.01/
>>>
>>> JBS: https://bugs.openjdk.java.net/browse/JDK-8247630
>>>
>>> --Jamil
>>>
More information about the security-dev
mailing list