Modelo de segurança e PIN
O aplicativo Pinpad Getnet usa uma arquitetura de segurança robusta para proteger os dados sensíveis do portador do cartão. Esse modelo se apoia em três pilares principais. A criptografia assimétrica RSA protege os dados de mensageria, e o gerenciamento de chaves DUKPT criptografa o PIN e o PAN. O módulo especializado PinEntryActivity gerencia o ciclo de vida do teclado seguro. Para o modelo completo de criptografia, consulte Criptografia do Pinpad.
Criptografia RSA para dados sensíveis
O terminal usa uma chave pública RSA, fornecida pelo Sistema Host na requisição Y19, para criptografar informações sensíveis do cartão antes da transmissão. Assim, mesmo que a comunicação serial seja interceptada, os dados permanecem ilegíveis sem a chave privada correspondente. A criptografia se aplica aos dados sensíveis retornados nas respostas dos comandos Y19 (para contactless) e Y02 (para chip/tarja).
Os seguintes elementos de dados são criptografados com a chave RSA:
- Dados da Trilha I e da Trilha II.
- Código de segurança (CDS).
- Dados EMV.
o PAN (número do cartão) não é criptografado com RSA. Ele é criptografado separadamente com 3DES DUKPT — retornado como ENC-PAN com seu próprio KSN-PAN — e o PAN dentro das trilhas criptografadas com RSA é mascarado com zeros. Consulte Criptografia do Pinpad.
O Sistema Host gera o par de chaves e informa o módulo e o expoente nos campos RSA e EXP do Y19. Para o procedimento, consulte Gerar e Injetar Chaves de Criptografia.
Gerenciamento de chaves DUKPT
O terminal usa o DUKPT (Derived Unique Key Per Transaction) para criptografar o PIN e o PAN. Cada transação deriva uma chave única a partir de uma chave base, montando o PINBLOCK e o KSN (PIN) e o ENC-PAN e o KSN-PAN (PAN) enviados nas respostas Y19 e Y02. O PIN e o PAN usam contadores KSN independentes. Consulte Criptografia do Pinpad para ver os slots de chave e os parâmetros ENC e PMK.
As chaves base não são geradas pelo Host. Elas são injetadas na memória segura do Pinpad em um ambiente controlado — o slot 3 para o PIN e o slot 4 para o PAN em terminais de chave dupla — e o Pinpad nunca as expõe em texto claro. Se um comando referenciar um slot de chave que não contém chave, a operação termina imediatamente com erro. Para o procedimento de injeção, consulte Gerar e Injetar Chaves de Criptografia.
Tratamento e verificação do PIN
A PinEntryActivity gerencia a interface do teclado seguro e captura a entrada do usuário com segurança dentro da área segura do terminal.
- Comportamento da interface: o teclado permite no máximo seis dígitos. Cada dígito inserido é mascarado na tela especificamente com um asterisco (*).
- Tempo limite: o teclado seguro tem um tempo limite fixo de 10 segundos. Se nenhuma ação ocorrer nessa janela, o processo de entrada expira.
Métodos de verificação de PIN
O método usado é determinado pelo perfil do cartão e informado ao Host:
- PIN Online: o PIN capturado é criptografado com DUKPT e enviado ao Sistema Host para validação remota.
- PIN Offline: o PIN é validado localmente pelo chip do cartão, sem criptografia adicional. Para transações CHIP, o campo Y02.PVF indica se um PIN Offline foi verificado com sucesso.
- PIN Offline Cifrado: o PIN é validado pelo cartão, mas viaja criptografado do teclado seguro até o chip com uma chave fornecida pelo próprio cartão.
Regras de comportamento de segurança
- Bloqueio de comandos e Y06: para evitar a interrupção de uma entrada segura, o Pinpad ignora todos os comandos enquanto o teclado seguro está ativo. Isso inclui especificamente o comando Y06 (Cancel).
- PIN Bypass: para emissores específicos, como a American Express, o usuário pode pular a entrada do PIN pressionando “Confirmar” sem digitar nada. A transação prossegue como se nenhum PIN fosse necessário.
- Falhas de validação: se o índice do slot de chave DUKPT informado no comando não corresponder a uma chave carregada na memória do terminal, a operação é finalizada imediatamente com erro.
Recursos relacionados
- Gerar e Injetar Chaves de Criptografia: gere o par RSA e carregue as chaves DUKPT no terminal.
- Processar Pagamentos com Cartão: siga os fluxos de transação passo a passo.
- Comandos da API: revise a estrutura de baixo nível dos comandos
Y19eY02para preencher corretamente os campos RSA e DUKPT.