

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 加密详细信息
<a name="cryptographic-details"></a>

AWS Payment Cryptography 提供了一个用于生成和管理支付交易的加密密钥的 Web 界面。 AWS Payment Cryptography 提供标准的密钥管理服务和支付交易加密以及可用于集中管理和审计的工具。本文档详细描述了您可以在 AWS 支付密码学中使用的加密操作，以帮助您评估该服务提供的功能。

AWS [Payment Cryptography 包含多个接口（包括 RESTful API、通过 AWS CLI、AWS 软件开发工具包等 AWS 管理控制台），用于请求经过 [PCI PTS HSM](cryptographic-details-internalops.md) 验证的硬件安全模块的分布式队列的加密操作。](terminology.md#terms.hsm)

![\[AWS 支付密码学基本架构图\]](http://docs.aws.amazon.com/zh_cn/payment-cryptography/latest/userguide/images/cryptographic-details.basic_arch.png)


AWS Payment Cryptography 是一项分层服务，由面向网络的 AWS 支付密码学主机和一层组成。 HSMs这些分层主机的分组构成了 AWS 支付密码堆栈。对 AWS 支付加密的所有请求都必须通过传输层安全协议 (TLS) 提出，并在 AWS 支付加密主机上终止。服务主机仅允许使用提供[完美前向保密性](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-52r2.pdf)的密码套件的 TLS。该服务使用适用于所有其他 AWS API 操作的 IAM 相同凭证和策略机制对您的请求进行身份验证和授权。

AWS 支付密码学服务器通过私有非虚拟网络连接到底层 [HSM](terminology.md#terms.hsm)。服务组件和 [HSM](terminology.md#terms.hsm) 之间的连接使用双向 TLS (mTLS) 进行身份验证和加密。

**Topics**
+ [设计目标](cryptographic-details.designgoals.md)
+ [基本原理](cryptographic-details.foundations.md)
+ [内部操作](cryptographic-details-internalops.md)
+ [客户操作](cryptographic-details-customerops.md)

# 设计目标
<a name="cryptographic-details.designgoals"></a>

AWS 支付密码学旨在满足以下要求：
+ **值得信赖**：密钥的使用受您定义和管理的访问控制策略的保护。没有导出纯文本 AWS 支付密码密钥的机制。加密密钥的机密性至关重要。多名具有特定角色访问权限的基于法定人数的访问控制的 Amazon 员工需要对这些权限执行管理操作。 HSMs任何 Amazon 员工都无法访问 HSM 主（或主要）密钥或备份。主密钥无法与不 HSMs 属于 AWS 支付加密区域的主密钥同步。所有其他密钥都受到 HSM 主密钥的保护。因此，客户 AWS 付款加密密钥不能在客户账户内运行的 AWS 支付加密服务之外使用。
+ **低延迟和高吞吐量** — Paym AWS ent Cryptography 提供延迟和吞吐量级别的加密操作，适用于管理支付加密密钥和处理支付交易。
+ **持久性**：加密密钥的持久性设计为等同于 中服务最高的持久性。单个加密密钥可以与支付终端、EMV 芯片卡或其他已使用多年的安全加密设备 (SCD) 共享。
+ **独立的区域**：AWS 为需要在不同区域限制数据访问或需要遵守数据驻留要求的客户提供独立的区域。可以在 Amazon Web Services 区域内隔离密钥使用。
+ **随机数的安全来源** — 由于强大的密码学依赖于真正不可预测的随机数生成，因此 P AWS ayment Cryptography 提供了高质量且经过验证的随机数来源。 AWS 支付密码学的所有密钥生成均使用 PCI PTS HSM 列出的 HSM，在 PCI 模式下运行。
+ **审计** — P AWS ayment Cryptography 将加密密钥的使用和管理记录在 Amazon 提供的 CloudTrail 日志和服务日志中。 CloudWatch您可以使用 CloudTrail 日志来检查加密密钥的使用情况，包括与您共享密钥的账户对密钥的使用情况。 AWS 支付密码学由第三方评估机构根据适用的PCI、信用卡品牌和区域支付安全标准进行审计。AWS Artifact 上提供了证明和责任共担指南。
+ **Elastic** — AWS 支付密码学可根据您的需求进行横向扩展。Payment Cryptography 不是预测和预留 HSM 容量，而是按需提供 AWS 支付加密。 AWS Payment Cryptography 负责维护 HSM 的安全性和合规性，以提供足够的容量来满足客户的峰值需求。

# 基本原理
<a name="cryptographic-details.foundations"></a>

本章中的主题描述了 AWS 支付密码学的加密原语及其用途。它们还介绍了服务的基本元素。

**Topics**
+ [加密基元](#w2aac39c19b7)
+ [熵和随机数生成](#w2aac39c19b9)
+ [对称密钥操作](#w2aac39c19c11)
+ [非对称密钥操作](#w2aac39c19c13)
+ [密钥存储](#w2aac39c19c15)
+ [使用对称密钥导入密钥](#w2aac39c19c17)
+ [使用非对称密钥导入密钥](#w2aac39c19c19)
+ [密钥导出](#w2aac39c19c21)
+ [每笔交易派生唯一密钥 (DUKPT) 协议](#w2aac39c19c23)
+ [密钥层次结构](#w2aac39c19c25)

## 加密基元
<a name="w2aac39c19b7"></a>

AWS Payment Cryptography 使用可参数化的标准加密算法，因此应用程序可以实现其用例所需的算法。这组加密算法由 PCI、ANSI X9 和 ISO 标准定义。 EMVco所有加密均由在 PCI 模式下运行的 PCI PTS HSM 标准列出 HSMs 。

## 熵和随机数生成
<a name="w2aac39c19b9"></a>

 AWS 支付密码学密钥生成是在 AWS 支付密码 HSMs学上进行的。 HSMs 实现一个满足所有支持的密钥类型和参数的 PCI PTS HSM 要求的随机数生成器。

## 对称密钥操作
<a name="w2aac39c19c11"></a>

 支持 ANSI X9 TR 31、ANSI X9.24 和 PCI PIN 附录 C 中定义的对称密钥算法和密钥强度：
+ **哈希函数**- SHA2 和 SHA3 系列中输出大小大于 2551 的算法。与 PCI 之前的 PTS POI v3 终端向后兼容除外。
+ **加密和解密**：密钥大小大于或等于 128 位的 AES，或密钥大小大于或等于 112 位（2 个密钥或 3 个密钥）的 TDEA。
+ **消息身份验证码 (MACs)** 带有 AES 的 CMAC 或 GMAC，以及具有经批准的哈希函数且密钥大小大于或等于 128 的 HMAC。

 AWS 支付密码学使用 AES 256 作为 HSM 主密钥、数据保护密钥和 TLS 会话密钥。

 注意：列出的某些函数在内部用于支持标准协议和数据结构。有关特定操作支持的算法，请参阅 API 文档。

## 非对称密钥操作
<a name="w2aac39c19c13"></a>

 支持 ANSI X9 TR 31、ANSI X9.24 和 PCI PIN 附录 C 中定义的非对称密钥算法和密钥强度：
+ **批准的密钥机构计划** ——如NIST SP8 00-56A () 中所述。ECC/FCC2-based key agreement), NIST SP800-56B (IFC-based key agreement), and NIST SP800-38F (AES-based key encryption/wrapping

 AWS Payment Cryptography 主机仅允许使用 TLS 连接服务，其密码套件可提供[完美](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-52r2.pdf)的前向保密。

 注意：列出的某些函数在内部用于支持标准协议和数据结构。有关特定操作支持的算法，请参阅 API 文档。

## 密钥存储
<a name="w2aac39c19c15"></a>

 AWS 支付密码学密钥受 HSM AES 256 主密钥保护，并存储在加密数据库的 ANSI X9 TR 31 密钥块中。该数据库被复制到 AWS 支付密码服务器上的内存数据库。

 根据 PCI PIN 安全规范附录 C，AES 256 密钥的强度等于或强于：
+ 3 密钥 TDEA
+ RSA 15360 位
+ ECC 512 位
+ DSA、DH、和 MQV 15360/512

## 使用对称密钥导入密钥
<a name="w2aac39c19c17"></a>

AWS Payment Cryptography 支持导入带有对称密钥或公钥的密码和密钥块，其对称密钥加密密钥 (KEK) 的强度与受保护的密钥一样强或更强。

## 使用非对称密钥导入密钥
<a name="w2aac39c19c19"></a>

 AWS Payment Cryptography 支持导入带有对称密钥或公钥的密码和密钥块，该密钥由私钥加密密钥 (KEK) 保护，该密钥的强度与受保护的密钥一样强或更强。用于解密的公钥必须具有由客户信任的机构颁发的证书，以确保其真实性和完整性。

 P AWS ayment Cryptography 提供的公共 KEK 具有证书颁发机构 (CA) 的身份验证和完整性保护，经证实符合 PCI PIN 安全和 PCI P2PE 附录 A。

## 密钥导出
<a name="w2aac39c19c21"></a>

 密钥可以导出并使用相应的 KeyUsage 密钥进行保护，这些密钥的强度与要导出的密钥一样强或强。

## 每笔交易派生唯一密钥 (DUKPT) 协议
<a name="w2aac39c19c23"></a>

 AWS 支付密码学支持 TDEA 和 AES 基础派生密钥 (BDK)，如 ANSI X9.24-3 所述。

## 密钥层次结构
<a name="w2aac39c19c25"></a>

 Pay AWS ment Cryptography 密钥层次结构可确保密钥始终受到与其保护的密钥一样强或更强的密钥保护。

![\[AWS 支付密码学密钥层次结构图\]](http://docs.aws.amazon.com/zh_cn/payment-cryptography/latest/userguide/images/cryptographic-details.key_hierarchy.png)


 AWS 支付密码学密钥用于服务内的密钥保护：


| Key | 说明 | 
| --- | --- | 
| 区域主密钥 | 保护用于加密处理的虚拟 HSM 映像或配置文件。此密钥仅存在于 HSM 和安全备份中。 | 
| 个人资料主密钥 | 顶级客户密钥保护密钥，传统上称为客户密钥的本地主密钥 (LMK) 或主文件密钥 (MFK)。此密钥仅存在于 HSM 和安全备份中。配置文件根据支付用例安全标准的要求定义不同的 HSM 配置。 | 
|  AWS 支付密码学公钥加密密钥 (KEK) 密钥的信任根 | 受信任的根公钥和证书，用于验证和验证 Payment Cryptography 提供的用于使用 AWS 非对称密钥导入和导出密钥的公钥。 | 

客户密钥按用于保护其他密钥的密钥和保护支付相关数据的密钥进行分组。以下是两种类型的客户密钥示例：


| Key | 说明 | 
| --- | --- | 
| 客户提供的公共 KEK 密钥的可信根 | 您提供的公钥和证书作为信任根，用于验证和核实您为使用非对称密钥导入和导出而提供的公钥。 | 
| 密钥加密密钥 (KEK) | KEK 仅用于加密其他密钥，以便在外部密钥存储和 AWS 支付密码学、业务合作伙伴、支付网络或组织内的不同应用程序之间进行交换。 | 
| 每笔交易派生唯一密钥 (DUKPT) 基本派生密钥 (BDK) | BDKs 用于为每个支付终端创建唯一密钥，并将交易从多个终端转换为单个收单银行或收单机构的工作密钥。PCI Point-to-Point Encryption (P2PE) 要求的最佳实践是，不同的 BDKs 终端模型、密钥注入或初始化服务或其他分段使用不同的方法，以限制入侵 BDK 的影响。 | 
| 支付网络区域控制主密钥 (ZCMK) | ZCMK，也称为区域密钥或区域主密钥，由支付网络提供，用于建立初始工作密钥。 | 
| DUKPT 交易密钥 | 为 DUKPT 配置的支付终端会为终端和交易生成唯一的密钥。接收交易的 HSM 可以根据终端标识符和交易序列号确定密钥。 | 
| 卡数据准备密钥 | EMV 发卡机构主密钥、EMV 卡密钥和验证值以及卡片个性化数据文件保护密钥用于为单张卡片创建数据，供卡片个性化提供商使用。发卡银行或发卡机构也使用这些密钥和加密验证数据来验证卡数据，作为授权交易的一部分。 | 
| 卡数据准备密钥 | EMV 发卡机构主密钥、EMV 卡密钥和验证值以及卡片个性化数据文件保护密钥用于为单张卡片创建数据，供卡片个性化提供商使用。发卡银行或发卡机构也使用这些密钥和加密验证数据来验证卡数据，作为授权交易的一部分。 | 
| 支付网络工作密钥 | 这些密钥通常被称为发行方工作密钥或收单方工作密钥，用于对发送到支付网络或从支付网络接收的交易进行加密。这些密钥由网络频繁轮换，通常每天或每小时轮换。这些是用于 PIN/Debit 交易的 PIN 加密密钥 (PEK)。 | 
| 个人识别码 (PIN) 加密密钥 (PEK) | 创建或解密 PIN 块的应用程序使用 PEK 来防止存储或传输明文 PIN。 | 

# 内部操作
<a name="cryptographic-details-internalops"></a>

本主题介绍服务实现的内部要求，以保护全球分布式且可扩展的支付加密和密钥管理服务的客户密钥和加密操作。

**Topics**
+ [HSM 保护](#w2aac39c22b7)
+ [通用密钥管理](#w2aac39c22b9)
+ [客户密钥的管理](#w2aac39c22c11)
+ [通信安全](#w2aac39c22c13)
+ [日志记录和监控](#w2aac39c22c15)

## HSM 保护
<a name="w2aac39c22b7"></a>

### HSM 规格和生命周期
<a name="w2aac39c22b7b3"></a>

AWS 支付密码学使用大量市售商品。 HSMs HSMs 它们已通过FIPS 140-2 Level 3验证，还使用固件版本和PCI安全标准委员会[批准的PCI PTS设备清单上列出的符合PCI](https://listings.pcisecuritystandards.org/assessors_and_solutions/pin_transaction_devices) HSM v3标准的安全策略。PCI PTS HSM 标准包括对 HSM 硬件的制造、运输、部署、管理和销毁的附加要求，这些要求对于支付安全性和合规性非常重要，但 FIPS 140 并未解决。

第三方评估人员验证 HSM 制造商的型号、固件、配置、生命周期物理管理、变更控制、操作员访问控制、主密钥管理以及与 HSM 操作相关的所有 PCI PIN 和 P2PE 要求。 HSMs 

所有这些 HSMs 都在 PCI 模式下运行，并配置了 PCI PTS HSM 安全策略。仅启用支持 AWS 支付加密用例所需的功能。 AWS Payment Cryptography 不提供打印、显示或返回明文 PINs的功能。

### HSM 设备物理安全
<a name="w2aac39c22b7b5"></a>

只有 HSMs 在交付前由制造商通过 AWS 支付密码学证书颁发机构 (CA) 签署的设备密钥才能由该服务使用。 AWS 支付密码学是制造商 CA 的子 CA，是 HSM 制造商和设备证书的信任根源。制造商的 CA 已证明符合 PCI PIN 安全附录 A 和 PCI P2PE 附录 A。制造商验证所有带有 AWS 支付密码学 CA 签署的设备密钥的 HSM 均已运送到 AWS 的指定接收方。

根据 PCI PIN 安全性的要求，制造商通过与 HSM 发货不同的通信通道提供序列号列表。在将 HSM 安装到 AWS 数据中心的过程中的每个步骤都会检查这些序列号。最后， AWS 支付密码操作员将已安装的 HSM 列表与制造商的列表进行验证，然后再将序列号添加到允许接收 AWS 支付加密密钥的 HSM 列表中。

HSMs 始终处于安全存储或双重控制之下，其中包括：
+ 从制造商运送到 AWS 机架组装设施。
+ 在机架组装期间。
+ 从机架装配设施运送到数据中心。
+ 接收并安装到数据中心安全处理室。HSM 机架通过卡门禁锁、报警门传感器和摄像头实现双重控制。
+ 操作期间。
+ 在停用和销毁期间。

为每个 HSM 维护和监控完整的 chain-of-custody个人问责制。

### HSM 初始化
<a name="w2aac39c22b7b7"></a>

只有通过序列号、制造商安装的设备密钥和固件校验和验证其身份和完整性后，HSM 才会作为 AWS 支付密码群的一部分进行初始化。在验证 HSM 的真实性和完整性后，对其进行配置，包括启用 PCI 模式。然后，建立 AWS 支付密码区域主密钥和配置文件主密钥，HSM 可供该服务使用。

### HSM 服务和维修
<a name="w2aac39c22b7b9"></a>

HSM 具有无需违反设备加密边界的可维护组件。这些组件包括冷却风扇、电源和电池。如果 HSM 或 HSM 机架内的其他设备需要维修，则在机架打开的整个期间都将保持双重控制。

### HSM 停用
<a name="w2aac39c22b7c11"></a>

停用是由于 HSM end-of-life 的故障造成的。HSM 在从机架上移除之前会被逻辑归零，如果可以正常运行，则在 AWS 数据中心的安全处理室中销毁。在销毁之前，其永远不会退回制造商进行维修，也不会用于其他目的，也不会以其他方式从安全的加工室中移走。

### HSM 固件更新
<a name="w2aac39c22b7c13"></a>

如果更新与安全有关，或者确定客户可以从新版本中的功能中受益，则在需要时应用 HSM 固件更新，以与 PCI PTS HSM 和 FIPS 140-2（或 FIPS 140-3）列出的版本保持一致。 AWS 支付密码学 HSMs 运行 off-the-shelf固件，与 PCI PTS HSM 列出的版本相匹配。新的固件版本经过PCI或FIPS认证的固件版本的完整性验证，然后在向所有人推出之前测试其功能性。 HSMs

### 操作员访问权限
<a name="w2aac39c22b7c15"></a>

在极少数情况下，在正常操作期间从 HSM 收集的信息不足以识别问题或计划更改，操作员可以非控制台访问 HSM 进行故障排除。执行以下步骤：
+ 已制定并批准了故障排除活动，并安排了非控制台会话。
+ HSM 已从客户处理服务中删除。
+ 在双重控制下，主密钥被删除。
+ 允许操作员通过非控制台访问 HSM，以在双重控制下执行批准的故障排除活动。
  + 非控制台会话终止后，在 HSM 上执行初始配置过程，返回标准固件和配置，然后同步主密钥，再将 HSM 交还给服务客户。
  + 会话记录记录在变更跟踪中。
  + 从会话中获得的信息用于规划未来的更改。

对所有非控制台访问记录进行审查，以确定流程合规性以及 HSM 监控、 non-console-access管理流程或操作员培训可能发生的变化。

## 通用密钥管理
<a name="w2aac39c22b9"></a>

一个区域中的所有 HSM 都与区域主密钥同步。区域主密钥可以保护至少一个配置文件主密钥。配置文件主密钥可保护客户密钥。

所有主密钥均由 HSM 生成，并使用非对称技术通过对称密钥分配进行分发，符合 ANSI X9 TR 34 和 PCI PIN 附录 A。

### 生成
<a name="w2aac39c22b9b7"></a>

AES 256 位主密钥是使用 PCI PTS HSM 随机数生成器在为服务 HSM 实例集配置的 HSM 上生成的。

### 区域主密钥同步
<a name="w2aac39c22b9b9"></a>

HSM 区域主密钥由跨区域实例集的服务同步，机制由 ANSI X9 TR-34 定义，其中包括：
+ 使用密钥分配主机 (KDH) 和密钥接收设备 (KRD) 密钥和证书进行相互身份验证，以提供公钥的身份验证和完整性。
+ 证书由符合 PCI PIN 附录 A2 要求的证书颁发机构 (CA) 签名，但适用于保护 AES 256 位密钥的非对称算法和密钥强度除外。
+ 分布式对称密钥的识别和密钥保护与 ANSI X9 TR-34 和 PCI PIN 附录 A1 一致，但适用于保护 AES 256 位密钥的非对称算法和密钥优势除外。

区域主密钥是通过以下方式为 HSMs 其建立的，这些密钥已通过以下方式为区域进行身份验证和配置：
+ 主密钥是在该区域的 HSM 上生成的。该 HSM 被指定为密钥分配主机。
+ 该区域 HSMs 中配置的所有内容都会生成 KRD 身份验证令牌，其中包含 HSM 的公钥和不可重播的身份验证信息。
+ 在 KDH 验证 HSM 的身份和接收密钥的许可后，KRD 令牌将添加到 KDH 允许列表中。
+ KDH 为每个 HSM 生成一个可验证的主密钥令牌。令牌包含 KDH 身份验证信息和加密的主密钥，这些密钥只能在为其创建的 HSM 上加载。
+ 每个 HSM 都会收到为其构建的主密钥令牌。在验证 HSM 自己的身份验证信息和 KDH 身份验证信息后，主密钥由 KRD 私钥解密并加载到主密钥中。

如果必须将单个 HSM 与某个区域重新同步：
+ 它会经过重新验证并配备固件和配置。
+ 如果是该地区的新用户：
  + HSM 会生成 KRD 身份验证令牌。
  + KDH 将令牌添加到其允许列表中。
  + KDH 为 HSM 生成主密钥令牌。
  + HSM 加载主密钥。
  + HSM 可供该服务使用。

这可以保证：
+ 只有在一个区域内通过 AWS 支付加密处理验证的 HSM 才能接收该地区的主密钥。
+ 只有来自 AWS 支付密码学 HSM 的主密钥才能分发给队列中的 HSM。

### 区域主密钥轮换
<a name="w2aac39c22b9c11"></a>

区域主密钥将在加密期限到期时轮换，以防万一发生可疑的密钥泄露事件，或者在确定会影响密钥安全性的服务更改之后进行轮换。

与初始配置一样，将生成和分发新的区域主密钥。保存的配置文件主密钥必须转换为新的区域主密钥。

区域主密钥轮换不会影响客户处理。

### 配置文件主密钥同步
<a name="w2aac39c22b9c13"></a>

配置文件主密钥受区域主密钥保护。这会将配置文件限制在特定区域。

相应地配备了配置文件主密钥：
+ 配置文件主密钥是在已同步区域主密钥的 HSM 上生成的。
+ 配置文件主密钥与配置文件配置和其他上下文一起存储和加密。
+ 该区域中任何具有区域主密钥的 HSM 都将该配置文件用于客户加密功能。

### 配置文件主密钥轮换
<a name="w2aac39c22b9c15"></a>

配置文件主密钥将在加密期限到期、可疑密钥泄露后或在确定会影响密钥安全性的服务更改后进行轮换。

轮换步骤：
+ 与初始配置一样，将生成新的配置文件主密钥作为待处理的主密钥进行分发。
+ 后台流程将客户密钥材料从已建立的配置文件主密钥转换为待处理的主密钥。
+ 使用待处理密钥加密所有客户密钥后，待处理密钥将升级为配置文件主密钥。
+ 后台流程会删除受过期密钥保护的客户密钥材料。

配置文件主密钥轮换不会影响客户处理。

### 保护
<a name="w2aac39c22b9c17"></a>

密钥仅依赖于密钥层次结构进行保护。保护主密钥对于防止所有客户密钥丢失或泄露至关重要。

区域主密钥只能从备份中恢复到为服务进行身份验证和配置的 HSM。这些密钥只能存储为来自特定 HSM 的特定 KDH 的相互身份验证的加密主密钥令牌。

配置文件主密钥与按区域加密的配置文件配置和上下文信息一起存储。

客户密钥存储在密钥块中，由配置文件主密钥保护。

所有密钥都只存在于 HSM 中，或者由另一个具有同等或更强加密强度的密钥保护。

### 持久性
<a name="w2aac39c22b9c19"></a>

即使在通常会导致中断的极端情况下，也必须提供用于交易加密和业务功能的客户密钥。 AWS 支付密码学利用跨可用区域和区域的多级冗余模型。 AWS 如果客户要求支付加密操作的可用性和耐久性高于服务所能提供的范围，则应实施多区域架构。

HSM 身份验证和主密钥令牌已保存，如果必须重置 HSM，则可用于恢复主密钥或与新的主密钥同步。令牌已存档，仅在需要时在双重控制下使用。

### 操作员访问 HSM 主密钥
<a name="w2aac39c22b9c21"></a>

主密钥仅存在于由该服务管理的 HSM 中，并保存在安全的 AWS 设施中。主密钥不能从任何 HSM 导出，也不能同步到未经制造商初始化以用于服务的 HSM。AWS 操作员无法以任何形式获取可以加载到不由该服务管理的 HSM 的主密钥。

## 客户密钥的管理
<a name="w2aac39c22c11"></a>

在 AWS，客户信任是我们的首要任务。您可以完全控制您在 AWS 账户下导入或在服务中创建的密钥。您仍负责配置对密钥的访问权限。

AWS Payment Cryptography 是一家代表客户使用 HSMs 和管理密钥的服务提供商，类似于长期的支付服务提供商。该服务完全负责 HSM 的物理和逻辑安全。密钥管理责任由服务和客户共同承担，因为客户必须提供有关服务创建或导入的密钥的准确信息，服务使用这些信息来强制正确使用和管理密钥。AWS 数据隔离保护用于确保属于一个 AWS 账户的密钥泄露不会泄露属于另一个 AWS 账户的密钥。

 AWS Payment Cryptography 对服务管理的密钥的 HSM 物理合规性和密钥管理负全部责任。这需要拥有和管理HSM主密钥，并保护由 AWS 支付密码学管理的客户密钥。

### 客户密钥空间分离
<a name="w2aac39c22c11b9"></a>

AWS Payment Cryptography 对所有密钥的使用都强制执行密钥政策，包括将委托人限制为拥有密钥的账户，除非明确与其他账户共享密钥。

AWS 账户在客户或应用程序之间提供完全的环境隔离，类似于不同数据中心中的非云端实施。每个账户都提供隔离的访问控制、联网、计算资源、数据存储、用于数据保护和支付交易的加密密钥以及所有 AWS 资源。像 Organizations 和 Control Tower 这样的 AWS 服务允许企业管理单独的应用程序账户，类似于企业数据中心内的笼子或房间。

### 操作员访问客户密钥
<a name="w2aac39c22c11c11"></a>

该服务管理的客户密钥由分区主密钥保护存储，只能由拥有的客户账户或所有者专门配置为密钥共享的账户使用。AWS 运营商无法使用手动访问服务（由 AWS 手动操作员访问机制管理）来导出或使用客户密钥执行密钥管理或加密操作。

实施客户密钥管理和使用的服务代码受到 AWS PCI DSS 评估评估的 AWS 安全代码惯例的约束。

### 备份和恢复
<a name="w2aac39c22c11c13"></a>

服务内部存储的某个区域的密钥和密钥信息由备份到加密存档中 AWS。存档需要双重控制 AWS 才能恢复。

### 密钥块
<a name="w2aac39c22c11c15"></a>

所有密钥均以 ANSI X9.143 格式的密钥块存储和处理。

密钥可以从支持的密码或其他密钥块格式导入到服务中。 ImportKey同样，如果密钥可导出，也可以将其导出为其他密钥块格式或密钥导出配置文件支持的密码。

### 密钥用途
<a name="w2aac39c22c11c17"></a>

密钥的使用仅限于服务 KeyUsage 所配置的。如果密钥使用、使用模式或所请求的加密操作算法不当，该服务将使任何请求失败。

### 密钥交换关系
<a name="w2aac39c22c11c19"></a>

PCI PIN Security 和 PCI P2PE 要求共享加密密钥 PINs 或卡数据（包括用于共享这些密钥的密钥交换密钥 (KEK)）的组织不得与任何其他组织共享相同的密钥。最佳做法是，仅在两方之间共享对称密钥，用于单一目的，包括在同一个组织内共享。这可以最大限度地减少可疑密钥泄露的影响，从而强制更换受影响的密钥。

即使业务案例需要在超过 2 方之间共享密钥，也应将参与方数量保持在最低数量。

AWS Payment Cryptography 提供了密钥标签，可用于在这些要求范围内跟踪和强制使用密钥。

例如，不同密钥注入设施的 KEK 和 BDK 可以通过为与该服务提供商共享的所有密钥设置 “KIFPOSStation” = “” 来识别。另一个例子是将与支付网络共享的密钥标记为 “网络” = “PayCard”。使用标记，您可以创建访问控制并创建审计报告，以强制执行和演示您的密钥管理实践。

### 删除密钥
<a name="w2aac39c22c11c21"></a>

DeleteKey 将数据库中的密钥标记为在客户可配置的时间段后删除。在这段时间之后，密钥将被不可挽回地删除。这是一种防止意外或恶意删除密钥的安全机制。标记为删除的密钥不可用于任何操作，除 RestoreKey了。

删除的密钥将在删除后的服务备份中保留 7 天。在此期间，它们无法修复。

属于已关闭 Amazon Web Services 账户的密钥被标记为删除。如果在达到删除期限之前重新激活账户，则所有标记为删除的密钥都将被恢复，但会被禁用。您必须重新启用才能将其用于加密操作。

## 通信安全
<a name="w2aac39c22c13"></a>

### 外部
<a name="w2aac39c22c13b3"></a>

AWS Payment Cryptography API 端点符合 AWS 安全标准，包括 1.2 或以上的 TLS 和用于请求身份验证和完整性的签名版本 4。

传入的 TLS 连接在网络负载均衡器上终止，并通过内部 TLS 连接转发给 API 处理程序。

### Internal
<a name="w2aac39c22c13b5"></a>

服务组件之间以及服务组件与其他 Amazon Web Service 服务之间的内部通信由 TLS 使用强大的加密技术进行保护。

HSM 位于只能通过服务组件访问的专用非虚拟网络上。HSM 和服务组件之间的所有连接均通过 TLS 1.2 或更高版本的相互 TLS (mTLS) 进行保护。TLS 和 mTLS 的内部证书由 Amazon Certificate Manager 使用 AWS 私有证书颁发机构进行管理。内部 VPCs 和 HSM 网络受到监控，以防出现意外活动和配置更改。

## 日志记录和监控
<a name="w2aac39c22c15"></a>

内部服务日志包括：
+ CloudTrail 该服务发出的 AWS 服务调用的日志
+ CloudWatch 两个事件的日志都直接记录到 CloudWatch 日志或从 HSM 的事件中
+ 来自 HSM 和服务系统的日志文件
+ 日志档案

所有日志源都会监控和过滤敏感信息，包括有关密钥的信息。日志会经过系统性审查，以确保其中包含或不包含敏感客户信息。

对日志的访问仅限于完成工作角色所需的个人。

所有日志均按照 AWS 日志保留策略进行保留。

# 客户操作
<a name="cryptographic-details-customerops"></a>

 AWS 根据PCI标准，支付密码学对HSM的物理合规性负全部责任。该服务还提供安全的密钥存储，并确保密钥只能用于 PCI 标准允许且由您在创建或导入期间指定的用途。您负责配置密钥属性和访问权限，以利用服务的安全性和合规性功能。

**Topics**
+ [生成密钥](#w2aac39c25b7)
+ [导入密钥](#w2aac39c25b9)
+ [导出密钥](#w2aac39c25c11)
+ [删除 密钥](#w2aac39c25c13)
+ [轮换 密钥](#w2aac39c25c15)

## 生成密钥
<a name="w2aac39c25b7"></a>

创建密钥时，您可以设置服务用于强制执行密钥的合规使用的属性：
+ 算法和密钥长度 
+ 用法 
+ 可用性和过期 

用于基于属性的访问权限控制（ABAC）的标签用于限制与特定合作伙伴或应用程序一起使用的密钥，也应在创建过程中设置。请务必包括限制允许删除或更改标签的角色的政策。

您应确保在创建密钥之前设置了确定可以使用和管理密钥的角色的策略。

**注意**  
 CreateKey 命令上的 IAM 策略可用于强制执行和演示对密钥生成的双重控制。

## 导入密钥
<a name="w2aac39c25b9"></a>

导入密钥时，服务使用密钥块中的加密绑定信息来设置强制使用密钥的属性。设置基本密钥上下文的机制是使用通过源 HSM 创建、并受共享或非对称 [KEK](terminology.md#terms.kek) 保护的密钥块。这符合 PCI PIN 要求，并保留了源应用程序的用法、算法和密钥强度。

除了密钥块中的信息外，还必须在导入时建立重要的密钥属性、标签和访问控制策略。

 使用密码导入密钥不会传输源应用程序中的密钥属性。您必须使用此机制相应地设置属性。

 通常，密钥是使用明文组件进行交换的，由密钥保管人传输，然后加载仪式，在安全房间中实现双重控制。 AWS 支付密码学不直接支持这一点。API 将导出带有证书的公钥，该证书可由您自己的 HSM 导入，以导出可由服务导入的密钥块。允许使用您自己的 HSM 来加载明文组件。

您应该使用密钥检查值 (KCV) 来验证导入的密钥是否与源密钥匹配。

 ImportKey API 上的 IAM 策略可用于强制执行和演示对密钥导入的双重控制。

## 导出密钥
<a name="w2aac39c25c11"></a>

与合作伙伴或本地应用程序共享密钥可能需要导出密钥。使用密钥块进行导出可以使用加密的密钥材料维护基本密钥上下文。

密钥标签可用于限制向共享相同标签和值的 KEK 导出密钥。

 AWS 支付密码学不提供或显示明文密钥组件。这需要密钥保管人直接访问 PCI PTS HSM 或经过 ISO 13491 测试的安全加密设备 (SCD) 以进行显示或打印。您可以使用 SCD 建立非对称 KEK 或对称 KEK，以便在双重控制下进行明文密钥组件创建仪式。

应使用密钥检查值 (KCV) 来验证目标 HSM 导入的密钥是否与源密钥匹配。

## 删除 密钥
<a name="w2aac39c25c13"></a>

您可以使用删除密钥 API 安排在您配置的一段时间后删除密钥。在此之前，密钥是可以恢复的。一旦密钥被删除，就会从服务中永久移除。

 DeleteKey API 上的 IAM 策略可用于强制执行和演示对密钥删除的双重控制。

## 轮换 密钥
<a name="w2aac39c25c15"></a>

 可以使用密钥别名实现密钥轮换的效果，方法是创建或导入新密钥，然后修改密钥别名以引用新密钥。根据您的管理惯例，旧密钥将被删除或禁用。