Gerar deslocamento de IBM3624 pino para um pino - 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 deslocamento de IBM3624 pino para um pino

O IBM 3624 PIN Offset às vezes também é chamado de método IBM. Esse método gera um natural/intermediate PIN usando os dados de validação (normalmente o PAN) e uma chave PIN (PVK). Os pinos naturais são efetivamente um valor derivado e, sendo determinísticos, é muito eficiente lidar com um emissor, pois nenhum dado de PIN precisa ser armazenado no nível do titular do cartão. A desvantagem mais óbvia é que esse esquema não considera os pinos selecionáveis ou aleatórios do titular do cartão. Para permitir esses tipos de pinos, um algoritmo de deslocamento foi adicionado ao esquema. O deslocamento representa a diferença entre o pino selecionado pelo usuário (ou aleatório) e a chave natural. O valor da compensação é armazenado pelo emissor ou processador do cartão. No momento da transação, o serviço AWS de criptografia de pagamento recalcula internamente o pino natural e aplica o deslocamento para encontrar o pino. Em seguida, ele compara isso com o valor fornecido pela autorização da transação.

Existem várias opções para IBM3624:

  • Ibm3624NaturalPinproduzirá o pino natural e um bloco de pinos criptografado

  • Ibm3624PinFromOffsetgerará um bloco de pinos criptografado com um deslocamento

  • Ibm3624RandomPingerará um pino aleatório e, em seguida, o deslocamento correspondente e o bloco de pinos criptografado.

  • Ibm3624PinOffsetgera o deslocamento do pino de acordo com um pino selecionado pelo usuário.

Internamente à criptografia de AWS pagamento, as seguintes etapas são executadas:

  • Preencha o plano fornecido com 16 caracteres. Se <16 for fornecido, pressione no lado direito usando o caractere de preenchimento fornecido.

  • Criptografa os dados de validação usando a chave de geração do PIN.

  • Decimalize os dados criptografados usando a tabela de decimalização. Isso mapeia dígitos hexidecimais para dígitos decimais, por exemplo, 'A' pode ser mapeado para 9 e 1 pode ser mapeado para 1.

  • Obtenha os primeiros 4 dígitos de uma representação hexidecimal da saída. Esse é o pino natural.

  • Se um pino selecionado pelo usuário ou aleatório foi gerado, o módulo subtrai o pino natural com o pino do cliente. O resultado é o deslocamento do pino.

Exemplo: gerar deslocamento de IBM3624 pino para um pino

Neste exemplo, geraremos um novo pino (aleatório) onde as saídas serão criptografadas PIN block (PinData. PinBlock) e um valor de IBM3624 deslocamento (pinData.offset). As entradas são PAN dados de validação (normalmente o pan), caractere de preenchimento, oPin Verification Key, o Pin Encryption Key e o. PIN block format

Esse comando requer que a chave de geração de pinos seja do tipo TR31_V1_IBM3624_PIN_VERIFICATION_KEY e a chave de criptografia seja do tipo TR31_P0_PIN_ENCRYPTION_KEY

exemplo

O exemplo a seguir mostra a geração de um pino aleatório e, em seguida, a saída do bloco de pinos criptografados e do valor de IBM3624 deslocamento usando Ibm3624. RandomPin

$ aws payment-cryptography-data generate-pin-data --generation-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/37y2tsl45p5zjbh2 --encryption-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt --primary-account-number 171234567890123 --pin-block-format ISO_FORMAT_0 --generation-attributes Ibm3624RandomPin="{DecimalizationTable=9876543210654321,PinValidationDataPadCharacter=D,PinValidationData=171234567890123}"
{ "GenerationKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/37y2tsl45p5zjbh2", "GenerationKeyCheckValue": "7F2363", "EncryptionKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt", "EncryptionKeyCheckValue": "7CC9E2", "EncryptedPinBlock": "AC17DC148BDA645E", "PinData": { "PinOffset": "5507" } }