使用s_client时是否可以将SUPPORTED_GROUPS扩展名设置为“ ffdhe”组之一?

问题描述

使用DHE密钥交换密码套件之一时,我需要验证服务器是否正确处理了SUPPORTED_GROUPS扩展。 OpenSSL的s_client有一个名为groups的选项,它可以与EC组配合使用,但是每当我尝试从{{ 1}}。

例如:

Error with command: "-groups ffdhe2048"

我已经尝试过所有可以想到的关于大小写和名称的变体(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-list_curves那样。

解决方法

首先要注意的是,在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用于密钥交换。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...