在AWS区域之间自动复制您的卡支付密钥
重点总结
在这篇博客文章中,我深入探讨了一种跨区域复制CRR解决方案,专注于AWS支付加密AWS Payment Cryptography的强大功能,展示了如何安全地运输和存储您的卡支付密钥。在如今的数字时代,确保卡支付交易的安全与顺利进行至关重要。大型企业在进行卡支付时面临更高的挑战,它们需要确保线上服务的可用性和数据保护,以应对突发事件带来的风险。
引言
在当今的数字化环境中,在线交易已经成为日常生活中不可或缺的一部分,确保卡支付交易的顺利进行和安全性显得尤为重要。随着客户对无间断服务和数据保护的期望不断提高,组织面临着实施强大安全措施和灾难恢复策略的挑战,以应对即使是最严重的干扰。
对于处理卡支付的大企业来说,风险甚至更高。这些组织通常有严格的灾难恢复DR、恢复能力和可用性要求,9999的正常运行时间也可能不够。此外,由于这些企业在全球提供服务,它们需要确保其支付应用程序及相关的卡支付密钥能够在AWS区域之间安全复制和存储。
此外,我还探讨了一种事件驱动的无服务器架构和利用AWS PrivateLink安全地在AWS主干网络中移动密钥的方法,提供了额外的安全层和效率。总的来说,这篇博客文章提供了有关如何使用AWS服务在AWS区域之间进行安全和高可用的数据管理的宝贵见解。
卡支付密钥管理
在分析密钥管理时,您会注意到卡支付密钥今天同样是通过设备和第三方进行共享,就像40年前一样。
密钥典礼是指当各方希望安全交换密钥时举行的过程。它涉及负责运输和输入密钥组件这些组件印在纸上的的密钥保管人,通常需要一个网络断开的支付硬件安全模块HSM。这是为了分享初始密钥加密密钥的必要步骤。
让我们来看一下当前密钥典礼过程的主要问题:
问题描述安全房间要求需要一个网络隔离的HSM物流困难三名密钥保管人需在同一地点时间成本准备过程通常需要几周,这可能会影响项目发布操作成本包括维持安全房间和密钥保管人的出差费用密钥组件丢失或被盗密钥组件可能会丢失或被盗现在,让我们考虑用于加密敏感卡数据的工作密钥。工作密钥依赖于那些初始密钥来保护它们。如果初始密钥被泄露,其关联的工作密钥也被视为泄露。我还观察到一些公司仍在使用20世纪90年代的密钥管理标准,如ANSI X917 / FIPS 171来共享工作密钥。美国国家标准与技术局NIST在2005年撤回了FIPS 171标准。
分析当前的场景时,您会发现,由于密钥的共享方式,存在安全风险,组织有时会使用已被弃用的标准。
那么,让我们把卡支付安全带到21世纪吧!
解决方案概述
AWS支付加密是一项高可用、高可扩展的服务,目前在单一区域内运行。这意味着加密密钥及关联元数据在该区域内多 Availability Zones 之间复制,提供冗余并尽量减少由单一区域故障引起的停机风险。
尽管这种区域间的多可用性区域复制提供了比传统本地主机解决方案更高的可用性和容错能力,但一些具有严格业务连续性要求的客户希望支持跨区域复制。
通过跨多个区域,组织可以实现更高水平的恢复能力和灾难恢复能力,因为数据和服务可以在地理分散的位置之间实现复制和故障转移机制。
这个支付加密CRR解决方案可以满足卡支付交易高可用性、弹性和灾难恢复的关键需求。通过将加密密钥和相关元数据复制到多个区域,即便在区域性故障或灾难情况下,您也能保持对支付服务的无间断访问。
注意 在规划您的复制策略时,请检查可用的支付加密服务端点。
它的工作原理如下:
主区域 使用支付加密在主区域生成和管理加密密钥。复制 生成的加密密钥被安全复制到次区域,为故障转移提供冗余副本。故障转移 如果主区域发生区域性故障或灾难,支付操作可以无缝故障转移到次区域,使用复制的加密密钥继续处理交易而不间断。这种跨区域复制的方法增强了可用性和复原力,并促进了强大的灾难恢复策略,使组织能够在需要时迅速恢复在新区域的支付服务。
CRR架构组成
CRR架构的元素如下:
支付加密控制平面的事件被发送到AWS CloudTrail 轨迹。该CloudTrail轨迹被配置为将日志发送到Amazon CloudWatch Logs日志组。该日志组包含一个AWS Lambda 订阅过滤器,过滤来自支付加密的以下事件:创建密钥,删除密钥和导入密钥。当检测到其中一个事件时,启动一个 Lambda 函数以开始密钥复制过程。Lambda 函数以安全的方式执行密钥导出和导入过程,使用 TR31,这使用初始密钥安全生成和共享的 TR34。该初始密钥在启用解决方案时生成。主区域源与次区域的支付加密服务端点之间的通信通过Amazon Virtual Private Cloud (Amazon VPC) 对等连接进行,使用通过PrivateLink的VPC接口端点。元数据保存在Amazon DynamoDB表中。实施步骤
CRR解决方案部署需要几个步骤,理解其中的基础过程是至关重要的,特别是 TR34 (ANSI X9242)和 TR31 (ANSI X91432022),这些在确保跨区域安全复制卡支付密钥中起着至关重要的作用。
从GitHub克隆解决方案代码库。确认先决条件已就绪。定义 AWS Cloud Development Kit (AWS CDK) 栈将在其上部署的区域,即从该区域复制支付加密密钥的主区域。启用CRR。这一步涉及TR34过程,这是一个广泛采用的使用非对称技术安全分发对称密钥的标准。在这个解决方案中,TR34用于在主区域和次区域之间安全交换初始密钥加密密钥KEK。然后使用该KEK在复制过程中加密和安全传输卡支付密钥也称为工作密钥。TR34使用非对称密码算法如RSA以保持交换密钥的保密性、完整性和真实性。在主区域创建、导入和删除密钥,以检查密钥是否会被自动复制。这一步使用TR31过程,该标准用于安全交换加密密钥和相关数据。在这个解决方案中,TR31用于通过使用之前建立的KEK进行加密,安全复制卡支付密钥从主区域到次区域。TR31结合使用多种密码算法,如AES和HMAC,以保护在传输过程中复制的密钥的保密性和完整性。按需进行清理。关于密钥块的详细信息可以在相关的ANSI文档中找到。总结来说,TR31密钥块规范和TR34密钥块规范基于TR31密钥块规范的组成如下:
密钥块头 (KBH) 包含有关密钥和密钥块的属性信息。加密数据 这是正在交换的密钥TR34的初始密钥加密密钥和TR31的工作密钥。签名 (MAC) 计算于TBH和加密数据之上。图4展示了整个TR31和TR34密钥块的组成部分。这也被称为密钥绑定方法,保护密钥块的保密性和完整性。所有密钥块中,密钥、其长度和填充字段均被加密,以维持密钥块的保密性。整个密钥块字段的签名可验证其完整性和真实性。签名结果追加到块末尾。
遵循行业标准协议,如TR34和TR31,该解决方案确保跨区域的卡支付密钥复制是以安全的方式进行,从而确保保密性、完整性和真实性。值得一提的是,支付加密完全面向这些标准,提供符合PCI标准的安全密钥管理和复制解决方案。
如果您想更深入了解这些密钥管理过程,可以访问 AWS 文档页面上的导入和导出密钥。
先决条件
该支付加密CRR解决方案将通过 AWS CDK 部署。代码使用 Python 开发,并假设您的路径中包含 python3 可执行文件。还假设您的计算机的系统路径中存在AWS Command Line Interface (AWS CLI)和 AWS CDK 可执行文件。
下载并安装以下软件:
PythonjqAWS CLI AWS CDK建议使用最新的稳定版本。测试是在以下版本上进行的:
Python 3122MacOS版本jq 171MacOS版本AWS CLI awscli/21529 Python/3118 Darwin/2260 exe/x8664 prompt/offAWS CDK 21321构建 9df7dd3要设置访问 AWS 帐户,请参阅配置 AWS CLI。
注意 以下部分中的测试和命令在MacOS操作系统上运行。
部署主资源
该解决方案分为两个主要部分进行部署:
主区域资源部署CRR设置,在该设置中指定用于部署必要资源的次区域本节将涵盖第一部分:

图5展示了将在主区域部署的资源:
部件描述CloudTrail轨迹用于写入日志事件的轨迹CloudWatch日志组与CloudTrail轨迹相关联的日志组。创建Amazon Simple Storage Service (Amazon S3)存储该轨迹的日志事件。VPC、私有子网、安全组、Lambda函数和VPC端点资源用于处理AWS主干网络内部的私有通信。DynamoDB表和DynamoDB流用于管理密钥复制并协调次区域的解决方案部署。负责管理和协调解决方案部署和设置的Lambda函数可以在部署之前对一些参数进行配置。这些参数位于cdkjson文件中下载的GitHub解决方案的一部分,该文件位于解决方案基目录内部。
参数以contextENVIRONMENTSdev键的形式出现:
json{ context { ENVIRONMENTS { dev { originvpccidr 10200/16 originvpcname originvpc originsubnetsmask 22 originsubnetsprefixname originsubnetprivate } } }}
注意 您可以更改参数 originvpccidr、originvpcname和originsubnetsprefixname。
确保没有已存在的CIDR范围与文件中定义的CIDR范围相同的VPC。当前,解决方案设置为只在两个可用区中部署,因此建议将originsubnetmask的值保持不变。
要部署主资源:
从GitHub下载解决方案文件夹:bash git clone https//githubcom/awssamples/automaticallyreplicateyourcardpaymentkeysgit ampamp cd automaticallyreplicateyourcardpaymentkeys
在解决方案目录中创建一个Python虚拟环境:bash python3 m venv venv
启动Python虚拟环境:bash source venv/bin/activate
安装依赖项:bash pip install r requirementstxt
如果这是首次使用AWS CDK部署资源到所选的AWS区域,请运行:bash cdk bootstrap
使用AWS CDK部署解决方案:bash cdk deploy
预期输出:
plaintextDo you wish to deploy these changes (y/n) y apccrr deploying [1/1] apccrr creating CloudFormation changeset apccrr Deployment time 30788sStack ARNarnawscloudformationltawsregiongtltawsaccountgtstack/apccrr/ltstackidgt Total time 31606s
如果解决方案正确部署,名为 apccrr 的AWS CloudFormation堆栈将具有 CREATECOMPLETE 状态。您可以通过运行以下命令检查:bash aws cloudformation liststacks stackstatus CREATECOMPLETE
预期输出:
json{ StackSummaries [ { StackId arnawscloudformationuseast1111122223333stack/apccrr/5933bc00f5c111ee9bb212ef8d00991b StackName apccrr CreationTime
轻舟加速器下载
更轻松地跟踪 Amazon OpenSearch 服务配置更改,新增可见性改进 大数据博客
轻松追踪 Amazon OpenSearch 服务配置变更的新可见性改进由 Siddhant Gupta Deniz Ercelebi 和 Shashank Gupta 于 2024 年 2 月 6 ...