如何拒绝OpenSSL客户端中的弱DH参数?

时间:2015-10-05 11:04:23

标签: openssl diffie-hellman

目前,客户端模式下的OpenSSL仅在服务器选择的DH参数的密钥长度小于768位(源代码中硬编码)时停止握手。

在我的客户端,如果服务器选择的DH参数的密钥长度小于2048位,我想停止握手。首选方法是通过API设置,例如OpenSSL公开的选项设置。

有没有办法使用公共API设置最小密钥长度?

1 个答案:

答案 0 :(得分:1)

  

有没有办法使用公共API设置最小密钥长度?

是(或者我应该说,“我相信”)。使用您的Diffie-Hellman回调。回调设置为SSL_CTX_set_tmp_dh_callbackSSL_set_tmp_dh_callback

通常在服务器上使用Diffie-Hellman回调来生成其密钥。但是根据OpenSSL的SSL_CTX_set_tmp_dh_callback(3)手册页,它的“......在tmp_dh_callback ...”需要DH参数时使用。

有关在服务器上下文中使用回调的示例(应该类似于在客户端中使用它),请参阅'No Shared Cipher' Error with EDH-RSA-DES-CBC3-SHA。它执行密钥长度检查。