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

如何在OpenSSL客户端中拒绝弱DH参数?,openssl,diffie-hellman,Openssl,Diffie Hellman,目前,只有当服务器选择的DH参数的密钥长度小于768位(源代码中硬编码)时,客户端模式下的OpenSSL才会停止握手 在我的客户端中,如果服务器选择的DH参数的keylength小于2048位,我希望停止握手。首选的方法是通过API进行设置,例如OpenSSL公开的选项设置 有没有办法使用公共API设置最小密钥长度 有没有办法使用公共API设置最小密钥长度 是的(或者我应该说,“我相信是的”)。使用Diffie-Hellman回调。回调设置为and 通常在服务器上使用Diffie-Hellman

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

在我的客户端中,如果服务器选择的DH参数的keylength小于2048位,我希望停止握手。首选的方法是通过API进行设置,例如OpenSSL公开的选项设置

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

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

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

通常在服务器上使用Diffie-Hellman回调来生成其密钥。但根据OpenSSL的手册页,它“…在
tmp\u DH\u回调
需要DH参数时使用”


有关在服务器上下文中使用回调的示例(应该类似于在客户端中使用回调),请参阅。它执行密钥长度检查。

我已经在服务器模式下使用了这些函数,但在客户端模式下openssl会忽略它们。首先选择dh参数并与客户端协商的是服务器。@user3027786-好的,谢谢。在客户端生成用作公钥的随机值显然是在选择DH参数,因此某个地方有一个bug。(我不知道它是否应该工作,它是一个实现错误;或者它不应该工作,它是一个文档错误)。您是想用OpenSSL提交错误报告,还是想让我这样做?@user3027786-ACK。另请参见OpenSSL用户邮件列表中的。在提交内容之前,让我们先关注问题的实际位置。@user3027786-文档中存在一个bug;看到了,谢谢,我跟着。@Viktor Dukhovni有评论:这应该可以通过配置实现,但没有详细说明如何实现?DH和
SSL\u CTX\u set\u tmp\u DH\u回调的问题似乎是(1)功能请求;(2)一个文档bug.Dr。Henson在的bug报告中添加了一些示例代码。