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