KEK 的验证 - AWS 支付密码学

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

KEK 的验证

使用 AWS 支付密码学的 PIN 应用程序的高级网络图示例

当您的服务(节点 1)连接到 node2 时,双方将使用名为 KEK 验证的过程确保在后续操作中使用相同的 KEK。

1。验证第一个密钥的步骤

1.1 接收 KRs

Node2 将生成一个 KRs 并将其作为登录过程的一部分发送给您。他们可能会使用 AWS 支付密码学来生成此值或其他解决方案。

1.2 生成 KEK 验证响应

您的节点将生成 KEK 验证响应,输入为 KEK (r),并在步骤 1 中 KRs 提供。

cat >> generate-kek-validation-response.json { "KekValidationType": { "KekValidationResponse": { "RandomKeySend": "9217DC67B8763BABCFDF3DADFCD0F84A" } }, "RandomKeySendVariantMask": "VARIANT_MASK_82", "KeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza" }
$ aws payment-cryptography-data generate-as2805-kek-validation --cli-input-json file://generate-kek-validation-response.json
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza", "KeyCheckValue": "0A3674", "RandomKeyReceive": "A4B7E249C40C98178C1B856DB7FB76EB", "RandomKeySend": "9217DC67B8763BABCFDF3DADFCD0F84A" }
1.3 已计算回报 KRr

将计算结果返回 KRr 到节点 2。该节点会将其与步骤 1 中的计算值进行比较。

2. 验证第二个密钥的步骤

2.1 生成 KRr 和 KRs

您的节点将使用 AWS 支付密码学生成一个随机值和该值的倒置(反向)副本。该服务将输出由 KEK 封装的这两个值。它们被称为 KR (s) 和 KR (r)。

cat >> generate-kek-validation-request.json { "KekValidationType": { "KekValidationRequest": { "DeriveKeyAlgorithm": "TDES_2KEY" } }, "RandomKeySendVariantMask": "VARIANT_MASK_82", "KeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/rhfm6tenpxapkmrv" }
$ aws payment-cryptography-data generate-as2805-kek-validation --cli-input-json file://generate-kek-validation-request.json
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/rhfm6tenpxapkmrv", "KeyCheckValue": "DC1081", "RandomKeyReceive": "A4B7E249C40C98178C1B856DB7FB76EB", "RandomKeySend": "9217DC67B8763BABCFDF3DADFCD0F84A" }
2.2 发送 KRs 到节点 2

将发送 KRs 到节点 2。保留以 KRr 备日后验证。

2.3 节点 2 生成 KEK 验证响应

Node2 使用 KEKr 和 KRs,生成并将其发送回您的服务。 KRr

2.4 验证响应

比较步骤 1 KRr 中的值和步骤 3 中返回的值。如果它们匹配,请继续。