MAC 签名

MAC 签名是用于验证数据完整性和真实性的加密输出。借助 MAC 签名算法,您可以执行两种不同的操作:

  • 签名操作,使用签名密钥对原始数据生成 MAC 签名。

  • 验证操作,根据提供的签名密钥和要验证的 MAC 标记来验证消息的真实性。

MAC 签名有两个主要用途:

  • 验证签名数据的完整性。
  • 验证消息的真实性。

虽然 MAC 签名的用途类似于数字签名,但 MAC 签名依赖于对称加密。MAC 标记使用相同的密钥生成和验证。消息的发送者和接收者必须具有相同的密钥才能使用 MAC 签名。

MAC 签名的使用场景示例

由于其高效性,密钥散列消息认证码 (HMAC) 等 MAC 算法是出色的文件传输数据完整性检查机制。哈希函数可以接受任意长度的消息,并将其转换为固定长度的摘要,从而最大限度地提高带宽利用率。

MAC 签名工作流

下文介绍了创建和验证签名的流程。此工作流中的两个参与者包括数据签名者和数据接收者。

  1. 签名者和接收者同意使用特定的共享 MAC 密钥。

    双方都可以使用此密钥创建或验证 MAC 签名。

  2. 签名者对数据执行签名操作以计算 MAC 标记。

  3. 签名者向数据接收者提供数据和 MAC 标记。

  4. 接收者使用共享的 MAC 密钥来验证 MAC 签名。如果验证不成功,则数据已被更改。

签名算法

Cloud Key Management Service 仅支持使用密钥散列消息认证码 (HMAC) 算法进行 MAC 签名。HMAC 算法使用加密哈希函数(如 SHA-2 或 SHA-3)来计算 MAC 标记。HMAC 函数的强度取决于哈希函数的强度、哈希输出的大小和密钥的大小。如需详细了解 HMAC 签名算法,请参阅 HMAC 签名算法

限制

使用 Cloud KMS 创建或验证 MAC 签名时,需要遵循以下限制:

  • 使用 Cloud HSM 密钥时,要签名的文件的大小上限为 16 KiB。

  • 对于所有其他密钥,要签名的文件的大小上限为 64 KiB。

后续步骤