本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS KMS 中的 HMAC 密钥
HMAC 散列消息认证码 KMS 密钥是用于生成和验证 AWS KMS 内的 HMAC 的对称密钥。与每个 HMAC KMS 密钥关联的唯一密钥材料提供了 HMAC 算法所需的秘密密钥。您可以将 HMAC KMS 密钥与 GenerateMac
和 VerifyMac
操作结合使用以验证 AWS KMS 中的数据的完整性和真实性。
HMAC 算法结合了加密哈希函数和共享密钥。他们获取消息和密钥,例如 HMAC KMS 密钥中的密钥材料,然后返回一个唯一的固定大小的代码或标签。即使是消息的一个字符发生了变化,或者密钥不完全相同,生成的标签也会完全不同。通过要求提供密钥,HMAC 还提供了真实性;如果没有密钥,就不可能生成相同的 HMAC 标签。HMAC 有时被称为对称签名,因为它们像数字签名一样工作,但使用单个密钥进行签名和验证。
AWS KMS 使用的 HMAC KMS 密钥和 HMAC 算法符合 RFC 2104
您可使用 HMAC KMS 密钥确定消息的真实性,例如 JSON Web 令牌(JWT)、令牌化的信用卡信息或提交的密码。它们也可以用作安全的密钥派生函数(KDF),尤其是在需要确定性密钥的应用程序中。
HMAC KMS 密钥比应用软件的 HMAC 具有优势,因为密钥材料完全在 AWS KMS 内部生成和使用,受制于您对密钥设置的访问控制。
提示
最佳实践建议您限制包括 HMAC 在内的任何签名机制的有效时间。这阻止了行为者利用已签名信息反复地或是在消息被取代很久之后建立有效性的攻击。HMAC 标签不包含时间戳,但是您可以在令牌或消息中包含时间戳,以帮助您检测何时刷新 HMAC。
授权用户可以在 AWS 账户中创建、管理和使用 HMAC KMS 密钥。这包括启用和禁用密钥、设置和更改别名和标签,以及计划删除 HMAC KMS 密钥。您还可以使用密钥策略、IAM policy 和授权来控制对 HMAC KMS 密钥的访问。您可以在 AWS CloudTrail 日志的 AWS 中审核使用或管理 HMAC KMS 密钥的所有操作。您可创建具有导入密钥材料的 HMAC KMS 密钥。您也可以在多个 AWS 区域 中创建行为与相同 HMAC KMS 密钥的副本类似的 HMAC 多区域 KMS 密钥。
HMAC KMS 密钥只支持 GenerateMac
和 VerifyMac
加密操作。您不能使用 HMAC KMS 密钥加密数据或签名消息,也不能在 HMAC 操作中使用任何其他类型的 KMS 密钥。当您使用 GenerateMac
操作时,您可提供最多为 4096 个字节的消息、HMAC KMS 密钥以及与 HMAC 密钥规范兼容的 MAC 算法,GenerateMac
将计算 HMAC 标签。要验证 HMAC 标签,您必须提供 HMAC 标签以及相同的消息、HMAC KMS 密钥和 GenerateMac
用于计算原始 HMAC 标签的 MAC 算法。VerifyMac
操作计算 HMAC 标签并验证它与提供的 HMAC 标签是否相同。如果输入和计算的 HMAC 标签不相同,则验证失败。
HMAC KMS 密钥不支持自动密钥轮换,并且您无法在自定义密钥存储中创建 HMAC KMS 密钥。
如果您创建 KMS 密钥以加密 AWS 服务中的数据,请使用对称加密密钥。您不能使用 HMAC KMS 密钥。
区域
AWS KMS 支持的所有 AWS 区域 均支持 HMAC KMS 密钥。
了解更多
-
有关选择 KMS 密钥类型的帮助,请参阅 选择一种 KMS 密钥类型。
-
有关比较每种 KMS 密钥类型支持的 AWS KMS API 操作的表格,请参阅 密钥类型引用。
-
有关创建多区域 HMAC KMS 密钥的信息,请参阅 中的多区域密钥 AWS KMS。
-
要检查 AWS KMS 控制台为 HMAC KMS 密钥设置的默认密钥策略的差异,请参阅 允许密钥用户将 KMS 密钥与 AWS 服务一起使用。
-
有关 HMAC KMS 密钥定价的信息,请参阅 AWS Key Management Service 定价
。 -
有关删除 HMAC KMS 密钥的信息,请参阅 删除 AWS KMS keys。
-
要了解如何使用 HMAC 创建 JSON Web 令牌,请参阅 AWS 安全博客中的如何在 AWS KMS 内保护 HMAC
。 -
收听播客:在官方 AWS 播客上介绍 HMAC AWS Key Management Service
。
HMAC KMS 密钥的密钥规范
AWS KMS 支持不同长度的对称 HMAC 密钥。您选择的密钥规范可取决于安全、法规或业务要求。密钥的长度决定了GenerateMac和VerifyMac操作中使用的 MAC 算法。一般来说,较长的密钥更安全。使用适用于您的使用场景的最长密钥。
HMAC 密钥规范 | MAC 算法 |
---|---|
HMAC_224 | HMAC_SHA_224 |
HMAC_256 | HMAC_SHA_256 |
HMAC_384 | HMAC_SHA_384 |
HMAC_512 | HMAC_SHA_512 |