首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当使用OpenSSL作为哈希算法时,MD5是否容易受到长度导出攻击?

当使用OpenSSL作为哈希算法时,MD5是否容易受到长度导出攻击?
EN

Cryptography用户
提问于 2019-04-17 23:46:19
回答 1查看 148关注 0票数 0

假设已知特定有效负载的有效散列,这样的一些C代码会容易受到长度扩展攻击吗?

代码语言:javascript
复制
#include <openssl/hmac.h>
...
unsigned char *calculated_hash = HMAC(EVP_md5(), &key,sizeof(key) - 1, payload, payload_len, NULL, NULL);
...
    if(memcmp(calculated_hash, received_hash, 16) == 0){
        dprintf(client_fd, "Payload Valid\n");
        exit(0);
    } else {
        dprintf(client_fd, "Payload Invalid\n");
        exit(1);
    }
EN

回答 1

Cryptography用户

回答已采纳

发布于 2019-04-17 23:59:18

HMAC-MD5不容易受到延长长度的攻击。

如果这是您的代码计算的内容,那么您的代码就不会受到长度扩展攻击的攻击。尽管如此:

  1. 长度扩展攻击是协议的一部分,而不是协议的实现。不管您是使用OpenSSL还是其他什么方式来实现相同的协议,都不重要。您应该对您的协议有一个简明的描述,并生成测试向量,例如使用Python或Go,以确认您的C代码正在计算您打算在协议中进行的加密。您还应该在设计文档中清楚地说明您的协议完成了什么,而不引用它使用的加密技术;以及在设计文档的另一部分中清楚地说明您的协议的安全目标是什么。
  2. 您的代码还有另一个问题:它有一个侧通道泄漏,可以被利用来伪造消息,因为您正在将机密与memcmp进行比较。在OpenSSL中,您应该使用CRYPTO_memcmp
票数 1
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/68855

复制
相关文章

相似问题

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