2015-01-26 12 views
5

ho notato qualche comportamento molto strano sulla mia smartcard (NXP J2E145, J3A081, J3C145 con un lettore di Omnikey 5121): una perdita di potenza subito dopo la chiamata del metodo JavaCardJavacard - perdita di potenza durante la raccolta dei rifiuti

JCSystem.requestObjectDeletion() 

può danneggiare la scheda: dopo circa il 10% di tale interruzione di corrente il comando ATR è molto lento (1000ms) e non ottengo risposta a nessun altro APDU (selezione applet, autenticazione gestore carta ecc.).

So che il comportamento di requestObjectDeletion() dipende dalla specifica implementazione del fornitore, quindi la mia domanda è molto ampio e aperto ...

è spazzatura collezionismo trasformati "normalmente" in una singola transazione?

C'è qualche raccomandazione "ufficiale" di NON chiamare la richiestaObjectDeletion() in caso di una possibile perdita di alimentazione?

Avete esperienza simile con le schede di NXP?

EDIT:

  • JCSystem.isObjectDeletionSupported() == true su tutti i miei smartcard.
  • Quando si tenta di collegarsi al applet gestore della carta di una carta danneggiata, il guscio JCOP in Eclipse riporta questa:

    ATR: 3BFB9600008131FE454F4450204D41502053414D3E

    ATR: T = 1
    jcshell: problemi Unknown con terminale. Ultimo errore del terminale: impossibile eseguire la richiesta a causa di un errore del dispositivo I/O.

+0

hai controllato booleano JCSystem.isObjectDeletionSupported()? –

+0

In realtà non l'ho fatto, ma il garbage collector normalmente funziona bene e non fa eccezione. La scheda sta facendo qualcosa dopo aver chiamato requestObjectDeletion (la spia sul lettore lampeggia) per circa 5 secondi e la EEPROM è stata pulita (l'ho verificata). L'unico problema è quando estraggo la carta dal lettore nel mezzo di questo processo. Quindi la carta sembra essere rotta, a volte. – vojta

+0

Vedere "Modifica", per favore. – vojta

risposta

4

Beh, penso che potrebbe essere un bug di implementazione. In generale, la garbage collection di solito non è mai necessaria e mai utilizzata su smartcard. Dovresti evitarlo in qualsiasi circostanza con una buona progettazione dell'applet. Perché in questo modo non si verificano mai problemi di memoria, che sono dannosi per una smart card installata una volta nella sua vita e che sarà utilizzabile per il resto del suo ciclo di vita. Garbage Collection richiede solo troppo tempo e forse perché il programmatore del sistema di carte non si aspettava che accadesse al di fuori di un ambiente sicuro.

+0

Chiaro il garbage collector esattamente una volta durante l'intero ciclo di vita della mia applet. Non è un problema cruciale per me, potrei evitarlo facilmente. D'altra parte, penso che tutte le funzionalità fornite dovrebbero essere sicure e funzionanti. Le smartcard vengono utilizzate soprattutto come token sicuri. Se c'è un tale errore nelle schede NXP, deve essere descritto con enormi lettere rosse sulla prima pagina di tutta la loro documentazione. Nessuno lo sa, cosa è successo a EEPROM dopo una raccolta di immondizie così fallita! Ho chiesto a NXP e posterò la loro risposta nel momento in cui l'ho. Grazie per la tua risposta, Paul! – vojta

+0

@vojta NXP ti ha risposto? Ho inviato un sacco di e-mail, ma nessuno ha risposto! –

+0

NXP comunica perfettamente. Hanno sempre risposto. Prendo solitamente alcune settimane, ma non vedo motivo di lamentarmi. – vojta

Problemi correlati