当我尝试将 SSL/TLS 客户端(OpenSSL 1.0.0d)连接到 SSL/TLS 服务器(OpenSSL 1.0.2)时,有时握手会失败,point is not on curve
并且decryption failed or bad record mac
服务器上会出现 、 和 错误。
我是一名电子工程师,刚接触 SSL/TLS 系统,从错误中我了解到证书椭圆曲线 (EC) 测试失败,但为什么握手会任意失败呢?
我该如何解决这个问题?
更新:
我用Wireshark检查了数据包。成功握手和失败握手的数据包数量和数据包大小相同。
客户端(openssl 1.0.0d)在uclinux上,服务器(openssl 1.0.2)在32位Windows上。
当我匹配服务器和客户端的平台和版本(即服务器使用 OpenSSL 1.0.0d 并在 uclinux 上运行)时,SSL 握手总是成功。
答案1
在我将 openssl 1.0.0d 升级到 1.0.2m 后,问题解决了(我测试了 30 次)!我认为问题与我的平台有关,再次感谢 Baal-zebub 和 Tom。我正在使用 Linux c6x(uclinux for c6000 TI dsp),我希望此报告对其他用户有用