

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Introdução à criptografia AWS de pagamento
<a name="getting-started"></a>

Para começar a usar a criptografia de AWS pagamento, primeiro você deve criar chaves e depois usá-las em várias operações criptográficas. O tutorial abaixo fornece um caso de uso simples para gerar uma chave a ser usada para generating/verifying CVV2 valores. Para experimentar outros exemplos e explorar padrões de implantação na AWS, experimente o seguinte [workshop sobre criptografia de AWS pagamentos](https://catalog.us-east-1.prod.workshops.aws/workshops/b85843d4-a5e4-40fc-9a96-de0a99312a4b/en-US) ou explore nosso projeto de amostra disponível em [GitHub](https://github.com/aws-samples/samples-for-payment-cryptography-service) 

Este tutorial explica como criar uma chave única e realizar operações criptográficas usando a chave. Depois disso, você exclui a chave se não tiver uso para ela, o que completa o ciclo de vida da chave. 

**Atenção**  
 Os exemplos deste guia do usuário podem usar valores de amostra. *É altamente recomendável* não usar valores de amostra em um ambiente de produção, como números de série de chaves. 

**Topics**
+ [

## Pré-requisitos
](#getting-started-prerequisites)
+ [

## Etapa 1: criar uma chave
](#getting-started-step1)
+ [

## Etapa 2: gerar um CVV2 valor usando a chave
](#getting-started-step2)
+ [

## Etapa 3: verificar o valor gerado na etapa 2
](#getting-started-step3)
+ [

## Etapa 4: realizar um teste negativo
](#getting-started-step4)
+ [

## Etapa 5 (opcional): limpeza
](#getting-started-cleanup)

## Pré-requisitos
<a name="getting-started-prerequisites"></a>

Antes de começar, verifique se:
+ Você tem permissão para acessar o serviço. Para obter mais informações, consulte as [políticas do IAM](security_iam_service-with-iam.md).
+ Você tem o [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) instalado. Você também pode usar [AWS SDKs](https://aws.amazon.com/developer/tools/)ou acessar [AWS APIs](https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/Welcome.html)a Criptografia de AWS Pagamento, mas as instruções deste tutorial usam o. AWS CLI

## Etapa 1: criar uma chave
<a name="getting-started-step1"></a>

A primeira etapa é criar uma chave. Neste tutorial, você cria uma chave [CVK](terminology.md#terms.cvk) 3DES de comprimento duplo (2KEY TDES) para gerar e verificar valores CVV/. CVV2 

```
$ aws payment-cryptography create-key --exportable --key-attributes KeyAlgorithm=TDES_2KEY,KeyUsage=TR31_C0_CARD_VERIFICATION_KEY,KeyClass=SYMMETRIC_KEY,KeyModesOfUse='{Generate=true,Verify=true}'
```

A resposta reflete os parâmetros da solicitação, incluindo um ARN para chamadas subsequentes, bem como um valor de verificação chave (KCV).

```
{
    "Key": {
        "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi",
        "KeyAttributes": {
            "KeyUsage": "TR31_C0_CARD_VERIFICATION_KEY",
            "KeyClass": "SYMMETRIC_KEY",
            "KeyAlgorithm": "TDES_2KEY",
            "KeyModesOfUse": {
                "Encrypt": false,
                "Decrypt": false,
                "Wrap": false,
                "Unwrap": false,
                "Generate": true,
                "Sign": false,
                "Verify": true,
                "DeriveKey": false,
                "NoRestrictions": false
            }
        },
        "KeyCheckValue": "CADDA1",
        "KeyCheckValueAlgorithm": "ANSI_X9_24",
        "Enabled": true,
        "Exportable": true,
        "KeyState": "CREATE_COMPLETE",
        "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY",
        "CreateTimestamp": "2023-06-05T06:41:46.648000-07:00",
        "UsageStartTimestamp": "2023-06-05T06:41:46.626000-07:00"
    }
}
```

Anote o `KeyArn` que representa a chave, por exemplo, *arn:aws:payment-cryptography:us-east- 2:111122223333:key/tqv5yij6wtxx64pi*. Isso será necessário na próxima etapa.

## Etapa 2: gerar um CVV2 valor usando a chave
<a name="getting-started-step2"></a>

Nesta etapa, você gera uma CVV2 para uma determinada data `PAN` de validade usando a chave da etapa 1. 

```
$  aws payment-cryptography-data generate-card-validation-data \
    --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi \
    --primary-account-number=171234567890123 \
    --generation-attributes CardVerificationValue2={CardExpiryDate=0123}
```

```
{
    "CardDataGenerationKeyCheckValue": "CADDA1",
    "CardDataGenerationKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi",
    "CardDataType": "CARD_VERIFICATION_VALUE_2",
    "CardDataValue": "144"
}
```

Anote o `cardDataValue`; neste caso, o número 144, de 3 dígitos. Isso será necessário na próxima etapa.

## Etapa 3: verificar o valor gerado na etapa 2
<a name="getting-started-step3"></a>

Neste exemplo, você valida a CVV2 partir da etapa 2 usando a chave que você criou na etapa 1.

Execute o comando a seguir para validar o. CVV2

```
$  aws payment-cryptography-data  verify-card-validation-data \
    --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi \
    --primary-account-number=171234567890123 \
    --verification-attributes CardVerificationValue2={CardExpiryDate=0123} \
    --validation-data 144
```

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi",
    "KeyCheckValue": "CADDA1"
}
```

O serviço retorna uma resposta HTTP de 200 para indicar que validou o. CVV2

## Etapa 4: realizar um teste negativo
<a name="getting-started-step4"></a>

Nesta etapa, você cria um teste negativo em que o não CVV2 está correto e não é validado. Você tenta validar um erro CVV2 usando a chave criada na etapa 1. Essa é uma operação esperada, por exemplo, se o titular do cartão digitou o erro CVV2 na finalização da compra. 

```
$  aws payment-cryptography-data  verify-card-validation-data \
    --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi \
    --primary-account-number=171234567890123 \
    --verification-attributes CardVerificationValue2={CardExpiryDate=0123} \
    --validation-data 999
```

```
Card validation data verification failed.
```

O serviço retorna uma resposta HTTP de 400 com a mensagem “Falha na verificação dos dados de validação do cartão” e um motivo INVALID\$1VALIDATION\$1DATA.

## Etapa 5 (opcional): limpeza
<a name="getting-started-cleanup"></a>

Agora, você pode excluir a chave criada na etapa 1. Para minimizar as alterações irrecuperáveis, o período padrão da exclusão da chave é de sete dias. 

```
$ aws payment-cryptography delete-key \
    --key-identifier=arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi
```

```
{
    "Key": {
        "CreateTimestamp": "2022-10-27T08:27:51.795000-07:00",
        "DeletePendingTimestamp": "2022-11-03T13:37:12.114000-07:00",
        "Enabled": true,
        "Exportable": true,
        "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi",
        "KeyAttributes": {
            "KeyAlgorithm": "TDES_3KEY",
            "KeyClass": "SYMMETRIC_KEY",
            "KeyModesOfUse": {
                "Decrypt": true,
                "DeriveKey": false,
                "Encrypt": true,
                "Generate": false,
                "NoRestrictions": false,
                "Sign": false,
                "Unwrap": true,
                "Verify": false,
                "Wrap": true
            },
            "KeyUsage": "TR31_C0_CARD_VERIFICATION_KEY"
        },
        "KeyCheckValue": "CADDA1",
        "KeyCheckValueAlgorithm": "ANSI_X9_24",
        "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY",
        "KeyState": "DELETE_PENDING",
        "UsageStartTimestamp": "2022-10-27T08:27:51.753000-07:00"
    }
}
```

Observe os dois campos na saída. Por padrão, `deletePendingTimestamp` é definido para sete dias no futuro. O keyState está definido como `DELETE_PENDING`. Você pode cancelar esta exclusão a qualquer momento antes do horário programado ao chamar [https://docs.aws.amazon.com/cli/latest/reference/payment-cryptography/restore-key.html](https://docs.aws.amazon.com/cli/latest/reference/payment-cryptography/restore-key.html).