Intentando replicar el comportamiento de una tarjeta inteligente sin éxito. ¿Que estoy haciendo mal?

2

Antecedentes: soy ingeniero de software y estoy empezando a investigar hardware de seguridad en mi tiempo libre. Estoy empezando con tarjetas inteligentes de contacto, que están definidas en la norma ISO 7816.

Logré crear un hardware para sondear la señal entre una tarjeta inteligente y un lector de tarjetas inteligentes y esto es lo que obtuve:

Enestasonda,D4esRST(Restablecer),D5es(I/O)yD6esCLK(Reloj).D2esVCCyD0esGND.EllectortieneD5contransistorpull-upaVCC.Estosedebeaque,segúnlanorma:

"Cuando tanto la tarjeta como el dispositivo de interfaz están en modo de recepción, el circuito eléctrico estará en el estado H".

La primera parte de la imagen de arriba muestra la fase de activación de una tarjeta, que es:

  • RST se pondrá al estado L
  • VCC será alimentado
  • La E / S en el dispositivo de interfaz se pondrá en modo de recepción, consulte 5.2.5.
  • CLK se proporcionará con una señal de reloj, ver 5.2.3

La segunda parte de la imagen muestra la fase reinicio en frío :

"Al finalizar la activación (RST en el estado L, alimentado por VCC, E / S en el modo de recepción en el dispositivo de interfaz, CLK con una señal de reloj adecuada y estable), la tarjeta está lista para un reinicio en frío". / p>

"La señal de reloj se aplica a CLK en el tiempo Ta. La tarjeta debe configurar I / O para indicar H dentro de 200 ciclos de reloj (retardo ta) después de que se aplique la señal de reloj a CLK. estado L durante al menos 400 ciclos de reloj después de que la señal de reloj se aplique a CLK. El dispositivo de interfaz ignorará el estado en la E / S mientras que RST esté en el estado L. "

Al final de la fase de reinicio, la tarjeta responde con un ATR (Responder para reiniciar)

Enelextremoderechodelaimagen,puedevercómoselevantaelsinalRSTyelrelojestáestable.ElATRseenvíacomounamatrizdecaracteres(representadospormarcosdecaracteres:

"un carácter (cuadro) consta de diez momentos consecutivos numerados del 1 al 10. Cada momento se encuentra en el estado H o en el estado L"

**Estaeslaparteenlaqueentroenlafasedeexperimentaciónylamayoríadelascosasqueestoyhaciendopuedenestarmal**

Intentéreproducirestecomportamientoutilizandoeldispositivomáscomercialqueconozco:unarduino.

Primero,creéuntemporizadordondemuestrolasseñalesIOyRST.Dentrodelcontroladordeltemporizador,creéunaespeciedeestadodemáquinaenelquedeterminéenquéfaseestoy,ytratodeescribirlosbytesenconsecuencia.Aquíestámiresultado:

Comopuedever,alfinal,ellectordetarjetasinteligentesintentarestablecerlonuevamente,yaque,poralgúnmotivo,noestárecibiendolarespuestaqueenvié:

Enestepunto,laseñalcreadaporunarduinoyporunatarjetainteligenterealesmuysimilar.Sinembargo,ellectordetarjetasinteligentesaúnrespondecon"tarjeta ausente o muda"

Mi circuito comparte una GND entre el lector smarcard y el Arduino, que está conectado a un USB en la misma computadora en la que se encuentra el lector de tarjetas inteligentes. La señal de E / S se genera a partir de uno si el IO arduino se conecta al lector de tarjetas inteligentes.

¿Hay algo que podría estar mal en la parte eléctrica? ¿Hay algún problema en compartir una GND con el Arduino y luego generar datos de ella?

simular este circuito : esquema creado usando CircuitLab

    
pregunta Filipe Rodrigues

0 respuestas

Lea otras preguntas en las etiquetas