目前,客户端模式下的OpenSSL仅在服务器选择的DH参数的密钥长度小于768位(源代码中硬编码)时停止握手。
在我的客户端,如果服务器选择的DH参数的密钥长度小于2048位,我想停止握手。首选方法是通过API设置,例如OpenSSL公开的选项设置。
有没有办法使用公共API设置最小密钥长度?
答案 0 :(得分:1)
有没有办法使用公共API设置最小密钥长度?
是(或者我应该说,“我相信”)。使用您的Diffie-Hellman回调。回调设置为SSL_CTX_set_tmp_dh_callback和SSL_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。它执行密钥长度检查。