Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.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
Openssl 是否可以将受支持的“U组”扩展设置为;“ffdhe”;使用s_客户端时的组?_Openssl - Fatal编程技术网

Openssl 是否可以将受支持的“U组”扩展设置为;“ffdhe”;使用s_客户端时的组?

Openssl 是否可以将受支持的“U组”扩展设置为;“ffdhe”;使用s_客户端时的组?,openssl,Openssl,我需要验证服务器在使用一个DHE密钥交换密码套件时是否正确处理受支持的\u组扩展。OpenSSL的s_客户端有一个名为groups的选项,它可以很好地处理EC组,但是每当我试图从rfc7919中指定一个ffdhe组名时,我就会收到一个非常没有帮助的命令错误:“-groups ffdhe2048” 例如: >openssl.exe version OpenSSL 1.1.1g 21 Apr 2020 >openssl.exe s_client -host 127.0.0.1 -po

我需要验证服务器在使用一个DHE密钥交换密码套件时是否正确处理受支持的\u组扩展。OpenSSL的
s_客户端
有一个名为
groups
的选项,它可以很好地处理EC组,但是每当我试图从
rfc7919
中指定一个ffdhe组名时,我就会收到一个非常没有帮助的
命令错误:“-groups ffdhe2048”

例如:

>openssl.exe version
OpenSSL 1.1.1g  21 Apr 2020

>openssl.exe s_client -host 127.0.0.1 -port 9012 -groups ffdhe2048 -cipher DHE-RSA-AES256-GCM-SHA384 -msg -debug
Error with command: "-groups ffdhe2048"

我已经尝试了所有我能想到的关于大小写和名字的变体(
FFDHE2048
dhe2048
ffdh2048
,等等)。但是在源代码中,它非常清楚
ffdhe2048
。遗憾的是,对于
dhparam
来说没有
-list_曲线
,就像对于
ecparam
一样。首先要注意的是,在受支持的_组扩展中发送ffdhe组只与OpenSSL 1.1.1中的TLSv1.3连接相关。如果您使用的是TLSv1.2或更低版本,则会忽略任何ffdhe组。我之所以提到这一点,是因为您在上面的命令行中明确请求了TLSv1.2 ciphersuite
DHE-RSA-AES256-GCM-SHA384
。如果TLSv1.3最终被协商,这也将被忽略,所以这很好(但可能不是您想要的结果)


不幸的是,OpenSSL 1.1.1不支持TLSv1.3中的ffdhe组。OpenSSL 3.0(在撰写本文时,目前正在进行alpha测试)确实支持它。因此,如果我在OpenSSL 3.0中尝试您的命令行,那么它可以工作。如果我为连接的服务器端设置OpenSSL 3.0 s_服务器实例,则会建立TLSv1.3连接,并将ffdhe2048用于密钥交换。

RFC 7919“传输层安全(TLS)的协商有限域Diffie-Hellman临时参数”在摘要部分包含以下文本:“本文档更新了TLS版本1.0(RFC 2246)、1.1(RFC 4346)和1.2(RFC 5246)。。。“我认为EC和DH都适用于所有版本的TLS。默认情况下,OpenSSL可能不实现此功能,但这并不意味着受支持的_组仅为TLS v1.3扩展。至少不是根据RFC。你是对的!谢谢你指出这一点。我已经相应地更正了我的答案,也就是说,我指的是OpenSSL中实现的内容。