

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Validación de la KEK
<a name="as2805.kekvalidation"></a>

![Ejemplo de diagrama de red de alto nivel para aplicaciones de PIN que utilizan criptografía AWS de pago](http://docs.aws.amazon.com/es_es/payment-cryptography/latest/userguide/images/as2805/kek_validation.png)


Cuando su servicio (nodo1) se conecte al nodo2, cada parte se asegurará de utilizar la misma KEK para las operaciones posteriores mediante un proceso denominado validación de KEK. 

**1. Pasos para validar la primera clave**

**1.1 Recibir KRs**  
Node2 generará un mensaje KRs y se lo enviará como parte del proceso de inicio de sesión. Pueden usar la criptografía AWS de pago para generar este valor u otra solución.

**1.2 Generar una respuesta de validación de KEK**  
El nodo generará una respuesta de validación de la KEK con entradas como la KEK (r) y las que KRs se proporcionan en el paso 1.  

**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 Retorno calculado KRr**  
Devuelve lo calculado KRr al nodo 2. Ese nodo lo comparará con el valor calculado en el paso 1.

**2. Pasos para validar la segunda clave**

**2.1 Generar y KRr KRs**  
Su nodo generará un valor aleatorio y una copia invertida (invertida) de este valor mediante criptografía de AWS pago. El servicio generará ambos valores envueltos en las KEK. Se conocen como KR (s) y 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 Enviar KRs al nodo 2**  
Envíelo al nodo KRs 2. Consérvela KRr para su posterior validación.

**2.3 El nodo 2 genera la respuesta de validación KEK**  
El nodo 2 usa la KEKr y KRs, la genera KRr y la envía de vuelta a su servicio.

**2.4 Valida la respuesta**  
Compare el valor KRr del paso 1 con el valor devuelto en el paso 3. Si coinciden, proceda.