Guia de Comandos para Cartões Inteligentes ISO 7816-4
August 18, 2024 1074 Comments
O que a ISO 7816-4 define
A ISO 7816-4 é uma das partes mais práticas da família ISO/IEC 7816, pois estabelece como um dispositivo de interface e um cartão com circuito integrado trocam comandos e respostas no nível da aplicação. Enquanto a ISO 7816-3 trata dos sinais elétricos e dos protocolos de transmissão, a ISO 7816-4 opera em uma camada superior. Ela oferece uma linguagem comum para aplicações de cartões, abrangendo seleção de arquivos, acesso a dados binários, tratamento de registros, suporte à autenticação, mensageria segura e comunicação do status das respostas.
A norma é especialmente importante para cartões inteligentes com contato utilizados em identificação, serviços bancários, controle de acesso, transportes, saúde, programas de fidelidade e projetos de credenciais seguras. Para fabricantes, integradores e desenvolvedores de software, ela reduz ambiguidades na comunicação entre o cartão, o leitor e a aplicação. Embora um cartão possa conter lógica proprietária, a ISO 7816-4 fornece uma estrutura compartilhada para que os comandos sejam criados, interpretados e testados de maneira previsível.
Estrutura das mensagens APDU
A principal unidade de comunicação da ISO 7816-4 é a APDU, sigla de Application Protocol Data Unit. Uma APDU de comando normalmente contém um cabeçalho de quatro bytes formado por CLA, INS, P1 e P2. O campo CLA indica a classe do comando e pode incluir informações sobre canais lógicos ou mensageria segura. O campo INS identifica a instrução, enquanto P1 e P2 fornecem os respectivos parâmetros. Dependendo do tipo de comando, o corpo também pode conter Lc, um campo de dados e Le.
Lc informa ao cartão quantos bytes estão presentes no campo de dados do comando. Le indica o número máximo de bytes esperados na resposta. A ISO 7816-4 descreve diferentes casos de comando, desde operações sem troca de dados até comandos que enviam informações e solicitam dados de retorno. A APDU de resposta contém um campo de dados opcional, seguido obrigatoriamente pelos bytes de status SW1 e SW2, que informam ao terminal se o processamento foi concluído, rejeitado ou exige uma ação adicional.
Organização lógica de arquivos
A ISO 7816-4 define um modelo lógico de arquivos acessível pela interface do cartão. No nível superior está o Arquivo Mestre, ou MF. Abaixo dele, os Arquivos Dedicados, ou DFs, podem agrupar aplicações ou ambientes de dados. Os Arquivos Elementares, ou EFs, armazenam os dados propriamente ditos. Alguns EFs são transparentes e acessados por deslocamentos, enquanto os arquivos baseados em registros são acessados por números ou identificadores de registro.
Essa organização é relevante porque muitas aplicações de cartões inteligentes não funcionam como simples blocos de memória. Elas podem incluir várias aplicações, objetos com dados pessoais, objetos de segurança, registros de uso ou áreas controladas pelo emissor. O comando SELECT FILE permite que a aplicação do leitor selecione um arquivo por identificador, caminho ou nome de DF. Após a seleção, comandos como READ BINARY, READ RECORD, UPDATE BINARY e UPDATE RECORD podem operar sobre os dados de acordo com as regras de acesso definidas no cartão.
Objetos de dados, codificação TLV e FCI
A ISO 7816-4 também descreve como os dados podem ser representados na interface do cartão. TLV significa Tag, Length e Value, ou tag, comprimento e valor. A tag identifica o objeto, o comprimento informa quantos bytes aparecem em seguida e o valor contém os dados. Conforme o contexto, a norma utiliza estruturas BER-TLV, COMPACT-TLV e SIMPLE-TLV. Esse método permite que o cartão retorne dados estruturados sem obrigar todas as aplicações a interpretar bytes brutos em um layout fixo.
As Informações de Controle de Arquivo, conhecidas como FCI, fornecem ao terminal detalhes sobre o arquivo selecionado. Elas podem incluir descritores, identificadores e tamanho do arquivo, nomes de DF, dados proprietários e atributos de segurança. Em projetos reais, interpretar corretamente a FCI ajuda os engenheiros a confirmar se a aplicação ou o arquivo correto foi selecionado antes de executar comandos de leitura, gravação ou autenticação.
Arquitetura de segurança e mensageria segura
A ISO 7816-4 não estabelece um único algoritmo criptográfico universal para todos os cartões. Em vez disso, define como o status e os atributos de segurança, os comandos relacionados à autenticação e a mensageria segura podem ser representados e utilizados. O cartão pode exigir senha, PIN, autenticação baseada em chaves ou uma sessão de mensageria segura antes de permitir o acesso a determinado arquivo ou comando. Portanto, mesmo um comando corretamente estruturado pode ser rejeitado quando o status de segurança exigido ainda não foi alcançado.
Comandos como VERIFY, GET CHALLENGE, INTERNAL AUTHENTICATE e EXTERNAL AUTHENTICATE dão suporte a fluxos de segurança comuns. A mensageria segura pode proteger os dados dos comandos e das respostas por meio de mecanismos de integridade, autenticação e confidencialidade, conforme a implementação adotada. Em processos de personalização de cartões, controle de acesso e emissão de credenciais, essas regras ajudam a separar operações com dados públicos de operações protegidas.
Por que a ISO 7816-4 é importante em projetos de cartões e leitores
Para uma fábrica de cartões, a ISO 7816-4 é mais do que uma referência de protocolo. Ela influencia a forma como as aplicações são personalizadas, os scripts de teste são desenvolvidos, a compatibilidade dos leitores é verificada e os sistemas dos clientes se comunicam com os cartões emitidos. Na produção de Cartões IC com Contato, os engenheiros frequentemente precisam validar a estrutura de arquivos, o comportamento das APDUs, o mapeamento dos bytes de status e as condições de acesso antes da fabricação em escala.
A mesma lógica se aplica quando chips com contato são incorporados a credenciais impressas, cartões de associação ou documentos de identificação seguros. Projetos que utilizam Cartões de PVC com módulos IC de contato precisam garantir um tratamento estável dos comandos entre o chip e o terminal. Fabricantes de leitores e integradores também devem verificar se seus Leitores de Cartões com Interface Dupla processam corretamente a troca de APDUs, os arquivos selecionados, os comprimentos das respostas e os bytes de status em diferentes aplicações.
Uma avaliação prática da ISO 7816-4 deve considerar os dois lados do sistema. No cartão, é necessário documentar a hierarquia de arquivos, as instruções disponíveis, os requisitos de segurança e os bytes de status esperados. No leitor, a aplicação deve gerar APDUs válidas, tratar os comprimentos suportados, interpretar corretamente os dados TLV e responder de forma adequada a status como operação concluída, comprimento incorreto, condição de segurança não atendida ou arquivo não encontrado.
Comandos comuns da ISO 7816-4
Vários comandos aparecem com frequência em aplicações reais de cartões inteligentes. SELECT FILE seleciona a aplicação ou o arquivo que será utilizado. READ BINARY e UPDATE BINARY são aplicados a arquivos transparentes. READ RECORD, APPEND RECORD e UPDATE RECORD são usados em arquivos organizados por registros. GET DATA e PUT DATA permitem manipular objetos de dados. VERIFY é normalmente associado à verificação de PIN ou senha. GET CHALLENGE e os comandos de autenticação oferecem suporte a procedimentos criptográficos. MANAGE CHANNEL é utilizado quando os canais lógicos permitem manter várias sessões simultâneas.
Perguntas frequentes
Para que serve a ISO 7816-4?
A ISO 7816-4 define como um cartão inteligente e um terminal trocam comandos e respostas interindustriais. Ela abrange a estrutura das APDUs, a organização de arquivos, o acesso aos dados, os bytes de status, os conceitos de mensageria segura e serviços independentes da aplicação. É uma base técnica para muitos sistemas de cartões inteligentes com contato que exigem comunicação confiável entre o chip e o software do leitor.
A ISO 7816-4 se aplica apenas a cartões inteligentes com contato?
A família ISO 7816 está principalmente associada a cartões com circuito integrado e contatos físicos, e a ISO 7816-4 faz parte dessa família. No entanto, a comunicação baseada em APDUs também é utilizada em outros ambientes de cartões inteligentes e elementos seguros. Os engenheiros devem verificar separadamente a interface física e a camada de transporte, pois a ISO 7816-4 se concentra na organização dos comandos e das respostas, e não em antenas, radiofrequência ou características elétricas.
O que é uma APDU na ISO 7816-4?
APDU é a sigla de Application Protocol Data Unit. Uma APDU de comando transporta uma instrução do dispositivo de interface para o cartão, enquanto uma APDU de resposta devolve dados e bytes de status do cartão para o dispositivo. As APDUs são essenciais para selecionar arquivos, ler ou atualizar dados, verificar condições de segurança e controlar os fluxos das aplicações instaladas no cartão.
O que significam SW1 e SW2?
SW1 e SW2 são os dois bytes de status localizados no final de uma APDU de resposta. Eles descrevem o resultado do processamento do comando. Podem indicar, por exemplo, execução bem-sucedida, comprimento incorreto, arquivo inexistente, instrução não suportada ou condição de segurança não atendida. O tratamento correto desses bytes é fundamental para desenvolver softwares de leitura robustos e testes de produção confiáveis.
Como a ISO 7816-4 organiza os arquivos de um cartão?
A norma descreve uma hierarquia lógica formada por um Arquivo Mestre, Arquivos Dedicados opcionais e Arquivos Elementares. Os Arquivos Elementares podem ser transparentes ou organizados por registros. Normalmente, o terminal seleciona primeiro um arquivo e, em seguida, realiza operações como leitura de dados binários, leitura de registros, atualização de dados ou obtenção das informações de controle do arquivo, conforme os comandos e as permissões disponíveis.
A ISO 7816-4 define algoritmos de criptografia?
Não. A ISO 7816-4 define estruturas de comandos, conceitos de status de segurança, formatos de mensageria segura e suporte a comandos relacionados à autenticação, mas não determina um algoritmo de criptografia específico para todos os cartões. O algoritmo utilizado, o método de gerenciamento de chaves e as políticas da aplicação são normalmente definidos pelo sistema operacional do cartão, pelas especificações do emissor ou pelo perfil de segurança do projeto.
Por que a ISO 7816-4 é importante para a fabricação de cartões?
A norma ajuda fabricantes e integradores a verificar se o cartão apresenta um comportamento previsível durante a personalização, os testes com leitores e a implantação do sistema. Quando a seleção de arquivos, o tratamento do comprimento das APDUs, os bytes de status ou as condições de segurança são inconsistentes, até mesmo um cartão fisicamente correto pode falhar no terminal do cliente. A ISO 7816-4 oferece uma referência técnica comum para diagnóstico, validação e testes de aceitação.



