Historias
Slashboxes
Comentarios
 

Análisis de la estructura interna del DNI-e

editada por mig21 el 20 de Marzo 2010, 22:40h   Printer-friendly   Email story
desde el dept. trasteando
En 48Bits Blog cuentan:Hace unos días fuí a renovar mi DNI. Me dieron uno electrónico y me ofrecieron un lector para operar en internet a cambio de recibir una charla. No dejó de sorprenderme lo mucho que insistía la chica de la charla en que el DNI, internamente, solamente contenía los mismos datos que se pueden leer en el soporte físico, más dos claves públicas, la de autenticación y la de firmado. Insistió tanto que hasta resultaba sospechoso. Su insistencia apoyada por mi paranoia me impulsó a ponerme a enredar un poco con el DNI y el lector, a ver se podía sacar, y fruto de ello este artículo en el que comparto con vosotros lo que he podido ver y en el que resumo lo que he aprendido leyendo sobre este tema.El texto completo en el blog y una versión más detallada en "Análisis de la estructura interna del DNI electrónico" por Javier Vicente Vallejo (pdf).

Historias relacionadas

[+] DNIe en Fedora 12 5 comentarios
Cuenta Juan Antonio Martínez (jonsito) en Kriptópolis:A raíz de un artículo en BarraPunto, y como reto personal, me propuse hacer funcionar el paquete que la DGP ofrece para Fedora 10 en mi Fedora 12. No sólo eso: además el procedimiento debía ser adaptable a cualquier distribución. En los comentarios también habla de que en el proyecto OpenSC están preocupados por una posible violación de la LGPL en el binario distribuido para OS X y se han propuesto esclarecer el asunto.
[+] El triste estado de los drivers del DNI-electrónico 26 comentarios
Cuenta NoAlWin en Kriptópolis: «Si vamos a la página del DNIe podemos ver que hay cosas bastante mejorables. Para empezar, no hay versión cifrada bajo HTTPS [...] En el caso de que alguien con aviesas intenciones hiciera un ataque man-in-the-middle [...] Por otro lado, la versión para Unix del driver sólo está disponible compilada. Los desarrolladores de OpenSC, para desincentivar la creación de módulos cerrados, obligan a que los módulos sean compilados para cada versión de OpenSC. Esto provoca que, o bien haya que usar versiones antiguas de OpenSC, o bien haya que recurrir a inventos. Aparte de eso también podemos ver que las versiones para las distribuciones que tienen soporte no son precisamente modernas[...] En MacOS X, por lo que veo, también hay problemas ya que pide una versión obsoleta de OpenSC. Lo primero que hice fue mandar un mail a las direcciones de correo de la web. Hace bastante de eso, y por ahora no he recibido respuesta, así que sirva este texto para ejercitar mi derecho al pataleo.»El artículo completo en El triste estado de los drivers del DNI-electrónico. Nada más escribir el artículo en kriptóplis ha recibido respuesta. En ella se asegura que se publicarán los APDU, los comandos para acceder al DNIe y el código fuente de los módulos pkcs#11, los usados para su integración en Firefox por ejemplo.
Este hilo ha sido archivado. No pueden publicarse nuevos comentarios.
Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • DNIe y puertas traseras

    (Puntos:3, Inspirado)
    por pobrecito hablador el Sábado, 20 Marzo de 2010, 23:33h (#1209844)
    No dejó de sorprenderme lo mucho que insistía la chica de la charla en que el DNI, internamente, solamente contenía los mismos datos que se pueden leer en el soporte físico, más dos claves públicas, la de autenticación y la de firmado. Insistió tanto que hasta resultaba sospechoso.

    Como si a las chicas que contratan para dar esas charlas les fueran a revelar las puertas traseras si las hubiera. Y luego aconsejarles negar mucho sin venir a cuento para que no las pillen.

    Recuerda: Nunca atribuyas a malicia lo que pueda explicarse adecuadamente mediante la estupidez.

    Por otro lado, aunque el estudio es un ejercicio interesante os tengo que recordar que el DNIe ha sido auditado y certificado por el Centro Criptologico nacional del CNI, si hubiera una puerta trasera seria algo mas complicado que un escaneo de la estructura de ficheros ISO7816.

    http://www.oc.ccn.cni.es/dni-e_es.html [ccn.cni.es]
  • El DNI electrónico es una porquería

    (Puntos:1, Interesante)
    por pobrecito hablador el Domingo, 21 Marzo de 2010, 08:11h (#1209856)
    Con el DNI electrónico se ha perdido una tremenda oportunidad.

    Para empezar no han publicado los fuentes de los drivers, por lo que en Linux dependes de un binario que no está disponible para todas las distribuciones. Y cruza los dedos para que funcione, porque lo más probable es que ese binario esté repleto de bugs y de problemas de seguridad.

    Yo para hacerlo funcionar tuve que ir a Windows, y lo primero y último que hice con él es solicitar un certificado de la FNMT, que sí funciona con Linux, sí se basa en estándares públicos y abiertos, y que además puedes guardan en un simple lapiz USB.

  • Hablando del DNIe...

    (Puntos:5, Inspirado)
    por Eismann (3918) el Domingo, 21 Marzo de 2010, 10:12h (#1209860)
    ( http://barrapunto.com/ | Última bitácora: Miércoles, 13 Diciembre de 2006, 14:22h )
    Una cosa que no me gusta y que sería mejorable es el tema de guardar los dos certificados con la misma clave. Yo preferiría que hubiese una contraseña distinta para el certificado de autenticación y para el de firma.

    A veces solamente necesitas demostrar que eres quien dices ser, pero tienes que meter la contraseña que tambien abre el certificado de firma.
    Si estás en un navegador, y suponiendo que no ha sido comprometido, te pregunta qué certificado quieres usar. Al margen de que tengas un troyano, o no sepas de que va el asunto y escojas la primera opción que te aparezca, en este caso funciona bien el asunto.

    ¿Pero que pasa por ejemplo en los cajeros que están empezando a poner y que permiten el uso del DNIe? Lo mismo meto la pata porque no sé como funcionan, pero si tienes que meter el DNI, meter tu contraseña para autenticarte, y dado que la contraseña es la misma que para la firma, ¿quién te asegura que el cajero no va a usar el DNI para firmar lo que le de la gana por tí?
    Y lo mismo que el cajero, pues cualquier programa que tú no controles, que al final, por uno razón o por otra van a ser todos.

    --
    Gracias a dios soy ateo.
    • Re:Hablando del DNIe... de faragon (Puntos:1) Domingo, 21 Marzo de 2010, 11:02h
      • Re:Hablando del DNIe...

        (Puntos:4, Informativo)
        por pobrecito hablador el Domingo, 21 Marzo de 2010, 12:07h (#1209870)
        creo que Eismann va mas por el hecho de que al estar las dos funciones unidas al mismo PIN y por la propia naturaleza de un sistema electronico no sabes realmente lo que estas firmando y recordemos que la firma digital tiene la misma validez legal que la manuscrita.

        La analogia en la vida real seria que enseñaran un papel diciendote, usted va a firmar esto y luego te pusieran una venda en los ojos mientras firmas.

        Vamos que no sabes si al meter la tarjeta en el cajero y el DNIe para sacar dinero estas firmando una hipoteca (por malicia del banco, de un empleado descontento o por troyano).

        Con un PIN separado para autenticacion y firma, al menos sabrias que no se esta firmando nada, solo verificando tu identidad.

        [ Padre ]
      • Re:Hablando del DNIe... de Eismann (Puntos:1) Domingo, 21 Marzo de 2010, 12:31h
      • 1 respuesta por debajo de tu umbral de lectura actual.
    • Re:Hablando del DNIe... de Eismann (Puntos:2) Domingo, 21 Marzo de 2010, 18:41h
    • Re:Hablando del DNIe... de Lock (Puntos:2) Lunes, 22 Marzo de 2010, 09:42h
    • Re:Hablando del DNIe... de Eismann (Puntos:1) Lunes, 22 Marzo de 2010, 16:36h
    • 3 respuestas por debajo de tu umbral de lectura actual.
  • Muy interesante

    (Puntos:3, Interesante)
    por JAM (999) el Domingo, 21 Marzo de 2010, 11:20h (#1209868)
    ( http://barrapunto.com/ )
    Interesante análisis, mi enhorabuena.

    Hace años en un trabajo anterior "hackeamos" las tarjetas de la máquina de café con un lector que permitía escritura. Simplemente hacíamos un backup del contenido de la tarjeta y cuando se gastaba el saldo hacíamos un restore. Me alegra ver que ésto tiene más seguridad :)
  • por vali (3575) el Domingo, 21 Marzo de 2010, 13:09h (#1209880)
    Muy buen artículo y con mucha información interesante. Ojalá todas las entradas en blogs fuesen así y no recopy+paste como muchos otros :)

    Dan ganas de renovar el DNI por si se les da por pensar que dar el lector y el CD es "demasiado" y dejan de hacerlo.
  • A ver, que me aclare sobre las claves

    (Puntos:1, Interesante)
    por pobrecito hablador el Domingo, 21 Marzo de 2010, 21:39h (#1209916)
    Te dan dos pares de claves publicas/privadas (public/private key pair), para usarlos en diferentes casos, que ellos mismos generan, y luego van protegidas con la misma clave (password).

    O soy gilipollas perdido y no entendi nada de esto cuando lo estudie o cuando he leido sobre el tema, o me estan tomando por gilipollas. Porque reutilizar passwords es malo, pero es que la unica garantia de que no abusen de una clave privada es que el propietario sepa que no la tiene nadie mas, como por ejemplo un tercero que la genero y cargo en la tarjeta.

    Por favor, que alguien lo confirme, a ver si me enterado bien o mal.

  • por zup (30370) el Domingo, 21 Marzo de 2010, 22:17h (#1209919)
    ( http://zup.madpage.com/blof )
    Muy entretenido de leer.

    Tengo una pregunta acerca de esta cosa y Linux... hace tiempo escribí una guía para debian (ver http://zup.madpage.com/blof/?p=78 [madpage.com] --> publicidad subliminal). En ese momento, la última versión de los paquetes del dni electrónico era la 1.4.6, que dependía de que opensc y libopensc2 fueran exactamente las versiones que se descargaban de la web (si apt las actualiza, el dni deja de funcionar).

    Hoy he visto que han publicado la versión 1.4.7 (aunque solo para Ubuntu, pero me imagino que puedo meterle el paquete a Debian). ¿Alguien sabe si actualizando esto opensc y libopensc2 también se podrían actualizar?
    --
    I have traveled across the universe and through the years to find Her. Sometimes going all the way is just a start...
  • por anv (15549) el Lunes, 22 Marzo de 2010, 11:23h (#1209963)
    ( http://barrapunto.com/ )
    El problema actual con el soporte de dni electrónico en linux es de versiones

    Ocurre que la versión más nueva del driver de la tarjeta(opensc-dnie) es 0.11.8 y las distribuciones modernas de Linux están usando 0.11.9. Para colmo, ni siquiera si nos direan un driver compatible con 0.11.9 estaríamos bien porque en cualquier momento surge un problema de seguridad con esta versión y viene una actualización, como ocurió con las 0.11.7... que dicho sea de paso es la única disponible en RPM.

    El problema es grave, porque si bien con un poco de trabajo podemos dejar funcionando el dni electrónico en Linux, en cualquier momento puede venir una actualización de seguridad que haga que deje de funcionar. Lo correcto sería que aportaran el código fuente al proyecto opensc para que así las versiones nuevas mantengan la compatibilidad.

    Justament en estos días había estado preguntando en la lista de opensc respecto de algunas ieas que había tenido, como por ejemplo hacer un wrapper que cargue en la versión actual de opensc pero que se encargue de cargar el driver binario que distribuyen sin dar problemas de versiones. Básicamente me dijeron que no dan soporte para drivers binarios, que si quiero hacer un driver nuevo que sea libre que me ayudan.
  • Esto no lo había visto ni me advirtieron de ello cuando me lo saqué. ¿Entonces ahora la renovación del DNI y de sus certificados internos son dos procesos independientes? ¿Hay que estar atento a la caducidad de ambas cosas y renovar la que toque?

    A ver si alguien tiene más información sobre el tema. No me ha parecido ver nada sobre esto en la web oficial...

    Un saludo
    --
    Estoy en contra de la pena de muerte... siempre que no sea yo el verdugo, claro.
  • por arivero (9768) el Martes, 23 Marzo de 2010, 21:53h (#1210182)
    ( Última bitácora: Domingo, 15 Agosto de 2010, 13:12h )
    vamos, si lo entiendo bien, lo normal de tener dos claves publicas es que una la usas para encriptar y otra para firmar. Pero lo de "verificar identidad" en serio que no se comprende.

    El lio de la firma es que se hace "al reves" que la encriptacion. Utilizas la clave privada para "desencriptar" un texto que contiene un fragmento conocido por las dos partes, y luego tu contraparte (de hecho, cualquier oyente) utiliza tu clave publica para encriptar el galimatias que has producido y comprobar si en el texto recuperado esta el fragmento conocido. Normalmente ese fragmento es un hash del documento que "firmas". Pero si te engañan para que ese fragmento sea un mensaje cifrado dirigido a ti, entonces resulta que lo estas descifrando y contandoselo a todo el mundo. Y me temo que podria haber cosas peores, incluso ataques para deducir tu clave privada.

    Conclusion: hay que tener un certificado para firmar y otro para encriptar. Asi que no me extrañaba que el DNI tuviera dos. Pero en ningun panfleto dice nada de encriptacion.

  • por arivero (9768) el Martes, 23 Marzo de 2010, 22:48h (#1210188)
    ( Última bitácora: Domingo, 15 Agosto de 2010, 13:12h )
    Oye, ahora que me fijo, he leido tu documento y en ningun momento hablas de la clave publica. Se supone que la privada no sale de la tarjeta, pero la publica, o mejor dicho, el certificado firmado por la CA conteniendo tus datos y tu clave publica, deberia envianse a la contraparte ¿no?. ¿O es que la unica forma que tiene la contraparte de comprobar tu firma es conectarse a su vez al ministerio que sea, pasando tus datos y tu firma, y son ellos los unicos que tienen tu clave publica? Suena raro. Lo logico es que incluso puedas sacar tus certificados (solo con las claves publicas) y ponerlos en ./.ssh y sitios asi.
  • Re: Depende...

    (Puntos:1)
    por El Suscriptor Justic (13497) el Domingo, 21 Marzo de 2010, 17:51h (#1209895)
    ( Última bitácora: Viernes, 22 Octubre de 2010, 11:19h )
    Y luego utilizan esa confianza para invadir Irak o para crear la Sección Segunda.
    [ Padre ]
  • 7 respuestas por debajo de tu umbral de lectura actual.