Por jorgegv
Hace tiempo que tengo una duda de carácter fundamental respecto al DNIe, y es la que os voy a comentar a continuación. Previamente voy a exponer algunos antecedentes, pero vaya por delante que no pretendo sentar cátedra, sino sólo exponer cómo creo que funcionan la creación/generación del DNIe y el certificado CERES, para luego sacar mis conclusiones...
Generación de un certificado y clave CERES:
1. Al acceder a la página de la FNMT para generar certificados, se genera LOCALMENTE en el navegador desde el que se accede una clave privada RSA, con su correspondiente clave pública. La clave privada NO SALE NUNCA DEL NAVEGADOR (salvo que la exportemos manualmente más adelante).
2. El certificado (clave pública) asociada a la clave anterior se usa para generar una petición de firma de certificado, que se envía a la web de la FNMT, quien nos devuelve un código.
3. Nos presentamos físicamente en la administración con nuestro DNI y nuestra jeta, y el funcionario de turno, previa comprobación de todo y proporcionándole nuestro código, "da fe" de nuestra identidad ante la plataforma de la FNMT y valida nuestro certificado (lo que hace que la FNMT lo firme con su clave de CA).
4. Ya en casa de nuevo, y en el mismo ordenador de antes (porque alli esta la clave privada, por eso tenemos que usar el mismo ordenador original), podemos descargarnos nuestra clave pública, pero validada y firmada por la FNMT (=nuestro certificado de usuario). El navegador se encarga de asociar la clave pública y la privada, y a partir de ahi ya podemos exportar ambos, juntos o por separado.
La clave de la seguridad de todo este proceso es que la clave privada nuca sale de nuestra máquina, y nunca puede ser comprometida, a menos que nos roben el equipo físicamente. Es decir, si yo cifro algo con esa clave, NADIE puede descifrarlo. Y mas aún: si yo FIRMO algo con esa clave, eso garantiza mi identidad, y el no-repudio por mi parte.
La FNMT cumple la esencia de la criptografía de clave pública. Está diseñada para funcionar exactamente asi.
Para el DNIe sin embargo la cosa cambia:
El proceso es completamente equivalente al anterior (salvando las distancias), pero con una GRAN diferencia: los certificados Y LAS CLAVES PRIVADAS los expide la Policía, y nos dan una tarjeta que los contiene (el DNIe).
Sin embargo, no tengo forma de saber que nadie más tiene una copia de la clave privada. Es decir, no tengo ninguna garantía de que mi copia de la clave privada sea la ÚNICA copia.
Y si no tengo esa garantía, entonces la validez del DNIe como medio de autenticación (y por tanto del no-repudio) queda en entredicho.
Un ejemplo claro:
- Si yo firmo una hipoteca con mi certificado CERES, el propio procedimiento garantiza que SOLO YO puedo haberlo firmado, ya que SOLO yo tengo mi clave privada (que es la única que puede firmar algo en mi nombre). Mi clave privada NUNCA ha salido de mi ordenador.
- Si firmo una hipoteca con el DNIe, el procedimiento no garantiza la unicidad de mi clave privada (la Policia puede tener una copia, porque ellos me dieron el DNIe, y ellos lo programaron), y por tanto no garantiza la autenticidad de mi firma, porque un tercero puede haber firmado la hipoteca con su copia de MI clave privada.
Por eso de momento me fío mucho mas de mi certificado CERES.
Me gustaría que alguien (como por ejemplo Jonsito :-) me dijese donde me he equivocado en mi razonamiento y me dijese que me puedo fiar de mi DNIe, pero de momento soy muy escéptico.
En caso de que yo tenga razón, la inseguridad jurídica que esto plantea es tremenda, y el único motivo que se me ocurre para haberlo hecho así (y no algo seguro, equivalente a lo de la FNMT) es que la Policia quiera tener la posibilidad de descifrar contenido cifrado con el DNIe.
Por favor, sacádme de mi error :-)
J.
Entendido.
malcon29 Marzo 2011 - 6:50pm
Entendido.
Será cuestión de exigir a nuestros bancos por poner un ejemplo, que mejoren sus servicios para facilitarnos las cosas.
Gracias por lo de correos, bastante util.
Un saludo.
Gracias por tu completa respuesta
malcon28 Marzo 2011 - 12:22pm
Gracias por tu completa respuesta. Efectivamente entiendo que usar este tipo de tarjetas es bastante seguro. Sin embargo mi duda era si al necesitar una clave privada y una pública, la primera en el Pc y la segunda como queramos, en el caso del certificado sin tarjeta, no sería mas seguro que una tarjeta donde tendrán que estar recogidas ambas claves para funcionar.
Es cierto que es necesario el medio físico y el Pin (no, no es mi fecha de nacimiento...es mi fecha de nacimiento al reves..je, je, es broma claro).
Gracias de nuevo, pero tengo que decir que yo soy un pesao y he tenido que leer mucho para partiendo desde cero, ir entendiendo como va todo este tema, no quiero pensar lo que echará para atras a mucha gente.
Solo me queda una duda: creo que una tarjeta criptográfica como la mía y un DNIe no funcionan igual. Con la primera no puedo acceder a determindas páginas de bancos que he probado. Con el DNIe, no el mío que no tengo, he visto que si.
Un saludo.
Respuesta fácil
AgustínB29 Marzo 2011 - 7:52am
Imagínatelo que es igual que tu tarjeta de banco de débito o de crédito.
Si consideramos que aquí no hay negocio y por lo tanto no les interesa dar servicios a terceros, sería como que nada más puedes utilizar tú tarjeta en la red de cajeros que te ofrece tu banco. No habría la posibilidad de usarla en otros bancos cobrando una comisión por el servicio digamos, porqué no les interesa.
Pues eso que si detrás del desarrollo de la web no hay software (un programa) que quiera y pueda tratar con dichos certificados pues no se puede utilizar. Lo dicho, vas con tu tarjeta a un cajero de otro banco y te dice que "la operación no está disponible".
Yo tengo ambos, el DNIe y la Tarjeta Criptográfica CERES desde hace tiempo y básicamente he utilizado la segunda para hacer la declaración del IRPF, aunque posteriormente también la he utilizado para ver mi vida laboral y el DNIe casi que no lo he utilizado aunque ahora ya empiezan a existir aplicaciones y bancos que si que permiten su utilización. En concreto, hasta ahora creo que lo he utilizado únicamente para acceso a una cuenta gratuíta, para toda la vida, que ofrece correos y que permite acceder con el DNIe (es lo que llaman A.P.E. - Apartado Postal Electrónico, también información aquí)
¿Para qué quieres la clave privada?
AgustínB28 Marzo 2011 - 8:13am
Pero, exactamente ¿para qué quieres la clave privada?
Evidentemente es tú clave y estás en el derecho de conocerla.
Ahora no sé indicarte si la puedes ver directamente en la tarjeta sin exportarla.
Lo que sí que puedes optar por exportar el certificado incluyendo tu clave privada a un archivo.
Pero te comento que lo normal es que tú clave privada sea una ristra muy grande de caracteres hexadecimales, que muy difícilmente sabrás memorizar.
El caso es que las personas solemos ser el eslabón débil en la cadena de seguridad. Normalmente tenderemos a utilizar contraseñas fáciles de aprender y repetimos dicha contraseña en distintas ocasiones.
La tarjeta lo que realiza es generar una clave fuerte por tí en el momento de hacer la solicitud de la petición del certificado. Luego la Autoridad de Certificación (CA en inglés), en este caso la de la FNMT, te firmará dicha solicitud y te devolverá el certificado firmado por ellos. La CA estará certificando que cuando uses dicho certificado, para las opciones que haya sido firmado, eres realmente tú.
El certificado final, en tú caso, lo has recibido almacenado en una tarjeta criptográfica que está protegida por algo que tú tienes (físicamente la tarjeta) y algo que tú sabes (el PIN - nº de identificación personal).
En caso de pérdida de la tarjeta, si alguien intenta usarla y falla tres veces el PIN la tarjeta se bloquea protegiéndote. Es entonces cuando se tiene que usar el PUK, o clave de desbloqueo. Si un atacante tiene dicha clave pordría estar reintentando hasta descubirte el PIN.
Si optas por exportar tu clave privada a un fichero, estás desprotegiendo tu privacidad, ya que optarás muy probablemente por poner una clave fácil de recordar cuando te la pida en la exportación. Muy probablemente muchos recurren directamente a poner el PIN de la tarjeta. Imagínate que pones un PIN de cuatro dígitos del tipo de tú tarjeta de del banco. Alguien podría ponerse a atacar por la fuerza bruta hasta descubrir dicho PIN y obtener tús credenciales con todo lo que puede conllevar.
En definitiva, que como trato de explicarle a un compañero que no para de decirme que quiere exportar sus certificados del DNIe, que el lugar más seguro para tú clave privada es precisamente la tarjeta criptografica. Y la gracia de no tener que recordar una clave tan "rara y larga" es que tienes un PIN, que espero que no hayas cambiado por una muy sencillo del tipo fecha de nacimiento, o de tú mujer o tus hijos o similares.
Bueno, pues he revisado el certificado
malcon27 Marzo 2011 - 10:29pm
Bueno, pues he revisado el certificado, ya se como hacerlo y compruebo que tengo uno generado por la administración local que me da la tarjeta y donde solo veo información de la clave pública, nada que haga referencia a la privada y que me identifica como trabajador de la empresa pública.
Y un certificado FNMT valido para: Certificado del cliente SSL, certificado del firmante del correo electrónico y certificado del receptor del correo electrónico. Igualmente solo veo información de la clave pública.
¿Tendría que ver algo en relación con la clave privada del mismo?
Hola, gracias por responder
malcon27 Marzo 2011 - 9:32pm
Hola, gracias por responder.
El caso es así. A ti te dan en el trabajo un carnet profesional y un papel con el Pin y el Puk y que te busques la vida.
Con las aplicaciones de Ceres he podido usar el carnet con el certificado en mi lector, pero realmente no se que hay dentro. Una opción del programa es ordenar los certificados, con lo que puedo ver que hay 3 archivos dentro, pero nada mas, no se cual es cual.
Realmente no se como leer mi tarjeta para saber lo que tengo.
Aparte, supongo que será necesario que para un correcto funcionamiento esten dentro tanto la pública como la privada, no??
Deberían
AgustínB27 Marzo 2011 - 7:44pm
La verdad es que me extraña la pregunta.
Si tú tienes físicamente dicha tarjeta, tienes que poder ver el contenido y si tienes los certificados con la clave privada o sólo se importó el certificado con la clave pública.
También, mirando el certificado, te dirá para qué propósito se ha creado dicho certificado.
Una pregunta por favor
malcon27 Marzo 2011 - 6:37pm
Una pregunta por favor.
En el caso de una tarjeta profesional de administración con certificado FNMT instalado entregada al trabajador sin mas. ¿Las claves públicas y/o privadas se encuentran ambas en la tarjeta o como va el tema?
Gracias y un saludo.
Que le vamos a hacer....
jorgegv15 Marzo 2011 - 5:44pm
...yo soy asi de zoquete :-)
En serio, esa era la información que me faltaba. Y con este mensaje de ahora entiendo el anterior tuyo. Pensaba que te ibas por las ramas con troyanos y similares, y en realidad es que dabas por supuesto que conocia precisamente lo que preguntaba.
Gracias por la informacion.
Ahora ya si que me quedo mucho mas tranquilo.
Salud
J.
Joer...
jonsito15 Marzo 2011 - 5:06pm
... !!!! que yo estaba dando por supuesto el que todos sabíais que las claves del DNIe se generaban _DENTRO_ del chip !!!!
De hecho es uno de los requisitos de diseño... En la página web de la DGP de mi post anterior tenéis las especificaciones de los diversos perfiles de protección
Juan Antonio
Bueno, parece que hay algunas respuestas...
jorgegv15 Marzo 2011 - 4:05pm
Segun este enlace:
http://www.dnielectronico.es/Preguntas_Frecuentes/segur/index.html
En el punto 7, pone explicitamente "... Las operaciones más delicadas, como pueden ser la verificación de la huella dactilar, la generación de claves privadas o de firmas electrónicas, se realizan siempre en el interior del chip del DNI,...".
Con lo cual parece que desmontan mi teoría de que las claves se generan fuera de la tarjeta y son introducidas alli desde fuera.
Si las claves se generan dentro del chip, y no hay puertas traseras, entonces parece que esto se esta usando correctamente (dejando aparte las paranoias que mencionaba Jonsy: puertas traseras y similares).
Bueno, me gustaría encontrar algo mas de documentación mas tecnica que una FAQ en un portal del ciudadano, pero en fin, menos es nada.
Puede que esté equivocado pero ...
Alvaro de la es...15 Marzo 2011 - 1:59pm
Por lo que yo sé la pareja de claves se genera DENTRO del DNIe, y no salir de la tarjeta por diseño de esta. Otra cosa distinta es que el proceso de generación de claves, el registro y demás lo tengas que hacer en una comisaria.
Saludos
Esto es lo que quería oir
jorgegv15 Marzo 2011 - 3:56pm
...porque es la unica forma que se me ocurría para resolver el problema: que la clave privada nunca salga del DNIe, y este simplemente obedezca ordenes de firmar, exportar certificado, etc.
Tienes alguna referencia oficial que documente lo que dices?
Pues hablando de todo un poco
serhost215 Marzo 2011 - 10:39am
Quiero recordar lo que publiqué en el foro de criptografía hace tiempo:
http://www.kriptopolis.org/node/8123
Que el certificado de la fnmt aún no ha sido incluido en firefox y que podemos "votar" para que le den algo de prioridad:
https://bugzilla.mozilla.org/show_bug.cgi?id=435736
Vais a esa dirección, os registráis (tarda un rato en enviar el correo con la confirmación de registro) y luego votáis de nuevo en esa dirección:
Importance: -- enhancement with 15 votes (vote)
Le dais a vote y luego os lleva a otra página de vuestros votos, marcais el voto y le volveis a dar a votar o a actualizar mis votos (algo similar) y con eso se confirma el voto. Es un poco lioso, pero ayudará a incluir antes este certificado.
Sería importante que los navegadores incluyesen el certificado de la FNMT por defecto. No sé como quedó el tema de acceso a las listas de revocación de certificados, pero creo que han tenido que hacerlas públicas (que alguien me ilumine que no sé muy bien).
Además, si aquí hay expertos en certificación y quieren ayudar en las discusiones públicas de mozilla, vendría muy bien para adelantar todo el proceso, ya que como veis, van de penúltimos en la lista:
https://wiki.mozilla.org/CA:Schedule#Queue_for_Public_Discussion
Y perdonad que sea pesado repitiendo el tema :)
Pues no me habeis sacado de la duda
jorgegv15 Marzo 2011 - 9:33am
Hola Jonsi,
mi duda iba mas alla de troyanos, malwares y similares (yo uso Linux en todos mis ordenadores incluso los personales, asi que por ahi me toca menos). El problema que indico aqui es un ataque directo al funcionamiento del sistema, independientemente de la plataforma, entorno, y demas.
Mi duda es sobre el CONTROL de la clave: la criptografia de clave publica esta pensada para funcionar como con el certificado CERES: la clave privada nunca necesita salir al aire por un canal publico, solo la clave publica. Y esa es la gracia y lo bueno del sistema: que no hay que compartir claves para tener comunicaciones seguras, o pruebas de autenticidad.
Si la clave privada no la generas tu sino que TE LA DAN, se pervierte el nucleo de la seguridad del sistema, que es la garantia de que nadie tiene la clave privada mas que tu.
En el caso de CERES, la garantia es matematica: el sistema es seguro si se mantienen la integridad de la clave privada (y eso depende solo y exclusivamente de mi). En el caso de DNIe, me tengo que fiar de quien ha generado mi clave privada. NO depende solo de mi.
Que siga el debate. :-)
Dando la vuelta al argumento...
jonsito14 Marzo 2011 - 10:32pm
¿Pondrías la mano en el fuego aseverando la verdad de esta frase?.
¿Qué garantías tienes de que tu navegador, o tu sistema no haya sido troyanizado?
¿Estás seguro de que tanto el navegador como OpenSSL hacen lo que dicen?
Vamos a ver, si es por conspiranoias, pues deberemos asumir que todos los proveedores de chips del DNIe tienen un acuerdo secreto con la NSA para que exista una puerta trasera que "abra" el chip...
O siendo un poco más domésticos, pues podemos suponer que la Dirección General de la Policía se ha aliado con el Centro Criptológico Nacional para que éste último emita las certificaciones EAL4+ para el software y EAL5+ para el chip...
Lo que intento decir es que puestos a buscar las cosquillas se le pueden encontrar tanto al DNIe como a los certificados sofware generados desde el navegador. Yo no voy a poner la mano en el fuego por ninguno, pero si tuviera que decidir cuál es el más seguro, me iría al DNIe. Me resulta mucho más creíble la posibilidad de un malware (bien sea huevo de pascua, bien por contaminación de virus/troyano) en un PC doméstico, que no que un chip usado en medio mundo esté trucado
Existen por otro lado una serie de consideraciones indirectas, como por ejemplo, estudiar el código de otros "chips hermanos" como pueda ser el código de la tarjeta Ceres, y comparar el código con el driver original publicado por la DGP; o las sesiones informativas y talleres de Inteco para programadores del DNIe, o... pero reconozco que ante un análisis conspiranoico despiadado no son argumento convincente.
Y finalmente, me preocupa mucho más la seguridad del día a día que las supuesta manipulación en origen, tanto del DNIe como del certificado FNMT. Nunca sabes én qué equipo vas a meter el usb con el CertStore que contiene tus claves, o si algún malware va a capturar tu pin o los certificados y claves del USB.... en cambio el DNIe te lo llevas contigo cuando acabas la sesión... si te han cogido el pin, siguen necesitando el plástico para suplantarte.
Juan Antonio
Supongamos un entorno de "sala blanca"
jorgegv15 Marzo 2011 - 10:34am
El entorno que planteas, Jonsy, es el mismo para ambos sistemas (ambos pueden troyanizarse, ambos pueden sufrir ataques de virus y malware, etc.). Incluso la variable "estado actual de la tecnología PKI" es identica para ambos sistemas, y por eso no la analizo. Como son puntos en contra para ambos, los elimino de la ecuación para hacer mas clara la comparacion.
Voy a repetir la comparación, pero ahora de forma mas aseptica. Lo que yo estoy haciendo es un ataque conceptual, no practico, para demostrar que el sistema DNIe esta comprometido en origen, al margen de cualquier entorno de uso:
Caso a): utilización de un sistema de criptografia de clave publica, en el que el propietario de la clave NUNCA la cede a un tercero (cómo se las apaña para garantizar esto da igual, supongamos que es posible).
Solo con su clave publica, es posible establecer un canal seguro de comunicacion, o garantizar la autenticacion y el no-repudio. Como ya hemos dicho, esta forma de funcionamiento es la base de la criptografia PKI.
Caso b): utilización de un sistema de criptografia de clave publica, en el que el propietario de la clave privada la RECIBE de un tercero (en una tarjeta Smartcard, apuntada en un papel o en un contenedor PKCS#12, es indiferente).
En este caso, solo con su clave publica, NO ES POSIBLE establecer un canal seguro de comunicacion, o garantizar la autenticacion y el no-repudio. Y no es posible porque AL MENOS hay otro que PUEDE CONOCER la clave privada aparte del dueño. Ese tercero es el que nos ha dado la clave, claro.
Por tanto, la posibilidad matematica de intercepcion EXISTE, y por tanto el sistema no es seguro.
El motivo de este fallo es que en el caso b) el sistema de PKI se usa de forma perversa, y fuera de las especificaciones originales, que indican que UNICAMENTE el creador de la clave privada debe conocerla. SI ESTA PREMISA NO SE CUMPLE, EL SISTEMA ENTERO ESTA COMPROMETIDO, y por tanto la seguridad de cualquier sistema que "confie" en la seguridad del sistema b).
Una conclusion mas general: CUALQUIER sistema de criptografia publica en el que la clave NO SEA generada por el propio usuario, está comprometido en origen Y NO ES SEGURO.
Hasta aquí, el análisis es igual de válido para cualquier tipo de infraestructura PKI: DNIe, CERES, etc. Me dan igual los troyanos, los viruses, la autenticidad de OpenSSL, etc. El analisis es igual de valido aunque metamos todo ese "ruido" en la ecuación.
En el caso del DNIe, la premisa indicada no se cumple, ya que existe la posibilidad de que la policia tenga una copia de la clave privada que esta en mi DNI. Fijaos bien que no es necesario que exista la COPIA de la clave para comprometer el sistema; basta con que exista LA POSIBILIDAD DE LA COPIA.
De hecho (y esto es una valoracion personal, de momento no tengo información para confirmarlo/refutarlo), estoy CONVENCIDO de que la Policía tiene copia de todas las claves privadas de los DNIe de los ciudadanos. Pero ahi ya entran las paranoias de cada uno.
En resumen:
* En el caso de CERES, la imposibilidad de ataque es matemática, dada la definición matemática del problema y su proceso de uso.
* En el caso del DNIe, la imposibilidad del ataque queda supeditada al factor humano o físico: existe la posibilidad de sobornar a funcionarios, acceder al recinto donde se almacenan las supuestas claves privadas, etc. Indudablemente, será extremadamente dificil (no imposible), pero a cambio el botín es suculento...
Yo me fío mucho mas de una seguridad matematica, que de una seguridad física, y no digamos ya de la seguridad humana...
Nunca me lo había planteado de esa forma...
noe.puyal14 Marzo 2011 - 10:25pm
Pero es cierto que la mayoría de certificados expedidos por la Adm. Pública a excepción del CERES funcionan así.
Incluso mi certificado de trabajador público ha sido generado de esa forma, por una entidad de certificación que lo ha insertado en una tarjeta criptográfica.
Inquietante, cuanto menos Jorge.