Code review request, JDK-6956398, make ephemeral DH key match the length of the certificate key
Xuelei Fan
xuelei.fan at oracle.com
Tue Sep 24 05:27:06 UTC 2013
Ping ...
On 9/22/2013 11:15 AM, Xuelei Fan wrote:
> Hi Weijun,
>
> Are you available to review this update?
>
> webrev: http://cr.openjdk.java.net/~xuelei/6956398/webrev.00/
>
> This is an enhancement to support stronger ephemeral DH keys during TLS
> handshaking. A new system property is defined
> "jdk.tls.ephemeralDHKeySize". By default, the value of this system
> property is not defined. This system property won't impact DH key size
> in ServerKeyExchange message of exportable cipher suites.
>
> If this system property is defined as "legacy", no actually behavior
> change within this update.
>
> If this system property is defined as "smart", for non-exportable
> anonymous cipher suites, the DH key size in ServerKeyExchange message is
> updated from 768 bits to 1024 bits; and for X.509 certificate based
> authentication (of non-exportable cipher suites), the DH key size
> matching the corresponding authentication key is used except that the
> size should be between 1024 bits and 2048 bits. For example, if the
> public key size of an authentication certificate is 2048 bits, then the
> ephemeral DH key size should be 2048 bits accordingly unless the cipher
> suite is exportable.
>
> If this system property is defined as a valid integer between 1024 and
> 2048 inclusive, a fixed ephemeral DH key size as the specified integer
> value will be used for non-exportable cipher suites.
>
> If this system property is not defined, or the value is other than
> "legacy", "smart" and a valid integer, 1024 bits DH key is always used
> for non-exportable cipher suites.
>
> Note that with this fix, the biggest acceptable key size is 2048 bits
> because DH keys bigger than 2048 bits may be not supported by underlying
> JCE providers (for example, SunJCE provider).
>
> We may update the default ephemeral DH key size (which is 1024 bits with
> this fix) again in the future if the industry needs to use stronger
> strength.
>
> This update only impact DHE_RSA, DHE_DSS and DH_anon based cipher suites
> in Oracle provider.
>
> Here is a recap of the behaviors:
>
> jdk.tls.ephemeralDHKeySize | legacy | smart | integer | other
> | | | (fixed) |
> ---------------------------+--------+-------+----------+------
> exportable DH key size | 512 | 512 | 512 | 512
> ---------------------------+--------+-------+----------+------
> anonymous | 768 | 1024 | fixed[+] | 1024
> ---------------------------+--------+-------+----------+------
> authentication cert | 768 | [*] | fixed[+] | 1024
>
>
> [*]: the key size the same as the authentication certificate, but should
> be between 1024-bits and 2048-bits, inclusive.
> [+]: the fixed key size is specified by a valid integer property value,
> which should be between 1024-bits and 2048-bits, inclusive.
>
>
> Thanks,
> Xuelei
>
More information about the security-dev
mailing list