Integração, Exemplos e Troubleshooting
Fluxo de Integração
Pré-requisitos
Antes de consumir os endpoints do módulo RSA, o integrador deve garantir os seguintes itens :
Credenciais Auth0: Client ID e Client Secret com escopo de acesso ao módulo RSA.
Identificador do Cliente: O seu
client_idnumérico.Chave Simétrica Cadastrada: A chave (DES/AES/HMAC) a ser exportada deve estar previamente cadastrada via módulo Key Manager .
Chave Pública da Contraparte: Recebida em formato DER ASN.1 (codificada em hexadecimal) .
Acordo de Key Ceremony: Definição mútua sobre os parâmetros de padding (
padModeId) e MGF (mgfHashFunction).
Fluxo Típico — Exportar uma ZMK para um Parceiro
Neste cenário, a instituição envia uma Zone Master Key (ZMK) para um parceiro adquirente de forma segura :
Receber a chave pública RSA do parceiro (formato DER ASN.1 em hexadecimal) através de um canal seguro.
Obter o token JWT de autenticação.
Invocar o endpoint
Importutilizando opublicKeyEncodingadequado à chave recebida. O retorno (retValue) será o Key Block Thales .Invocar o endpoint
Exportreferenciando okeyIdda ZMK, os parâmetros de padding acordados, e injetando o Key Block Thales no campopublicKey.Enviar a chave criptografada (o
retValuedoExport) para a contraparte através do canal acordado.
Aviso Arquitetural: O módulo PayShield RSA efetua apenas a EXPORTAÇÃO da chave. A operação inversa (decifragem da chave simétrica utilizando a chave privada RSA) ocorre no HSM da contraparte e está fora do escopo do Hop V4 .
Boas Práticas
OAEP por Padrão: Priorize sempre a utilização do
padModeId = 2(OAEP) combinado commgfHashFunction = 6(SHA-256). Utilize PKCS#1 v1.5 apenas em integrações legadas.Não armazene o Key Block em Cache: O retorno do
Import(Key Block) contém um MAC com timestamp implícito. Refaça a importação a cada nova operação; não armazene este bloco para uso futuro .Auditoria: Registe nos logs de segurança os parâmetros da operação (
client_id,keyId, padding, fingerprint SHA-256 da chave pública). NUNCA registe oretValuedo Export, pois é o próprio material criptográfico .Validação Prévia: Antes de chamar a API, valide o tamanho e a estrutura da chave pública recebida utilizando o OpenSSL.
Política de Retry: Efetue retry automático apenas em erros
500. Erros400(ex:01,02,04,83) indicam anomalias nos dados ou nos parâmetros e requerem correção antes de nova tentativa .
Exemplos Práticos
Preparação (Geração de Chaves via OpenSSL)
Para simular a contraparte em ambiente de testes :
Bash
Fluxo Completo via cURL
Bash
Snippet em Python
Python
Troubleshooting
HTTP 400 (retCode 04 ou 50) no Import
Chave pública em formato errado (ex: PKCS#1 vs X.509).
Confirmar com a contraparte o formato e ajustar o parâmetro publicKeyEncoding.
HTTP 400 (retCode 83) no Export
O publicKey enviado é a chave DER bruta.
Enviar estritamente o Key Block Thales obtido no retorno do Import.
HTTP 400 (retCode 07) no Export
O padModeId está incorreto.
Utilizar apenas os valores 1 ou 2.
HTTP 400 (retCode 85 ou 86) no Export
O mgfHashFunction foi enviado de forma inválida.
OAEP exige função MGF explícita. O modo PKCS#1 v1.5 exige a omissão deste campo.
HTTP 400 (retCode 10 ou 47) no Export
Erro de paridade na chave simétrica ou algoritmo não licenciado no HSM.
Recadastrar a chave no módulo Key Manager ou acionar o suporte técnico para questões de licenciamento.
HTTP 404 no Export
keyId não cadastrado.
Confirmar a sintaxe e a existência do alias no Key Manager.
HTTP 400 (retCode D3) no Export
Violação dos critérios PCI HSM V3.
O algoritmo ou o tamanho da chave não cumprem os requisitos mínimos de segurança parametrizados.
Contraparte falha na decifragem
Divergência de parâmetros criptográficos.
Reverificar o acordo formal (Key Ceremony) em relação ao Padding e à Função Hash.
Apêndices
Apêndice A. Acordo de Key Ceremony (Itens Obrigatórios)
Qualquer troca de chaves via módulo RSA requer um alinhamento prévio:
Partes Envolvidas
Razão social, CNPJ e responsáveis de ambas as instituições.
Tipo de Chave e Finalidade
Ex: ZMK, ZPK, BDK (e o seu propósito específico).
Algoritmos Simétricos e Assimétricos
Ex: AES-256 (simétrica) e RSA 2048 / ECC P-256 (assimétrica).
Codificação (publicKeyEncoding)
Formato exato da chave DER ASN.1 (1, 2 ou 3).
Modo de Preenchimento e MGF
padModeId (PKCS#1 v1.5 ou OAEP) e a respetiva função hash (ex: SHA-256).
Canal e Validade
Canal de partilha e o ciclo de vida/rotação da chave partilhada.
Apêndice B. Identificação Visual de Formatos
Se o parceiro não especificar o formato da chave, o cabeçalho hexadecimal fornece indícios cruciais:
3082...
DER ASN.1 SEQUENCE longo (X.509 SubjectPublicKeyInfo).
1 (RSA unsigned)
3081...
DER ASN.1 SEQUENCE médio (RSAPublicKey PKCS#1).
1 ou 2
04...
X9.62 ECC uncompressed point.
3 (ECC X9.62)
02... / 03...
X9.62 ECC compressed.
Não suportado
Apêndice C. Glossário Resumido
ASN.1 / DER
Abstract Syntax Notation One / Distinguished Encoding Rules
Padrão e codificação binária das estruturas de chaves públicas.
BDK / ZMK / ZPK
Base Derivation Key / Zone Master Key / Zone PIN Key
Chaves simétricas protegidas e geridas pelo ecossistema de pagamentos.
ECC / RSA
Elliptic Curve Cryptography / Rivest-Shamir-Adleman
Algoritmos de criptografia assimétrica.
Key Block
Bloco Seguro (Thales)
Estrutura que encapsula o material criptográfico juntamente com um MAC (integridade).
OAEP / MGF
Optimal Asymmetric Encryption Padding / Mask Generation Function
Esquemas modernos e avançados de preenchimento matemático para chaves RSA.
Last updated

