Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何强制使用Diffie-Hellman密钥交换_Java_Ssl_Diffie Hellman - Fatal编程技术网

Java 如何强制使用Diffie-Hellman密钥交换

Java 如何强制使用Diffie-Hellman密钥交换,java,ssl,diffie-hellman,Java,Ssl,Diffie Hellman,我想创建一个TLS套接字连接。我知道TLS有几种交换密钥的方法,例如RSA、Diffie-Hellman等。如何强制使用Diffie-Hellman密钥交换而不是其他形式的密钥交换 我知道如果使用Diffie-Hellman密钥交换,它很容易受到中间人攻击。在使用RSA时,我们使用服务器身份验证来防止MITM。但我担心的是,使用RSA会禁止前向保密 我应该怎么做?通过选择支持密钥交换方法的密码套件来指定密钥交换方法 您可以使用在SSLSocket(或SSLEngine)上创建密码套件 中提供了支

我想创建一个TLS套接字连接。我知道TLS有几种交换密钥的方法,例如RSA、Diffie-Hellman等。如何强制使用Diffie-Hellman密钥交换而不是其他形式的密钥交换

我知道如果使用Diffie-Hellman密钥交换,它很容易受到中间人攻击。在使用RSA时,我们使用服务器身份验证来防止MITM。但我担心的是,使用RSA会禁止前向保密


我应该怎么做?

通过选择支持密钥交换方法的密码套件来指定密钥交换方法

您可以使用在
SSLSocket
(或
SSLEngine
)上创建密码套件

中提供了支持的密码套件表和Oracle JRE默认启用的密码套件表

匿名密码套件(
\u DH\u anon\u
)是易受MITM攻击的套件


\u DH\u RSA\u
\u DH\u DSA\u
密码套件也使用RSA或DSA对DH密钥交换进行身份验证(而不是密钥交换本身),以防止MITM攻击。此外,短暂的DH密码套件(包含椭圆曲线变体的
\u DHE\u
\u ECDHE\u
的套件)提供了完美的前向保密性。(Sun JSSE提供程序无论如何都不支持非短暂的
\u DH_RSA\u
\u DH_DSA\u
密码套件。)

通过选择支持该密钥交换方法的密码套件来指定密钥交换方法

您可以使用在
SSLSocket
(或
SSLEngine
)上创建密码套件

中提供了支持的密码套件表和Oracle JRE默认启用的密码套件表

匿名密码套件(
\u DH\u anon\u
)是易受MITM攻击的套件

\u DH\u RSA\u
\u DH\u DSA\u
密码套件也使用RSA或DSA对DH密钥交换进行身份验证(而不是密钥交换本身),以防止MITM攻击。此外,短暂的DH密码套件(包含椭圆曲线变体的
\u DHE\u
\u ECDHE\u
的套件)提供了完美的前向保密性。(Sun JSSE提供商无论如何都不支持非短暂的
\u DH_RSA\u
\u DH_DSA\u
密码套件。)

看看这个:你所知道的是假的。短暂的Diffie-Hellman密码套件可以验证服务器,防止MITM攻击,同时提供前向保密性。短暂的Diffie-Hellman密码套件可以验证服务器,防止MITM攻击,同时提供前向保密。