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

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.