Gerar MAC - AWS Criptografia de pagamento

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á.

Gerar MAC

A API Generate MAC é usada para autenticar dados relacionados ao cartão, como rastrear dados de uma tarja magnética do cartão, usando chaves criptográficas conhecidas para gerar um MAC (Código de Autenticação de Mensagens) para validação de dados entre as partes emissoras e receptoras. Os dados usados para gerar MACs incluem dados de mensagens, chaves secretas de criptografia MAC e algoritmo MAC para gerar um valor MAC exclusivo para transmissão. A parte receptora do MAC usará os mesmos dados da mensagem MAC, chave de criptografia MAC e algoritmo para reproduzir outro valor MAC para comparação e autenticação de dados. Se qualquer caractere da mensagem for alterado ou a chave MAC usada para verificação não for idêntica, o valor MAC resultante será diferente. A API é compatível com o Algoritmo 1 do ISO 9797-1 e o Algoritmo 3 do ISO 9797-1 MAC (usando uma chave MAC estática e uma chave DUKPT derivada), chaves de criptografia HMAC e EMV MAC para essa operação.

O valor de entrada para message-data devem ser dados hexBinary.

Para obter mais informações sobre todas as opções dessa API, consulte GenerateMacVerifyMace.

O parâmetro opcional mac-length permite que você trunque o valor de saída (embora isso também possa ser feito dentro do seu código). Um comprimento de 8 se refere a 8 bytes ou 16 caracteres hexadecimais.

As chaves MAC podem ser criadas com criptografia AWS de pagamento por chamada CreateKeyou importadas por chamada ImportKey.

nota

Os algoritmos CMAC e HMAC não exigem preenchimento. Todos os outros exigem que os dados sejam preenchidos ao tamanho do bloco do algoritmo, que é múltiplo de 8 bytes (16 caracteres hexadecimais) para TDES e 16 bytes (32 caracteres hexadecimais) para AES.

Gerar HMAC

Neste exemplo, geraremos um HMAC (Código de autenticação de mensagens baseado em hash) para autenticação de dados do cartão usando o algoritmo HMAC HMAC_SHA256 e a chave de criptografia HMAC. A chave deve estar KeyUsage configurada como TR31_M7_HMAC_KEY e KeyModesOfUse paraGenerate. O comprimento do hash (por exemplo, 256) é definido quando a chave é criada e não pode ser modificada.

O parâmetro opcional mac-length reduzirá o MAC de saída, embora isso também possa ser executado fora do serviço. Esse valor está em bytes, portanto, um valor de 16 esperará uma string hexadecimal de comprimento 32.

exemplo
$ aws payment-cryptography-data generate-mac \ --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6 \ --message-data "3b313038383439303031303733393431353d32343038323236303030373030303f33" \ --generation-attributes Algorithm=HMAC
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6", "KeyCheckValue": "2976E7", "Mac": "ED87F26E961C6D0DDB78DA5038AA2BDDEA0DCE03E5B5E96BDDD494F4A7AA470C" }

Gere MAC usando o Algoritmo 3 do ISO 9797-1

Neste exemplo, geraremos um MAC usando o Algoritmo 3 do ISO 9797-1 (MAC de varejo) para autenticação de dados do cartão. A chave deve estar KeyUsage configurada como TR31_M3_ISO_9797_3_MAC_KEY e KeyModesOfUse paraGenerate.

exemplo
$ aws payment-cryptography-data generate-mac \ --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/kwapwa6qaifllw2h \ --message-data "3b313038383439303031303733393431353d32343038323236303030373030303f33" \ --generation-attributes="Algorithm=ISO9797_ALGORITHM3"
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/kwapwa6qaifllw2h", "KeyCheckValue": "2976EA", "Mac": "A8F7A73DAF87B6D0" }

Gere MAC usando CMAC

O CMAC é mais comumente usado quando as chaves são AES, mas também suporta TDES. Neste exemplo, geraremos um MAC usando o CMAC (ISO 9797-1 Algorithm 5) para autenticação de dados do cartão com uma chave AES. A chave deve estar KeyUsage configurada como TR31_M6_ISO_9797_5_CMAC_KEY e KeyModesOfUse paraGenerate.

exemplo
$ aws payment-cryptography-data generate-mac \ --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi \ --message-data "3b313038383439303031303733393431353d32343038323236303030373030303f33" \ --generation-attributes Algorithm="CMAC"
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi", "KeyCheckValue": "C1EB8F", "Mac": "1F8C36E63F91E4E93DF7842BF5E2E5F7" }

Gere MAC usando DUKPT CMAC

Neste exemplo, geraremos um MAC usando DUKPT (Derived Unique Key Per Transaction) com CMAC para autenticação de dados do cartão. A chave deve ter sido KeyUsage definida como verdadeira TR31_B0_BASE_DERIVATION_KEY e KeyModesOfUse DeriveKey definida como verdadeira. As chaves DUKPT derivam uma chave exclusiva para cada transação usando uma chave de derivação básica (BDK) e um número de série da chave (KSN).

exemplo
$ aws payment-cryptography-data generate-mac --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6 --message-data "3b313038383439303031303733393431353d32343038323236303030373030303f33" --generation-attributes="DukptCmac={KeySerialNumber="932A6E954ABB32DD00000001",Direction=BIDIRECTIONAL}"
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6", "KeyCheckValue": "C1EB8F" }