
acs ACOSJ-G Scheda Java
INTRODUZIONE
Gentile Cliente,
Grazie per l'acquistoasinil nostro prodotto. Leggere attentamente le seguenti istruzioni prima del primo utilizzo e conservare il manuale utente per riferimento futuro. Prestare particolare attenzione alle istruzioni di sicurezza. Per qualsiasi domanda o commento sul dispositivo, contattare il servizio clienti.
Sopraview
ACOSJ è un sistema operativo per smart card sviluppato da Advanced Card Systems Ltd. Funziona sulla base della JAVA Card Virtual Machine ed è conforme alla GlobalPlatform Card Specification Version 2.2.1, JAVA Card Virtual Machine ed è conforme alla GlobalPlatform Card Specification Version 2.2.1, JAVA Card Specification Version 3.0.4 e Mapping Guidelines 1.0.1 sulle sue funzioni e configurazioni. Lo scopo di questo documento è descrivere in dettaglio le caratteristiche e le funzioni del sistema operativo della smart card ACOSJ.
Versioni ACOSJ-G
| Versione | Dati rilasciati | Modifiche |
| ACOSJ v1.01 | Giugno 2015 | · EEPROM da 40KB
· Vol. operativatage: da 2.7 V a 5.5 V |
|
ACOSJ v2.00 |
Maggio 2018 |
· EEPROM da 95KB
· Operativo voltage: da 2.1 V a 5.5 V · Modifiche all'indirizzo della memoria di configurazione |
|
ACOSJ v2.04 |
aprile |
· EEPROM da 95KB
· Operativo voltage: da 2.1 V a 5.5 V · Modifiche all'indirizzo della memoria di configurazione · Miglioramento delle funzionalità |
Simboli e abbreviazioni
| Abbreviazione | Descrizione |
| AES | Standard di crittografia avanzata |
| AIUTO | Identificatore dell'applicazione |
| APDU | Unità di dati del protocollo dell'applicazione |
| API | Interfaccia di programmazione dell'applicazione |
| ASCII | Codice standard americano per lo scambio di informazioni |
| ATR | Risposta al ripristino |
| Domanda di ammissione | Risposta a richiesta (per carte contactless) |
| BCD | Decimale codificato binario |
| BER | Regole di codifica di base |
| GATTO | Card Application Toolkit: o modello di autorizzazione crittografica |
| CBC | Concatenamento di blocchi cifrati |
| TDC (Tedesco convenzionale) | Modello di riferimento del controllo per checksum crittografico |
| CIN | Numero di immagine della carta/Numero di identificazione della carta |
| CLA | Byte di classe del messaggio di comando |
| Tubo a raggi X | Modello di riferimento del controllo |
| CT | Modello di riferimento di controllo per la riservatezza |
| CVM | Metodo di verifica del titolare della carta |
| DAP | Modello di autenticazione dei dati |
| DEK | Chiave di crittografia dei dati |
| IL | Regole di codifica distinte |
| DESIDERI | Standard di crittografia dei dati |
| Ora legale | Modello di riferimento del controllo per la firma digitale |
| BCE | Libro dei codici elettronici |
| EMV | Europay, Mastercard e VISA: utilizzati per fare riferimento alle Specifiche ICC per
Sistemi di pagamento |
| ENC | Crittografia |
| FCI | File Informazioni di controllo |
| ESAGONO | Esadecimale |
| HMAC | Codice di autenticazione del messaggio hash con chiave |
| CCI | Scheda a circuito integrato |
| ICV | Vettore di concatenamento iniziale |
| Io sono | Numero di identificazione dell'emittente |
| INS | Byte di istruzione del messaggio di comando |
| ISO | Organizzazione internazionale per la normazione |
| Lc | Lunghezza esatta dei dati in un comando case 3 o case 4 |
| Le | Lunghezza massima dei dati prevista in risposta a un caso 2 o caso 4
comando |
| LV | Valore di lunghezza |
| MAC | Codice di autenticazione del messaggio |
| MEL | Lingua eseguibile MULTOS. Il set di istruzioni del MULTOSTM
ambiente di esecuzione |
| Identificazione OID | Identificatore oggetto |
| P1 | Parametro di controllo di riferimento 1 |
| P2 | Parametro di controllo di riferimento 2 |
| SPILLO | Numero di identificazione personale |
| PKI | Infrastruttura a chiave pubblica |
| Memoria RAM | Memoria ad accesso casuale |
| RFU | Riservato per uso futuro |
| SBARAZZARSI | Identificatore del fornitore di applicazioni registrato |
| ROM | Memoria di sola lettura |
| RSA | Memoria solo Rivest |
| SCP | Secure Channel Protocol: o (ETSI) Smart Card Platform |
| SW | Parola di stato |
| SW1 | Parola di stato uno |
| SW2 | Parola di stato due |
| Valore limite di tolleranza | Tag Valore di lunghezza |
| TP | Punto di fiducia |
| "xx" | I valori esadecimali sono espressi come cifre esadecimali tra singoli
Virgolette. |
| "X" | Un valore in una cella di una tabella il cui scopo è descritto nel "Significato"
colonna della tabella. |
| "-" | Un valore (0 o 1) in una cella di una tabella che non influisce sul "Significato" dato
per quella riga del tavolo. |
Specifiche della carta
Specifiche elettriche
| Volume di eserciziotage (ACOSJ-G v1.01): | da 2.7 V a 5.5 V voltages |
| Volume di eserciziotage (ACOSJ-G v2.04): | da 2.1 V a 5.5 V voltages |
| Frequenza di clock esterna massima: | 10 MHz |
| Frequenza di clock massima della CPU: | 28 MHz |
| Protezione ESD | maggiore di 5 kV (HBM) |
Specifiche ambientali
Temperatura di esercizio: da -25°C a +85°C
Protocolli di comunicazione
Protocollo T=CL con baud fino a 848 kbps
Memoria
| Capacità: | 95KB (ACOSJ-G 2.04), 40KB (ACOSJ-G
1.01) |
| Resistenza EEPROM: | 500,000 cicli di cancellazione/scrittura (25°C) |
| Conservazione dei dati: | 30 anni (25°C) |
Capacità: 95 KB (ACOSJ-G 2.04), 40 KB (ACOSJ-G 1.01)
Funzionalità crittografiche
| DESTINAZIONE: | 2K3DES,3K3DES (BCE e CBC) |
| AES: | 128/192/256 bit (BCE e CBC) |
| RSA: | Da 768 a 2048 bit |
| ECC: | Modulus 112/128/160/192/224/256/384
pezzi |
| Hash: | SHA1, SHA256, SHA384, SHA512 |
| SEED: | 128 bit |
Conformità agli standard
- Conformità alla norma ISO 7816 Parte 4
- Conformità alla norma ISO 14443 (Tipo A e B)
- Conformità alla specifica JAVA Card versione 3.0.4
- Conformità alla specifica della piattaforma globale versione 2.2.1
- Conformità alle linee guida sulla mappatura 1.0.1
Risposta per selezionare (ATS, carta contactless)
Dopo aver ricevuto un comando Request for Answer to Select (RATS) dal dispositivo di lettura della carta, la carta trasmette e Answer to Select (ATS) in conformità con ISO 14443 Parte 4.
La tabella seguente mostra l'ATS predefinito:
| Parametro | ATS | Descrizione |
| TL | 0 Eh | Lunghezza |
| T0 | ore 78 | Byte…codici formali Y(1) e FSCI |
| TA1 | ore 00 | Byte di interfaccia…codici DS e DR |
| TB1 | ore 71 | Codici FWI e SFGI |
| TC1 | ore 02 | Opzioni protocollo codici |
| T1 | ore 41 | Indica "A" |
| T2 | ore 43 | Indica "C" |
| T3 | 4Fh | Indica "O" |
| T4 | ore 53 | Indica "S" |
| T5 | 4 Ah | Indica "J" |
| T6 | ore 76 | Indica "v" |
|
T7 ~ T9 |
31h 30h 31h o
32 ore 30 ore 34 ore |
Indica "101" o indica "204" |
Stati del ciclo di vita della carta
L'ACOSJ ha cinque stati della carta: OP_READY, INTILIZED, SECURED, CARD_LOCKED e TEDMINATED. La figura seguente mostra la transizione dello stato del ciclo di vita della scheda:
OP_PRONTO
Questo stato indica che l'ambiente di runtime sarà disponibile e il dominio di sicurezza dell'emittente, agendo come l'applicazione selezionata, sarà pronto a ricevere, eseguire e rispondere ai comandi APDU. Quando la carta è nello stato OP_READY devono essere presenti le seguenti funzionalità:
- L'ambiente di runtime deve essere pronto per l'esecuzione.
- L'OPEN deve essere pronto per l'esecuzione.
- Il dominio di sicurezza dell'emittente sarà l'applicazione implicitamente selezionata per tutte le interfacce della carta.
- Caricamento eseguibile FileI messaggi di posta elettronica inclusi nella memoria persistente immutabile devono essere registrati nel registro di GlobalPlatform.
- Una chiave iniziale deve essere disponibile all'interno del dominio di sicurezza dell'emittente.
- La carta deve essere in grado di modificare il contenuto della carta, il caricamento del carico Filepossono verificarsi messaggi contenenti applicazioni non già presenti nella scheda.
- L'installazione, da Executable Load Files, di aby Applicazione può verificarsi.
- Inoltre, se sono disponibili informazioni sulla personalizzazione in questo stage, Le applicazioni possono essere personalizzate.
- Lo stato OP_READY può essere utilizzato da una scheda esterna per eseguire le seguenti azioni:
- È possibile caricare e/o installare domini di sicurezza supplementari.
- Le chiavi del dominio di sicurezza possono essere inserite per mantenere una separazione della chiave crittografica dalle chiavi del dominio di sicurezza dell'emittente.
Inizializzato
Questo stato è uno stato di produzione della scheda amministrativa. La transizione di stato da OP_READY a INITIALIZED è irreversibile. La sua funzionalità esula dall'ambito di questa specifica. Questo stato può essere utilizzato per indicare che alcuni dati iniziali sono stati inseriti (ad esempio, chiavi e/o dati del dominio di sicurezza dell'emittente) ma la carta non è ancora pronta per essere rilasciata al titolare della carta.
Protetto
Questo stato è lo stato del ciclo di vita della carta operativo previsto dopo l'emissione. Questo stato può essere utilizzato dai domini di sicurezza e dalle applicazioni per applicare le rispettive policy di sicurezza. La transizione di stato da INITIALIZED a SECURED è irreversibile. Lo stato SECURED dovrebbe essere utilizzato per indicare alle entità off-card che il dominio di sicurezza dell'emittente contiene tutte le chiavi e gli elementi di sicurezza necessari per la piena funzionalità.
Carta bloccata
Lo stato del ciclo di vita della carta CARD_LOCKED è presente per fornire la possibilità di disabilitare la selezione del dominio di sicurezza e delle applicazioni. La transizione dello stato del ciclo di vita della carta da SECURED a CARD_LOCKED è reversibile.
L'impostazione della carta nello stato CARD_LOCKED significa che la carta consentirà solo la selezione dell'applicazione con il privilegio Applicazione finale. Le modifiche al contenuto della carta, incluso qualsiasi tipo di gestione dei dati (in particolare chiavi e dati del dominio di sicurezza), non sono consentite in questo stato. Sia l'OPEN o un Dominio di Sicurezza con privilegio Card Lock, o un'Applicazione con privilegio Card Lock, possono avviare la transizione dallo stato SECURED allo stato CARD_LOCKED.
TERMINATO
Questo stato segnala la fine del ciclo di vita della carta e della carta. La transizione di stato da qualsiasi altro stato a TERMINATED è irreversibile. Lo stato TERMINATED deve essere utilizzato per disabilitare in modo permanente tutte le funzionalità della carta rispetto a qualsiasi gestione del contenuto della carta e qualsiasi modifica del ciclo di vita. Questo stato della carta è inteso come un meccanismo per un'applicazione per "distruggere" logicamente la carta per motivi quali il rilevamento di una grave minaccia alla sicurezza o la scadenza della carta. Se un dominio di sicurezza ha il privilegio di applicazione finale, solo il comando GET DATA deve essere elaborato, tutti gli altri comandi definiti in questa specifica devono essere disabilitati e devono restituire un errore. Se un'applicazione ha il privilegio Applicazione finale, l'elaborazione del suo comando è soggetta alla politica dell'emittente. Lo stesso OPEN, o un Security Domain con privilegio Card Terminate, o un'Applicazione con privilegio Card Terminate, può avviare la transizione da uno qualsiasi degli stati precedenti allo stato TERMINATED.
Architettura della carta
Riferimento per i comandi GP APDU
Questa sezione descrive in dettaglio i comandi APDU GlobalPlatform che possono essere implementati. I comandi sono elencati in ordine alfabetico. Riepiloga i comandi APDU supportati dai domini di sicurezza dell'emittente e i requisiti per il supporto di questi comandi APDU da parte di altri domini di sicurezza. Quando i canali logici sono supportati, il comando MANAGE CHANNEL viene elaborato solo da OPEN e per questo comando non è richiesto alcun supporto del dominio di sicurezza.
| Comando | OP_PRONTO | INIZIALIZZATO | SICURO | CARTA BLOCCATA | TERMINATO | ||||||||
| AM
SD |
DM
SD |
SD | AM
SD |
DM
SD |
SD | AM
SD |
DM
SD |
SD | Disturbo da ansia sociale | SD | Disturbo da ansia sociale | SD | |
| ELIMINARE
Caricamento eseguibile File |
|||||||||||||
| ELIMINARE
Caricamento eseguibile File e relative Applicazioni |
|||||||||||||
| ELIMINARE
Applicazione |
|||||||||||||
| Tasto CANCELLA | |||||||||||||
| OTTIENI DATI | |||||||||||||
| OTTIENI LO STATO | |||||||||||||
| INSTALLARE [per
carico] |
|||||||||||||
| INSTALLARE [per
installare] |
|||||||||||||
| INSTALLARE [per
caricare, installare e rendere selezionabile] |
|||||||||||||
| INSTALLARE [per
installa e rendi selezionabile] |
|||||||||||||
| INSTALLARE [per
rendere selezionabile] |
|||||||||||||
| INSTALLARE [per
estradizione] |
|||||||||||||
| INSTALLARE [per
aggiornamento del registro] |
|||||||||||||
| INSTALLARE [per
personalizzazione] |
|||||||||||||
| CARICO | |||||||||||||
| METTI LA CHIAVE | |||||||||||||
| SELEZIONARE | |||||||||||||
| IMPOSTA STATO | |||||||||||||
| IMMAGAZZINA DATI | |||||||||||||
| AMSD | Dominio di sicurezza con autorizzato
Privilegio di gestione. |
| DMSD | Dominio di sicurezza con delegato
Privilegio di gestione. |
| FASD | Dominio di sicurezza con applicazione finale
privilegio. |
| SD | Altro dominio di sicurezza. |
| Supporto richiesto. | |
| Cella vuota | Supporto opzionale. |
| Cella grigia | Supporto vietato. |
| Comando | Sicurezza minima |
| ELIMINARE | Avvio Secure Channel o digitale
Verifica della firma |
| OTTIENI DATI | Nessuno |
| OTTIENI LO STATO | Avvio del canale sicuro |
| INSTALLARE | Avvio Secure Channel o digitale
Verifica della firma |
| CARICO | Avvio Secure Channel o digitale
Verifica della firma |
| GESTISCI CANALE | Non applicabile |
| METTI LA CHIAVE | Avvio del canale sicuro |
| SELEZIONARE | Non applicabile |
| IMPOSTA STATO | Avvio del canale sicuro |
| IMMAGAZZINA DATI | Avvio del canale sicuro |
Regole generali di codifica
Fare riferimento al manuale di riferimento ACOSJ.
Comando CANCELLA
Il comando DELETE viene utilizzato per eliminare un oggetto identificabile in modo univoco come un caricamento eseguibile File, un'applicazione e il caricamento dell'eseguibile File e le relative Applicazioni o una chiave. Per eliminare e opporsi, l'oggetto deve essere identificabile in modo univoco dall'applicazione selezionata.
Comando OTTIENI DATI
Il comando GET DATA viene utilizzato per recuperare un singolo oggetto dati, che può essere costruito o un insieme di oggetti dati. La codifica dei parametri di controllo di riferimento P1 e P2 viene utilizzata per definire l'oggetto dati specifico tag. L'oggetto dati può contenere informazioni relative a una chiave.
Comando OTTIENI STATO
Il comando GET STATUS viene utilizzato per recuperare Issuer Security Domain, Executable Load File, Informazioni sullo stato del ciclo di vita del modulo eseguibile, dell'applicazione o del dominio di sicurezza in base a determinati criteri di corrispondenza/ricerca.
Comando INSTALLA
Il comando INSTALL viene inviato a un dominio di sicurezza per avviare o eseguire i vari passaggi richiesti per la gestione del contenuto della scheda.
CARICO Comando
Questa sezione definisce la struttura del carico File trasmesso nel campo dati del comando LOAD per il caricamento di un carico File. La movimentazione interna o lo stoccaggio ICC del carico File esula dall'ambito di questa specifica.
È possibile utilizzare più comandi LOAD per trasferire un carico File alla carta. Il carico File è suddiviso in componenti più piccoli per la trasmissione. Ciascun comando LOAD deve essere numerato a partire da 00h. La numerazione del comando LOAD deve essere strettamente sequenziale e incrementata di uno. La carta sarà informata dell'ultimo blocco del Carico File. Dopo aver ricevuto l'ultimo blocco di Load File, la carta eseguirà i processi interni necessari al Carico File e tutti i processi aggiuntivi identificati nel comando INSTALL [for load] che ha preceduto i comandi LOAD.
Comando GESTISCI CANALE
Il comando MANAGE CHANNEL viene elaborato dall'open su schede che sono a conoscenza dei canali logici. Viene utilizzato per aprire e chiudere i canali logici supplementari. Il canale logico di base (canale numero zero) non può mai essere chiuso.
Comando PUT KEY
Il comando PUT KEY viene utilizzato per:
- Sostituisci una chiave esistente con una nuova chiave: la nuova chiave ha lo stesso numero di versione della chiave o un numero diverso ma lo stesso identificatore di chiave della chiave da sostituire.
- Sostituisci più chiavi esistenti con nuove chiavi: le nuove chiavi hanno lo stesso numero di versione della chiave o un numero diverso (identico per tutte le nuove chiavi) ma gli stessi identificatori di chiave delle chiavi sostituite.
- Aggiungi una singola nuova chiave: la nuova chiave ha una combinazione di identificatore di chiave/numero di versione della chiave diversa da quella delle chiavi esistenti.
- Aggiungi più nuove chiavi: le nuove chiavi hanno combinazioni diverse di identificatori di chiavi/numero di versione della chiave (identiche a tutte le nuove chiavi) rispetto a quelle delle chiavi esistenti.
Quando l'operazione di gestione delle chiavi richiede più comandi PUT KEY, si consiglia di concatenare più comandi PUT KEY per garantire l'integrità dell'operazione.
In questa versione della specifica vengono presentati i valori pubblici delle chiavi asimmetriche
(trasmesso) in chiaro.
Comando SELEZIONA
Il comando SELEZIONA viene utilizzato per selezionare un'applicazione. OPEN elabora solo i comandi SELECT che indicano che SELECT [per nome] deve essere passato al dominio di sicurezza o all'applicazione attualmente selezionati sul canale logico indicato.
Comando IMPOSTA STATO
Il comando SET STATUS deve essere utilizzato per modificare lo stato del ciclo di vita della scheda o lo stato del ciclo di vita dell'applicazione.
Comando SALVA DATI
Il comando STORE DATA viene utilizzato per trasferire i dati a un'applicazione o al dominio di sicurezza che elabora il comando. Il dominio di sicurezza determina se il comando è destinato a se stesso oa un'applicazione a seconda di un comando ricevuto in precedenza. Se un comando precedente era e comando INSTALL [per personalizzare], il comando STORE DATA è destinato a un'applicazione. Più comandi STORE DATA vengono utilizzati per inviare dati all'applicazione o al dominio di sicurezza suddividendo i dati in componenti più piccoli per la trasmissione. Il dominio di sicurezza deve essere informato dell'ultimo blocco. Una sessione di personalizzazione inizia quando un Security Domain riceve un comando INSTALL [per personalizzare] valido che designa un'Applicazione (che implementa l'Applicazione o l'interfaccia di Personalization) a cui il Security Domain deve inoltrare successivamente i comandi STORE DATA ricevuti.
Una sessione di personalizzazione termina quando:
- La scheda viene ripristinata.
- Il dominio di sicurezza è deselezionato (ovvero, un'altra o la stessa applet è selezionata sullo stesso canale logico)
- Il dominio di sicurezza è selezionato sullo stesso o su un altro canale logico.
- La sessione Secure Channel (se presente) stabilita dal Security Domain viene reimpostata, possibilmente dall'applicazione mirata.
- Il dominio di sicurezza riceve il comando INSTALL [per personalizzare] (avvia una nuova sessione di personalizzazione per un'altra applicazione)
- Il dominio di sicurezza riceve un comando STORE DATA che indica P1. b8=1 (ultimo blocco)
API della piattaforma globale
Piattaforma globale su una scheda JAVA
Questa sezione contiene solo l'API richiesta per le Java Card Global Platform 2.2x. L'uso dell'API Open Platform 2.0.1 è ancora consentito per supportare le versioni precedenti delle applicazioni, ma è deprecato. È definito nella versione 2.1.1 di questa Specifica. L'API obsoleta e la nuova API accedono entrambe agli stessi oggetti, ove applicabile. Anche se questo può sembrare ovvio per i metodi che hanno lo stesso nome in entrambe le classi (ad es. setATRHistBytes(), setCardContentState() e getCardContentSame()) va anche notato come per example che un'applicazione che utilizza il metodo updated() nella nuova API per modificare il valore del PIN globale influirà sullo stesso PIN globale di un'applicazione che utilizza il metodo setPIN() nell'API deprecata per verificare il PIN globale.
Requisiti specifici della piattaforma globale
Al fine di garantire il massimo livello di interoperabilità delle implementazioni di GlobalPlatform, GlobalPlatform adotta anche l'ordine definito nella sezione 6.2 – Java CardTM 2.2x Virtual Machine Specification. Le seguenti modifiche minori alla funzionalità standard definita nelle specifiche Java CardTM 2.1.1 Runtime Environment (JCRE) e nell'interfaccia di programmazione dell'applicazione Java CardTM 2.1.1 sono presenti nell'implementazione di GlobalPlatform. Alcune delle modifiche sono già coerenti con la specifica Java CardTM 2.2.x e quindi non più modifiche.
Gli oggetti GPRegistryEntry devono essere impiantati come oggetti di interfaccia condivisibili come definito nella sezione 6.2.4 "Interfacce condivisibili" della specifica Java CardTM 2.2.x Runtime Environment (JCRE) al fine di garantire l'accesso condiviso.
AID del pacchetto GlobalPlatform
Ogni GlobalPlatfrom pacchetto AID sarà la concatenazione di RID e un PIX. Il valore AID dell'esportazione Java Card File per la nuova API GlobalPlatform (identica sia per GlobalPlatform 2.1 che per 2.1.1) basata sul RID specificato nell'Appendice H – Valori dei dati GlobalPlatform e dati di riconoscimento della carta è "A00000015100".
Installazione
Nella sezione 3.1 – Installazione del metodo delle specifiche JCRE (Java CardTM 2.2.x Runtime Environment), i parametri passati al metodo sono definiti come parametri di inizializzazione dal contenuto del parametro dell'array di byte in entrata. Questa specifica espande questo requisito e definisce ulteriormente il contenuto dei parametri di installazione. Questa espansione influisce sia sull'implementazione di un OPEN che sul comportamento dell'applet Java Card sviluppata per una scheda GlobalPlatform. Non influisce sulla definizione del metodo install() dell'applet di classe della specifica Java CardTM 2.2.x Application Programming Interface.
I parametri di installazione identificano i seguenti dati, presenti nel comando INSTALL [per l'installazione]:
- L'istanza AID
- I privilegi
- I parametri specifici dell'applicazione. (Sebbene il comando APDU contenga i parametri di installazione che rappresentano il sistema codificato TLV e i parametri specifici dell'applicazione, l'applicazione richiedeva solo la conoscenza dei parametri specifici dell'applicazione, ovvero solo i LV della struttura codificata TLV "C9" sono presenti come parametri specifici dell'applicazione.
L'OPEN è responsabile di garantire che i parametri (bArray, bOffset e bLength) contengano le seguenti informazioni: L'array, bArray, deve contenere i seguenti dati codificati LV consecutivi:
- Lunghezza dell'istanza AID
- L'istanza AID
- Durata dei privilegi
- I privilegi
- Lunghezza dei parametri specifici dell'applicazione
- I parametri specifici dell'applicazione
Il byte, bOffset, deve contenere un offset all'interno dell'array che punta alla lunghezza dell'istanza AID. Il byte, bLength, deve contenere una lunghezza che indica la lunghezza totale dei dati sopra definiti nell'array. L'applet deve utilizzare l'AID dell'istanza come parametro quando si richiama il metodo register (byte [] bArray, short bOffset, byte bLength) dell'applet di classe della specifica Java Card 2.2.x Application Programming Interface.
T=0 Protocollo di trasmissione
Le carte GlobalPlatform sono concepite per essere funzionali nella più ampia gamma di ambienti (ad esempio, dispositivi di accettazione delle carte). Attualmente le specifiche Java Card 2.1.1 Runtime Environment (JCRE) e le specifiche Java Card 2.2.x Runtime Environment (JCRE) descrivono il comportamento per i comandi del caso 2 (quando si fa causa al protocollo T=0) in contraddizione con EMV 2000. GlobalPlatform impone che JCRE gestirà questo caso di comando in conformità con ISO/IEC 7816: un'applet che riceve un comando caso 2 crea la risposta e richiama l'API appropriata per produrre i dati. Se i dati sono inferiori a quelli previsti dal terminale, l'OPEN memorizzerà i dati e produrrà un codice di risposta "6Cxx" e attenderà che il CAD emetta nuovamente il comando con la lunghezza corretta. Quando viene ricevuto il comando riemesso, JCRE gestirà l'output dei dati memorizzati.
Atomicità
Se non diversamente specificato, tutti gli oggetti persistenti interni dell'API GlobalPlatform devono essere conformi a una transazione in corso. Tutte le operazioni eseguite da questa API, ad eccezione del metodo Application.processData(), devono essere eseguite in modo atomico. Gli oggetti utilizzati per imporre l'implementazione del controllo della velocità non devono essere conformi a una transazione in corso.
Canali logici
Le seguenti limitazioni del canale logico si applicano a Java Card 2.2.x (consultare le specifiche Java Card 2.2.x Runtime Environment (JCRE) per maggiori dettagli): Selezione di un'applicazione su un canale logico come definito nella sezione 6.3 – Invio di comandi non riuscita se questa stessa applicazione, o qualsiasi altra applicazione istanziata dal codice nello stesso pacchetto da cui è stata istanziata l'applicazione selezionata, è attualmente selezionata su un altro canale logico ma il codice dell'applicazione non implementa l'interfaccia MultiSelectable. I domini di sicurezza implementeranno l'interfaccia MultiSelectable. La modifica del contesto da un dominio di sicurezza a un'applicazione come definito nella sezione 7.3.3 Personalization Support non avrà esito positivo se questa stessa applicazione o qualsiasi altra applicazione istanziata dal codice nello stesso pacchetto da cui è stata istanziata l'applicazione da personalizzare è attualmente selezionata su un'altra canale logico, ma il codice dell'applicazione non implementa l'interfaccia MultiSelectable. Un'applicazione che ha il privilegio di essere selezionata per impostazione predefinita ed è destinata a una scheda che supporta i canali logici supplementari dovrebbe implementare l'interfaccia MultiSelectable. GlobalPlarform definisce solo l'assegnazione dei numeri di canale logico da parte della scheda. Facoltativamente e come definito in Java Card 2.2, una scheda può anche supportare l'assegnazione di numeri di canale logici da parte del terminale.
Algoritmi crittografici
Le schede GlobalPlatform che supportano la crittografia RSA devono supportare dimensioni di chiave non definite come costanti nella classe Key Builder. Più specificamente, dovrebbe essere disponibile il supporto per le dimensioni delle chiavi che sono un multiplo di 4 byte (32 bit) e che rientrano nelle lunghezze di chiave consentite definite dall'implementazione.
Livello di fiducia
Le specifiche Java Card 2.2.x presuppongono che il RID dei pacchetti AID, delle applet e delle istanze verrà utilizzato per garantire un livello di fiducia tra queste entità. Nella sezione 4.2.2-AID Usage of the Java Card 2.2.1 Application Programming Interface è definito che il RID di un AID di un componente deve corrispondere al RID dell'AID del pacchetto, e nella definizione del registro (byte [] bArray, short bOffset, byte bLength) della specifica Java Card 2.2.x Application Programming Interface è definito che deve essere generata un'eccezione se la parte RID dei byte AID nel parametro bArray non corrisponde alla parte RID di il nome Java Card dell'applet. Da un punto di implementazione nel mondo reale di view, imporre che il RID dell'istanza AID debba essere uguale al RID del componente da cui è stata creata un'istanza non è pratico. Le implementazioni di GlobalPlatform non richiedono che vi sia alcun collegamento attraverso l'AID di un'istanza al suo pacchetto originale. (Non richiede connessioni tra l'AID di un'istanza e l'AID del suo pacchetto originale). Presuppone tuttavia che tutte le applicazioni nello stesso pacchetto condividano lo stesso livello di attendibilità.
Invocazione di metodi GlobalPlatform
L'Application Programming Interface qui definita è accessibile a qualsiasi applet Java Card sviluppato con l'intenzione di essere presente su una scheda GlobalPlatform. Non esiste una limitazione relativa al costruttore dell'applet e al metodo install() della Class Applet della Java Card 2.2.x Application Programming Interface. Poiché questa specifica non definisce esattamente quando l'istanza di un'applet diventa una voce nel registro GlobalPlatform della scheda, uno sviluppatore di applet può solo presumere che ciò sia avvenuto dopo il completamento con successo del metodo install(). Per garantire l'interoperabilità, i metodi API GlobalPlatform che accedono alla voce del registro GlobalPlatform dell'applet che richiama il metodo non devono essere richiamati dall'interno del costruttore o del metodo install().
Quanto segue è una perdita di metodi che possono essere richiamati dall'interno del costruttore o dal metodo install():
- getCardState;
- ottieniCVM;
- getServizio;
Il comportamento richiesto della scheda nel caso in cui un'applicazione invochi erroneamente un metodo della classe org.globalplatform.GPSystem diverso da quelli sopra elencati non è definito. Per esample, potrebbe essere generata un'eccezione e l'elaborazione del metodo install() potrebbe essere interrotta.
Selezione
Sulle schede GlobalPlatform, se si verifica un errore durante l'elaborazione del metodo select() o se il metodo select() restituisce False o se l'Applicazione non può essere selezionata perché non implementa l'interfaccia Multiselectable, l'OPEN continuerà la ricerca attraverso la GlobalPlatform Registro per una successiva corrispondenza totale o parziale come definito nella sezione 6.4.2.1.2. Se non è selezionata alcuna applicazione, il canale logico corrispondente rimane aperto senza alcuna applicazione attualmente selezionata. Poiché nessuna applicazione è attualmente selezionata, qualsiasi comando successivo, diverso da un comando MANAGE CHANNEL o SELECT, verrà rifiutato. Ci si aspetta che l'entità esterna alla scheda intraprenda l'azione appropriata in caso di tale errore, ad esempio selezionare un'altra applicazione, chiudere il canale logico corrispondente, ripristinare o spegnere la scheda. Il riepilogo e i dettagli del metodo per la specifica API GlobalPlatform Java Card sono ora disponibili in un documento separato, che può essere trovato su GlobalPlatform websito.
Pre-personalizzazione
Quando l'IC viene alimentato per la prima volta si trova nello stato di pre-personalizzazione. Il Comando INIT_CARD (vedi 8.2.2 Comando INIT CARD) deve essere il primo comando allo stato di pre-personalizzazione, il comando inizializza l'area di memoria della tessera con i valori di default, quindi una cosiddetta Applicazione ACOSJ ROOT (vedi 8.0 Applicazione ACOSJ ROOT ) è disponibile per scrivere dati di sistema critici (ad esample, “ATR”, “ATS” e così via) nella EEPROM. Una volta che i dati sono stati caricati e confermati senza ulteriori modifiche è necessario eseguire un comando che disabilita l'Applicazione ACOSJ ROOT. Quando l'IC esce dallo stato di pre-personalizzazione con l'esecuzione riuscita del comando Active Card (vedere 8-2.5 Comando ACTIVATE), si trova nello stato OP_READY del ciclo di vita della scheda GlobalPlatform predefinito se non è impostato su uno stato del ciclo di vita diverso. Se non è possibile tornare allo stato di pre-personalizzazione una volta che il comando della tessera attiva è stato elaborato con successo.
Applicazione RADICE ACOSJ
ACOSJ ROOT Descrizione dell'applicazione
I comandi nell'applicazione ROOT possono essere utilizzati solo dopo che l'applicazione ROOT è stata selezionata correttamente (utilizzando il comando select della chiave di trasporto). Dopo essere entrato nell'applicazione ROOT, l'utente può leggere o configurare i parametri della carta attraverso i comandi supportati dall'applicazione ROOT. Per uscire dall'applicazione ROOT e selezionare un'altra applicazione, la scheda deve essere reimpostata. Sotto l'applicazione ROOT, i parametri della scheda possono essere letti o configurati. L'applicazione ROOT non sarà più valida una volta attivata la carta.
Riferimento ai comandi dell'applicazione ACOSJ ROOT
- Comando SELEZIONA
- Il comando SELECT viene utilizzato per selezionare l'applicazione ROOT.
- Comando INIT_CARD
- Questo comando serve per resettare la scheda. Questo comando inizializzerà tutta la EEPROM.
- Comando LEGGI
- Questo comando viene utilizzato per leggere dall'area di configurazione. Tramite questo comando è possibile leggere i parametri di configurazione della scheda.
- Comando SCRIVI
- Questo comando viene utilizzato per scrivere i dati nell'area di configurazione. Tramite questo comando è possibile leggere i parametri di configurazione della scheda.
- Comando ATTIVO
- Questo comando serve per attivare la tessera. Una volta implementato correttamente questo comando, l'applicazione ROOT non sarà più valida ei dati di configurazione della scheda non potranno più essere letti o impostati direttamente.
- Applicazione ACOSJ IDENTIFY
- ACOSJ IDENTIFY Descrizione dell'applicazione
- Dopo aver selezionato l'applicazione IDENTIFY (AID: 6163732E636F732E61636F736A766572) con il comando SELECT, ACOSJ restituirà il numero di versione di ACOSJ e indicherà se l'auto è stata attivata.
- ACOSJ IDENTIFY Descrizione dell'applicazione
- ACOSJ IDENTIFY Riferimento ai comandi dell'applicazione
- Comando SELEZIONA
- Il comando SELEZIONA viene utilizzato per selezionare l'applicazione INDENTIFY.
- Comando SELEZIONA
Byte di stato
| SW1 SW2 | Descrizione |
| 90 00 ore | Comando corretto |
| 61 XX | SW2 più byte di risposta disponibili |
| 62 83 ore | Applicazione bloccata in modo permanente |
| 63 00 ore | Verifica fallita |
| 63 C.E. | X tentativi rimasti |
| 67 00 ore | Lunghezza dei dati errata |
| 68 81 ore | Canale logico non supportato |
| 68 82 ore | Messaggistica sicura non supportata |
| 69 84 ore | Dati non validi |
| 69 82 ore | Stato di sicurezza non soddisfatto |
| 69 85 ore | Condizioni d'uso non soddisfatte |
| 69 88 ore | MAC errato |
| 6a 86h | P1 P2 errato |
| 6a 80h | Valori errati nei dati di comando |
| 6a 82h | File non trovato |
| 6a 81h | Applicazione bloccata |
| 6a 83h | Record non trovato |
| 6a 84h | Spazio di memoria insufficiente |
| 6a 88h | Dati di riferimento non trovati |
| 6D 00h | INS non valido, comando non esistente |
| 6E 00h | Classe non valida |
Riferimenti
I documenti seguenti sono serviti come riferimento per la specifica funzionale ACOSJ:
- Specifica della scheda GlobalPlatform versione 2.2.1
- GlobalPlatform Card API versione 1.6
- Java Card 3 API, edizione classica versione 3.0.4
- Specifiche Java Card 3 Platform Runtime Environment, Classic Edition versione 3.0.4 settembre 2011
- Specifiche Java Card 3 Platform Virtual Machine, Classic Edition versione 3.0.4 settembre 2011
- GlobalPlatform Linee guida per la mappatura delle carte di GP esistenti v2.1.1 Implementazione su v2.2.1 Versione 1.0.1
Garanzia
Condizioni di garanzia
- Un prodotto nuovo acquistato nella rete di vendita Alza.cz è garantito per 2 anni. Se hai bisogno di riparazioni o altri servizi durante il periodo di garanzia, contatta direttamente il venditore del prodotto, devi fornire la prova di acquisto originale con la data di acquisto.
- Sono considerati in conflitto con le condizioni di garanzia, per i quali la richiesta di risarcimento potrebbe non essere riconosciuta:
- Utilizzare il prodotto per scopi diversi da quelli previsti o non seguire le istruzioni per la manutenzione, il funzionamento e l'assistenza del prodotto.
- Danni al prodotto causati da calamità naturali, intervento di persona non autorizzata o danni meccanici per colpa dell'acquirente (ad esempio durante il trasporto, pulizia con mezzi inappropriati, ecc.).
- Usura e invecchiamento naturali dei materiali di consumo o dei componenti durante l'uso (ad esempio batterie, ecc.).
- Esposizione a influenze esterne avverse, come luce solare e altre radiazioni o campi elettromagnetici, intrusione di fluidi, intrusione di oggetti, sovratensione della rete elettricatage, scarica elettrostatica voltage (compresi i fulmini), alimentazione difettosa o tensione di ingressotage e la polarità inappropriata di questo voltage, processi chimici come alimentatori usati, ecc.
- Se qualcuno ha apportato modifiche, alterazioni, alterazioni al design o adattamenti per cambiare o estendere le funzioni del prodotto rispetto al design acquistato o utilizzando componenti non originali.
Documenti / Risorse
![]() | Scheda Java ACOSJ-G |
Riferimenti
- Manuale d'usomanual.tools


