Share to: share facebook share twitter share wa share telegram print page

Application protocol data unit

No contexto de cartões inteligentes, uma application protocol data unit (APDU), em português unidade de dados de protocolo de aplicativo, é a unidade de comunicação entre um leitor de cartão inteligente e um cartão inteligente. A estrutura da APDU é definida pela ISO/IEC 7816-4 Organization, security and commands for interchange (Organização, segurança e comandos para intercâmbio).[1]

Par comando-resposta de mensagem APDU

Existem duas categorias de APDUs: comando APDUs e resposta APDUs. Um comando APDU é enviado pelo leitor para o cartão - ele contém um cabeçalho obrigatório de 4 bytes (CLA, INS, P1, P2) e de 0 a 65 535 bytes de dados. Uma resposta APDU é enviada pelo cartão para o leitor - contém de 0 a 65 536 bytes de dados e 2 bytes de status obrigatórios (SW1, SW2).

Comando APDU
Nome do campo Tamanho (bytes) Descrição
CLA 1 Classe de instrução - indica o tipo de comando, por exemplo interindústrial ou proprietário
INS 1 Código de instrução - indica o comando específico, por exemplo "gravar dados"
P1-P2 2 Parâmetros de instrução para o comando, por exemplo offset (deslocado) para o arquivo no qual os dados serão gravados
Lc 0, 1 ou 3 Codifica o número (Nc) de bytes de dados de comando para o seguinte

0 bytes denota Nc=0
1 byte com um valor de 1 a 255 indica Nc com o mesmo valor
3 bytes, o primeiro dos quais deve ser 0, denota Nc no intervalo de 1 a 65 535 (todos os três bytes podem não ser zero)

Dados de comando Nc Nc bytes de dados
Le 0, 1, 2 or 3 Codifica o número máximo (Ne) de bytes de resposta esperados

0 bytes denota Ne=0
1 byte no intervalo de 1 a 255 indica que o valor de Ne ou 0 indica Ne= 256
2 bytes (se Lc estendido estava presente no comando) no intervalo de 1 a 65 535 denota Ne desse valor ou dois bytes zero indicam 65 536
3 bytes (se Lc não estava presente no comando), o primeiro dos quais deve ser 0, denota Ne da mesma maneira que Le de dois bytes

Resposta APDU
Dados de resposta Nr (no máximo Ne) Dados de resposta
SW1-SW2
(Trailer de resposta)
2 Estado de processamento do comando, por exemplo 90 00 (hexadecimal) indica sucesso

Referências

Ligações externas

Kembali kehalaman sebelumnya