

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

# KEK 的验证
<a name="as2805.kekvalidation"></a>

![\[使用 AWS 支付密码学的 PIN 应用程序的高级网络图示例\]](http://docs.aws.amazon.com/zh_cn/payment-cryptography/latest/userguide/images/as2805/kek_validation.png)


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

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

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

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

**Example**  

```
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)。  

**Example**  

```
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 中返回的值。如果它们匹配，请继续。