Panoramica sulle APDU
Per APDU si intende una sequenza composta da comandi che possono essere inviati da un'applicazione alla smartcard. Ogni APDU contiene sia un comando che la relativa risposta. Gli aspetti funzionali delle APDU sono definiti dallo standard ISO 7816-4 il quale individua le seguenti aree di funzionalità:
Si definisce un file system con una specifica struttura gerarchica e con un set di funzioni che caratterizzano un'API attraverso la quale le applicazioni possono accedere alle informazioni presenti nei file residenti in questo file system.
L'accesso alle applicazioni software o, in generale, alle informazioni immagazzinate sulla smartcard deve poter essere limitato mediante una ben definita serie di funzioni di sicurezza.
Un comando APDU è composto da un header e dal corpo, e entrambi sono divisi in vari campi così come mostrato dalla seguente figura:
Analizziamo i campi dell'header:
CLA indica la classe dell'applicazione;
INS rappresenta il gruppo di istruzioni;
P1 e P2 sono i parametri impiegati dal comando.
Al contrario dell'header, il corpo dell'APDU è di dimensione variabile e, secondo se si tratta di un comando o di una risposta, può consistere di diversi campi. In particolare:
il campo P3 specifica il numero di byte che bisogna trasferire sulla card come parte di un'istruzione (cioč contiene la lunghezza del campo DATA);
il campo DATA contiene i dati da trasferire sulla smartcard per eseguire il comando APDU;
il campo LE specifica il numero di byte che sono restituiti nell'APDU in risposta al comando inviato.