什么是信息安全中的 HMAC?

阅读 350 收藏 0 点赞 0 评论 0

HMAC 代表 Keyed-Hashing for Message Authentication。它是通过对信息(待验证)和共享密钥运行加密散列函数(如 MD5、SHA1 和 SHA256)获得的消息验证码。HMAC 在 RFC 2104 中定义。

HMAC 与数字签名相同。它们都提供完整性和真实性。它们都需要加密密钥,并且都应用散列函数。主要区别在于数字签名需要非对称密钥,而 HMAC 需要对称密钥(无公钥)。

HMAC 可以与一些迭代的密码散列函数一起使用。MD5 和 SHA-1 是散列函数的实例。HMAC 还需要一个私钥来计算和验证消息认证值。

散列消息验证码可以同时检查消息的验证和与之相关的数据完整性。使用的密钥的大小决定了散列消息验证码的加密持久性。

散列消息身份验证代码可以利用迭代加密散列函数,包括 SHA-1 和 MD-5 以及密钥。散列消息身份验证代码支持服务器和客户端的公钥和私钥。虽然公钥是已知的,但私钥只有确定的客户端和服务器才知道。

整个过程始于客户端根据请求的信息制作唯一的散列消息身份验证代码,并将请求的数据与私钥一起散列。

这作为请求的一个元素发送到服务器,这反过来又将两个散列消息身份验证代码相关联,如果发现相同,则使客户端能够可靠并实现请求。整个过程也称为秘密握手。

HMAC 的主要目标如下 -

  • 它可以使用可用的散列函数而无需更改。具体来说,散列函数在软件中实现得很好,并且代码是免费且广泛可用的。

  • 它可以保持散列函数的原始性能而不会出现明显的退化。

  • 它可以以简单的方式使用和管理密钥。

  • 基于对基本散列函数的合理假设,它可以对认证结构的持久性进行很好理解的密码分析。

  • 如果发现或需要更快或更安全的散列函数,它可以使基本散列函数的可替换性变得容易。

  • 散列消息验证码的主要目标是它受冲突影响较小,并且被认为是获取秘密密钥的蛮力。

  • 散列消息认证码支持方便的方法来检查信息是否被篡改以及用户的真实性。

评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号