首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将OpenSSL 1.0.2移植到ECOS后,错误的MAC

将OpenSSL 1.0.2移植到ECOS后,错误的MAC
EN

Stack Overflow用户
提问于 2015-06-14 18:25:20
回答 1查看 479关注 0票数 3

我们在运行ECOS OS的嵌入式系统上运行一个OpenSSL。我们现在正在将OpenSSL升级到1.0.2版本。我们已经成功地移植并编译了OpenSSL库。但是当我们尝试使用SSL (通过https)连接我们的设备时,握手失败并总是出现错误记录mac警报。我们已经启用了OpenSSL调试选项,但无法确定其失败的原因。

有没有人把最新的OpenSSL代码移植到ECOS?我们是否需要为ECOS的最新OpenSSL代码使用任何特殊的编译标志?

作为参考,这里是ssl3_get_record的相关部分

代码语言:javascript
复制
mac = rr->data + rr->length;
i=s->method->ssl3_enc->mac(s,md,0 /* not send */);
if (i < 0 || CRYPTO_memcmp(md, mac, (size_t)mac_size) != 0)
    {
    al=SSL_AD_BAD_RECORD_MAC;
    SSLerr(SSL_F_SSL3_GET_RECORD,SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC);
    goto f_err;
    }
EN

回答 1

Stack Overflow用户

发布于 2015-06-19 17:08:17

调试后,我们发现随机库(RAND)对于ECOS是失败的。在OpenSSL中有很多地方可以检查random_bytes返回类型。由于此故障,预主密钥解密失败。并且传入的数据包没有被正确解密。因此,出现了坏的Mac记录错误。

我们还检查了我们的旧移植代码(0.9.6),兰德库也失败了,但我们没有返回检查random_bytes和pseudo_rand_bytes。作为一个修复,我们让RAND每次都返回成功,我们可以看到OpenSSL 1.0.2版本可以很好地建立SSL会话。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30828257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档