消息认证



在上一章中,我们讨论了数据完整性威胁以及使用哈希技术来检测数据是否发生了任何修改攻击。

数据存在的另一种威胁是缺乏消息认证。在这种威胁中,用户不确定消息的发起者。可以使用与加密情况下使用的密钥相同的秘密密钥的密码技术来提供消息认证。

消息认证码 (MAC)

MAC 算法是一种对称密钥密码技术,用于提供消息认证。为了建立 MAC 过程,发送方和接收方共享一个对称密钥 K。

本质上,MAC 是对发送的消息生成的加密校验和,它与消息一起发送以确保消息认证。

使用 MAC 进行身份验证的过程如下图所示:

MAC

现在让我们详细了解整个过程:

  • 发送方使用某种公开的 MAC 算法,输入消息和秘密密钥 K,并生成 MAC 值。

  • 与哈希类似,MAC 函数也将任意长的输入压缩成固定长度的输出。哈希和 MAC 的主要区别在于 MAC 在压缩过程中使用秘密密钥。

  • 发送方将消息和 MAC 一起转发。在这里,我们假设消息以明文发送,因为我们关注的是提供消息来源身份验证,而不是机密性。如果需要机密性,则需要对消息进行加密。

  • 收到消息和 MAC 后,接收方将接收到的消息和共享密钥 K 输入 MAC 算法,并重新计算 MAC 值。

  • 接收方现在检查新计算的 MAC 与从发送方收到的 MAC 是否相等。如果匹配,则接收方接受消息并确保消息是由预期的发送方发送的。

  • 如果计算出的 MAC 与发送方发送的 MAC 不匹配,接收方无法确定是消息被更改了还是来源被伪造了。底线是,接收方安全地假设该消息不是真实的。

MAC 的局限性

MAC 主要有两个局限性,两者都是由于其对称操作的性质:

  • 共享密钥的建立。

    • 它可以在拥有共享密钥的预先确定的合法用户之间提供消息认证。

    • 这需要在使用 MAC 之前建立共享密钥。

  • 无法提供不可否认性

    • 不可否认性是指确保消息发起人无法否认任何先前发送的消息、承诺或行为。

    • MAC 技术不提供不可否认性服务。如果发送方和接收方就消息来源发生争议,MAC 无法证明消息确实是发送方发送的。

    • 虽然第三方无法计算 MAC,但发送方仍可能否认发送了消息,并声称接收方伪造了它,因为不可能确定是哪一方计算了 MAC。

这两种局限性都可以通过使用下一节中讨论的基于公钥的数字签名来克服。

广告