首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Hmac是安全的是什么意思?

Hmac是安全的是什么意思?
EN

Security用户
提问于 2016-09-09 09:04:18
回答 2查看 1.7K关注 0票数 3

我不想对弱哈希函数(如MD5或SHA-1 )进行一般的碰撞攻击。我想知道基于弱哈希函数的HMAC的安全性

如果有键k,则消息m

代码语言:javascript
运行
复制
Hmac(k,m) = hash(k`xor opad) || hash( (k` xor ipad) || m ) )

第一个问题,Hmac是安全的是什么意思?

  1. 攻击者无法在不知道密钥的情况下生成给定消息m的有效Hmac。
  2. 攻击者无法找到满足Hmac(k',m') = Hmac(k,m) such k',m'的冲突
  3. 攻击者可以恢复密钥k
  4. 其他

还有第二个问题。

我在读关于纸质文字记录碰撞的文章

文本冲突攻击: TLS、IKE和SSH

中的破坏身份验证

本文介绍了文本碰撞攻击者对m1m2的认识。并能找到满足hash(m1 || m2' ) == hash(m1' || m2 ) such m1' and m2'的碰撞

如果对手在弱哈希函数中使用这种记录冲突攻击,那么他还能找到满足Hmac(k',m') = Hmac(k,m) such k',m'的冲突吗??

EN

回答 2

Security用户

回答已采纳

发布于 2016-09-09 12:16:39

有一些研究严格地定义和证明了HMAC是如何安全的:

HMAC是一种消息认证机制。这意味着,如果攻击者更改了消息,就可以检测到它,因为HMAC不再匹配。这基本上意味着没有消息m',所以HMAC(k, m') == HMAC(k, m)。请注意,这里的k是相同的。如果攻击者发现与另一个密钥发生冲突,从而使HMAC(k', m') == HMAC(k, m)无法用于欺骗消息。

票数 1
EN

Security用户

发布于 2016-09-09 18:06:19

密码学家对MAC安全有一个普遍接受的定义:在自适应选择消息攻击下,对生存伪造的抵抗。大多数密码学教科书都涵盖了这一定义--例如,应用密码学手册就是一个很好的来源。HAC可在线使用,因此您可能需要浏览第九章。它在算法方面有点过时,但定义仍然适用。

但是要粗略地扩展这一点,MACs的安全目标是这样的。假设:

  1. 攻击者不知道防御者的秘密钥匙;
  2. 攻击者可以使防御者计算他们选择的消息的标记;
  3. 攻击者可以使用早期查询的结果来细化后续查询。

如果有效的攻击者能够为他们没有作为#2的一部分查询的消息伪造任何有效的(消息、标记)对,那么MAC就会崩溃。(请注意,这个定义的适当公式附带了一些数学,量化了攻击者在攻击中付出的努力,以及成功的概率是不可接受的。)

如果密钥是秘密的,则此定义意味着您列出的安全目标(更多细节请参见HAC ):

  1. 攻击者无法在不知道密钥的情况下生成给定消息m的有效Hmac。
  2. 攻击者无法发现满足Hmac(k',m') = Hmac(k,m)这样的k',m‘的碰撞。
  3. 攻击者无法恢复密钥k

HMAC旨在满足至少MAC安全,但也有证据表明,HMAC支持另一个更强的目标,称为PRF安全("PRF“= 伪随机函数),它说,一个高效的攻击者无法区分的功能,除了随机选择的函数相同的领域和范围。

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

https://security.stackexchange.com/questions/136331

复制
相关文章

相似问题

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