使用 s_client 时是否可以将 SUPPORTED_GROUPS 扩展设置为 "ffdhe" 组之一?
Is it possible to set the SUPPORTED_GROUPS extension to one of the "ffdhe" groups when using s_client?
我需要验证服务器在使用 DHE 密钥交换密码套件之一时是否正确处理 SUPPORTED_GROUPS 扩展。 OpenSSL 的 s_client
有一个名为 groups
的选项,它可以很好地与 EC 组一起工作,但是每当我尝试从 rfc7919
.
例如:
>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_curves
,就像 ecparam
.
首先要注意的是,在 supported_groups 扩展中发送 ffdhe 组仅与 OpenSSL 1.1.1 中的 TLSv1.3 连接相关。如果您使用的是 TLSv1.2 或更低版本,则会忽略任何 ffdhe 组。我提到这一点是因为您在上面的命令行中明确请求了 TLSv1.2 密码套件 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_server 实例,则会建立 TLSv1.3 连接并使用 ffdhe2048 进行密钥交换。
我需要验证服务器在使用 DHE 密钥交换密码套件之一时是否正确处理 SUPPORTED_GROUPS 扩展。 OpenSSL 的 s_client
有一个名为 groups
的选项,它可以很好地与 EC 组一起工作,但是每当我尝试从 rfc7919
.
例如:
>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_curves
,就像 ecparam
.
首先要注意的是,在 supported_groups 扩展中发送 ffdhe 组仅与 OpenSSL 1.1.1 中的 TLSv1.3 连接相关。如果您使用的是 TLSv1.2 或更低版本,则会忽略任何 ffdhe 组。我提到这一点是因为您在上面的命令行中明确请求了 TLSv1.2 密码套件 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_server 实例,则会建立 TLSv1.3 连接并使用 ffdhe2048 进行密钥交换。