Pages: [1]   Go Down
Author Topic: Lectura DNIe  (Read 1247 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola, muy Buenas.

Abro este post por que necesito un primer empujoncillo para leer los datos públicos de un DNIe.
Llevo mucho tiempo buscando por internet y lo único semi-relacionado que he visto es esto.

Para mas info sobre lo estándares tenemos esto:
http://es.wikipedia.org/wiki/Documento_de_identidad_electr%C3%B3nico
http://es.wikipedia.org/wiki/ISO_7816

Lo único que he encontrado al respecto es esto:
http://www.makomk.com/2011/02/25/iso-7816-smartcard-interface-for-arduino/

que contiene este código .pde:
http://www.makomk.com/~aidan/iso7816_interface.pde

Lo he cargado y he realizado decenas de pruebas conectando un smartcard haciendo coincidir los pines tal y como pone en el código.

Parece ser que hace falta un circuito intermedio que traduzca las comunicaciones entre el Chip del DNIe y el Arduino, esto es lo que he visto al respecto:
http://www.elettroinnova.it/english
pero parece ser que es para un chip de tarjeta distinto a este.

Logged

Spain
Offline Offline
God Member
*****
Karma: 25
Posts: 958
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Uf... menudo berenjenal...

te dejo de aperitivo datos de lo que te va a hacer falta para el dnie :

1.- Que cumpla el estandar ISO 7816 (1, 2 y 3).
2.- Que soporte tarjetas asincronas basadas en protocolos T=0 (y T=1).
3.- Que soporte los estandares:
     – API PC/SC (Personal Computer/Smart Card)
     – CSP (Cryptographic Service Provider, Microsoft)
     - API PKCS#11

Y ademas te haran falta modulos criptograficos

Con el tema de velocidad serie, 9600 en adelante.

Si ya me peleo para instalarlo con un lector especifico y windows... no te digo para intentar leer por tu cuenta informacion encriptada...
Logged

CUIDADO !! MIS POST NO SON APTOS PARA MENORES. SI ERES MENOR DE 14 AÑOS DEBES DE LEERLOS ACOMPAÑADO DE UN ADULTO

Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Pues si que parece que tiene tela el asunto.

Meses buscando en Internet y cuando vengo al foro a preguntar me topo de casualidad con esto:
http://sourceforge.net/p/arduinosclib/wiki/Home/

Tiene buena pinta y si funciona (Envia comandos APDU) solo tendría que implementar los paquetes específicos del DNIe y listo.
Cuando tenga tiempo lo probare.

Si alguien se anima se agradece.
Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 32
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola rfken,
Yo también llegué a ese mismo site (no me acuerdo cómo hace unos días) y sinceramente creo que soy más novato así que lo que vengo a pedir es ayuda. Aunque en tu caso (DNIe) necesitas protocolo asincrónico, en mí caso, yo necesito el otro protocolo. Aunque entiendo que la base permite leer y escribir, debo admitir que no se suficiente de programación para implementarlo.

Actualmente tengo dos motores (via motor shield), dos LCDs y un montón de botones vía analógica conectados al Arduino. Todo funciona excepcional salvo que me gustaría incluir un módulo de Smart Card para evitar la supervisión constante del Arduino. Lo que me gustaría controlar es:

1. Leer si la tarjeta introducida fue programada para tal fin.
2. Leer cuando fue la última activación (quiero limitar el uso).
3. Escribir en la tarjeta en los espacios disponibles (o en los más antiguos) los eventos (registrar).

Ya conecté el circuito y ya soy capaz (con el ejemplo SCTest) de leer el ATR de distintas tarjetas.

Se agradece cualquier tipo de ayuda o dirección!!

PS: Aunque pudiera cambiar de tarjetas si es más fácil, me regalaron unas SLE4428 que son de 1Kbyte con protección de 1024x1 bit (adjunto la hoja técnica)


* Dibujo1.png (23.13 KB, 366x588 - viewed 30 times.)
* SLE4428.pdf (384.59 KB - downloaded 17 times.)
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Para mi caso tal y como comentaba el compañero Heke es un berenjenal, algo casi imposible.
Con el arduinosclib he conseguido ller el ATR de decenas de tarjetas pero de un DNIe no he podido.
Me harias un favor probándolo tu a ver si a ti te lo lee.

Pero lo que tu estas buscando es algo mas normal aunque costoso, eso si.
He encontrado esta información al respecto.
http://arduinocodedog.blogspot.com.es/2012/01/parallax-smart-card-reader-samples-for.html

En el peor de los casos existen tarjetas tipo eeprom que es como si conectaras un chip 24cxxx (eeprom) directamente al arduino para escribir y leer en el, para hacerlo mas seguro se podría implementar una rutina que cada vez que se use la tarjeta se vuelva a escribir entera de punta a punta con otros datos cifrados para que el usuario que intente experimentar no encuentre diferencia alguna.
Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 32
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@rfken acabo de probar con mi DNIe y el ATR que me deja tanto en SCTest como en SCTest2 (el segundo sólo sirve para tarjetas asíncronas) es un sólo byte en mi caso 3B. Las tarjetas SIM son de este tipo (asíncronas) y esta librería logra leer 22 bytes de ATR en ella.

Según el autor, el la librería esta todo lo que necesito para poder leer y escribir en ella, pero realmente me supera el código y no se cómo implementarlo. Con respecto al post que compartes, ya lo había visto. Intenté usar su código, pero lo único que recibo son puros bytes FF. Puede ser que él lo ha diseñado para 3 tipos de tarjetas (ninguna tan grande como la mía), que usa directamente un hardware más costoso (que no se si es un socket sobre un PCB o tiene algo escondido) o una combinación de ambas. Nuevamente, si supiera como ver las diferencias en el código lo intentaría.

Seguiré intentando a ver hasta donde llego...

Creo que la opción que me indicas es muy válida, la del EEPROM, de hecho, la descripción del producto dice "Intelligent 1-KByte EEPROM with Write Protect Function and Programmable Security Code (PSC)" así que supongo que si se podría. Si sabes de algún tutorial al que pueda hacer referencia (español o inglés) te lo agradecería. Dejo copia de las tarjetas que tengo!

* SLE4428.pdf (384.59 KB - downloaded 15 times.)
Logged

Pages: [1]   Go Up
Jump to: