

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# KEK 驗證
<a name="as2805.kekvalidation"></a>

![使用 AWS 付款密碼編譯之 PIN 應用程式的高階網路圖表範例](http://docs.aws.amazon.com/zh_tw/payment-cryptography/latest/userguide/images/as2805/kek_validation.png)


當您的服務 (node1) 連線到 node2 時，每一端都會確保使用相同的 KEK 進行後續操作，並使用稱為 KEK 驗證的程序。

**1。驗證第一個金鑰的步驟**

**1.1 接收 KRs**  
Node2 KRs，並將其作為登入程序的一部分傳送給您。他們可以使用 AWS 付款密碼編譯來產生此值或其他解決方案。

**1.2 產生 KEK 驗證回應**  
您的節點將產生 KEK 驗證回應，並將輸入做為步驟 1 中提供的 KEK(r) 和 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 傳回至 node2。該節點會將其與步驟 1 的計算值進行比較。

**2.驗證第二個金鑰的步驟**

**2.1 產生 KRr KRs**  
您的節點將使用 AWS 付款密碼編譯產生隨機值和此值的反轉 （反轉） 副本。服務會輸出這兩個由 KEK 包裝的值 (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傳送至 node2**  
將 KRs傳送至 node2。保留 KRr 以供稍後驗證。

**2.3 Node2 產生 KEK 驗證回應**  
Node2 使用 KEKr KRs、產生 KRr 並將其傳回給您的服務。

**2.4 驗證回應**  
比較步驟 1 的 KRr 和步驟 3 傳回的值。如果相符，請繼續。