Cómo cargar mediante programación un applet de Java Card (un archivo .ivs) utilizando Visual C ++ / PCSC

StackOverflow https://stackoverflow.com/questions/3779557

  •  04-10-2019
  •  | 
  •  

Pregunta

Soy currentlly en un proyecto que me obliga a cargar una aplicación JavaCard la aplicación (un .ivs) archivo a un JavaCard. Nuestro marco se basa en Visual C ++ y PCSC, por lo que necesitamos para cargar el mismo subprograma a una serie de JavaCards. ¿Alguien sabe cómo esto puede ser procesado? Es decir, ¿dónde debo empezar. Gracias!

¿Fue útil?

Solución

Tiene razón en que esto no es una tarea trivial.

Existen diferencias entre los diferentes JavaCards, pero por lo general se necesitan hacer 4 cosas:

  • inicializar comunicaciones seguras con la tarjeta (debido a que muchos JavaCards son las tarjetas de "plataforma mundial" que requieren un canal seguro)
  • enviar un comando que dice "yo quiero instalar un applet"
  • enviar los datos binarios para el applet para ser instalado
  • enviar un comando para "instantiate" el applet después de enviar los datos binarios

Me gustaría recomendar el uso del plugin de Eclipse para instalar el applet al principio, porque se puede ver la APDU generada por el plugin para hacer los pasos anteriores. Una vez que sepa los comandos APDU debe enviar para instalar el applet, puede enviar directamente a estos comandos usando la interfaz de PCSC de su código C ++ para automatizar la instalación de un gran número de tarjetas.

Mi empresa realiza un navegador web plugin llamado tarjeta jefe para hacer este tipo de cosas (comunicaciones de la tarjeta a través de PCSC) desde un navegador - hay una página web se puede utilizar donde se puede escribir su propio APDU y los envía a la tarjeta en la URL siguientes aparatos:

https://cardboss.cometway.com/content.agent? page_name = Tarjeta + Protuberancia + Lab

Si utiliza nuestra herramienta, el script de instalación del applet debería ser algo como esto (nota que este es un guión para una tarjeta de JCOP utilizando las teclas JCOP el defecto)

    MESSAGE BOX Installing applets...

    INIT CHANNEL 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f, 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f

    // INSTALL CAP: 
    SEND 80 E6 02 00 1D 10 A0 00 00 00 09 00 03 FF FF FF FF 89 10 71 00 01 08 A0 00 00 00 03 00 00 00 00 00 00 

    // LOADING CAP: 
    SEND 80 E8 00 00 FA C4 82 01 03 01 00 25 DE CA FF (snip, I removed a bunch 
of binary data representing the cap file to shorten this post, and you might
need multiple SEND commands because of limits on the size of APDUS)

    // INSTANTIATING Applet
    SEND 80 E6 0C 00 1E 05 63 6F 6D 65 74 07 63 6F 6D 65 74 00 01 05 00 00 00 00 00 01 00 06 C9 04 68 2C 00 03 00 00 
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top