小编dri*_*ler的帖子

不支持 TLS 椭圆曲线

我有一个嵌入式设备,使用 mBedTLS,尝试打开与https://www.cloudflare.com的连接,但失败:

#define MBEDTLS_ERR_PK_UNKNOWN_NAMED_CURVE -0x3A00  /**< Elliptic curve is unsupported (only NIST curves are supported). */
Run Code Online (Sandbox Code Playgroud)

由于硬件限制,设备仅支持以下曲线:

MBEDTLS_ECP_DP_SECP192R1
MBEDTLS_ECP_DP_SECP224R1
MBEDTLS_ECP_DP_SECP256R1
Run Code Online (Sandbox Code Playgroud)

并启用了以下 TLS 扩展:

Supported Elliptic Curves
Supported Point Formats
Run Code Online (Sandbox Code Playgroud)

查看 cloudflare.com 证书:https ://www.ssllabs.com/ssltest/analyze.html ? d = www.cloudflare.com & s = 104.17.210.9

我可以看到 cloudflare.com 支持 RSA 和 ECDSA 证书。

ECDSA 服务器证书使用 256 位 EC 密钥,但该证书的颁发者使用 384 位 EC 密钥。

这就是导致设备出现故障的原因。设备无法验证链中的 384 位证书。

那么,这是 cloudflare.com 的问题吗?服务器是否应该看到客户端不支持其证书链中的所有曲线并恢复为 RSA 证书?

即设备提供了它支持的曲线列表,但服务器返回一个证书链,链中包含一个不受支持的 EC。如果所有曲线都受支持,服务器是否会检查客户端提供的“支持的椭圆曲线”TLS 扩展,是否仅返回证书链?

任何见解表示赞赏。

ssl

3
推荐指数
1
解决办法
516
查看次数

标签 统计

ssl ×1