TLS decode error

问题:应用Openssl client 测试  基于MbedTLS 开发的TLS server 1.2 成功,而应用QtSslSocket client 1.2 and more测试连接时,TLS server报decode error。

原理:

RFCXXXX 指定的声明了标准的协议内容----SSL/TLS 默认使用此作为资料

MbedTLS使用的版本2.16,支持SSL3.0/TLS1.0/TLS1.1/TLS1.2默认配置下,作为服务端,支持的比较单纯, 兼容性上要做处理实际很少,(如果要做,要针对Client Hello的拓展来做)

OpenSSL最新上,依照这兼容性最广来做。

QtSsLSocket调用OpenSSL方上,使用openSSL库未必最新,使用兼容上未必处理完善。如Qt11 Qt12之间,调用函数库不一致,

对ClientHello 版本处理差异。Qt12上支持了TLS1.3,因此对TL1.2来说,实际收到的ClientHello,ClientKeyExchangFinish调用了X25519的校验。如服务器选定的是secpXXXr1Curve,将导致decode error

 协议上,声明clientHello提供选择,serverhello做出选择。但clientHello对选择supoort groups选项,做了自行选定key_share。serverKeyExchange:Cureve Name。

处理:

Away:服务器注重处理key_share------------------------e..MbedTLS disable MBEDTLS_ECP_DP_SECPXXXR1_ENABLED enable MBEDTLS_ECP_DP_CURVE25519_ENABLED

but error the ECP_DP_C define error:seems dont edit finished

Bway:客户端除去key_share(by setOnly TLS1.2 (max))-------------------------Qt5.14.2

Cway:客户端注重处理serverHello,对curvename再初始化自己的曲线---------OpenSSL(now:1.1.1.e)

 

解决方法:

MbedTLS配置时,最高只到TLS1.2,而QtSslsocket选定时,选择了TLS1.2 and more, 限定1.2。

Your Regards

Auch_one

2020/8/22 18:12:42

posted on 2020-08-26 18:15  xiubeizi  阅读(1063)  评论(0)    收藏  举报

导航