Hace 17 años | Por --877-- a kriptopolis.org
Publicado hace 17 años por --877-- a kriptopolis.org

Interesantísimo artículo de Fernando Acero en Kriptópolis donde se demuestra que el sistema empleado por la Fábrica Nacional de Moneda y Timbre para implementar el sistema de firma electrónica en España no ofrece ninguna de las garantías que se le deberían suponer "a priori" a este tipo de sistemas.

Comentarios

pablo.serrano

El profesor Lucena, cómo no, arrojando luz sobre el asunto: una cosa es un certificado, que es la firma de la FNMT de la clave pública/DNI, y otra cosa es la clave privada asociada -la que usamos para firmar-.

El problema es que no se pueden mezclar churras con merinas: yo debería poder acceder a cualquier certificado, en eso no hay riesgo; pero las claves privadas no se deberían guardar protegidas por una única contraseña (si lo he entendido bien). Pero esto... ¿es problema de PKI?

pablo.serrano

"A toro pasado todo el mundo sabe las cosas": qué cierto, como aquello de que es peor la falsa sensación de seguridad que no tener seguridad ninguna.

"Instalar" un certificado: ¿por qué narices llaman a las cosas por lo que no son? He ahí el problema. Pero parece que el fallo no es la arquitectura PKI, sino la implementación de Mozilla. Lo cual, en todo caso, es una puntualización minúscula al lado de la importancia de airear este tipo de cosas.

a

O los responsables de la Fábrica Nacional de Moneda y Timbre son unos torpes ignorantes o lo es Fernando Acero.
Parece ser que el equivocado es FA, pero es que en temas de cierta trascendencia, conviene ser un pelín más prudente. Mas que empanada mental, parece que simplemente habla haciendo gala de una enorme seguridad rebatiendo nada menos que a la FNMT sobre un tema que no domina.
Es una metedura de pata de las gordas.
FA también escribió otro artículo polémico, sobre un nuevo método de cifrado propuesto por él mismo, basado en resistencias eléctricas que, afirmada ser más seguro y sencillo que la criptografía cuántica, pero no convenció. Se publicó en Kriptopolis y en Barra Punto.

kismet

Vale, vale, buen intento, pero lee bien la Ley a la que haces referencia:

Definiciones:

e) "Dispositivo de creación de firma" : es un programa o un aparato informático que sirve para aplicar los datos de creación de firma.
f) "Dispositivo seguro de creación de firma" : es un dispositivo de creación de firma que cumple los requisitos establecidos en el artículo 19.

Vayamos por partes, como dijo Jack el Destripador.

¿Quién te ha dicho que el dispositivo de creación de firma ha de ser el ordenador del usuario y no el sistema operativo que la genera mediante soft?. Es evidente que esta apreciación de que el hard en tarjeta es tan bueno, que ha de ser lo único que sirva, juega una mala pasada a mucha gente. Lo mismo que pesar que el dispositivo de firma ha de ser el ordenador y que por ello, no es seguro ni se
puede certificar.

Ya hemos visto que un dispositivo de creación de firma puede ser un programa o un aparato informático y tanto si es aparato o programa, será seguro, si cumple con los requisitos de Artículo 19. Requisitos que cumplen a la perfección los sistemas basados en software, por lo que no creo que sea necesario abundar en el tema.

Ahora bien, se dice en la Ley que han de estar certificados, en nuestro caso por el CNI a través de su Centro Criptológico Nacional. Para tu información hay varios sistemas "seguros de creación de firma" que son programas y que están perfectamente certificados. Incluso hay muchos, que los usuarios consideran de "hardware" no son otra cosa que sistemas embebidos que funcionan por software de "forma especializada". De todos modos, aquí podrás ver sistemas de software certificados por el Centro Criptológico Nacional y que usan sistemas de generación de firmas y que por lo tanto, son considerados seguros:

http://www.ccn.cni.es/productos.html.

Para tu información, la mayoría de los sistemas operativos y en especial, los más utilizados, disponen de certificación de seguridad, en base a sus funcionalidades critográficas (entre ellas, ser dispositivo seguro de creación de firma) y todo hay que decirlo, tienen calificaciones bastante elevadas como AEAL 4+. Por mi trabajo estoy cansado de usar programas con certificación de seguridad y que
usan firma digital y en función de la certificación lo que se limita es nivel de secreto que pueden manejar.

Mira lo que pone aquí:

http://www.lukor.com/ordenadores/noticias/0601/13124440.htm. (Ojo con el artículo, que tiene truco en el comentario sobre la seguridad de los sistemas Linux puesto que consideran el sistema y todas las aplicaciones, mientras que en el caso de Windows, solamente el sistema operativo pelado, pero a efectos de lo que nos ocupa, creo que es lo que necesitabas).

¿Qué es lo que crees que está certificando el CNI de Windows? ¿que no se cuelga cuando juegas a matar marcianos?, evidentemente no, lo que certifica es que cumple con determinados estándares y que por lo tanto, es factible de ser utilizado en un entorno de seguridad, tanto para crear firmas como para muchas otras cosas relacionadas con la criptografía y seguridad, en los entornos más variados de la Administración y empresas.

Creo que con esto ya lo tienes bastante demostrado que Windows, a pesar de sus fallos y errores de programación, es un sistema de software seguro de creación de firma (si quieres, como hice yo en su
momento, te puedes repasar todos los documentos de la certificación), en base a lo que está establecido en la legislación vigente y queda demostrado además que está certificado por el que tiene que certificar, es decir el Centro Criptológico Nacional, el mismo que ha certificado el e-dni.

Que es más seguro un sistema basado en hardware, pues bueno, para gustos los colores, pero con la Ley en la mano, no hay diferencias en su uso y consideración. Hay un principio básico de derecho que dice, en donde la Ley no distingue, no cabe hacer distinción y como ves aquí no se hace ninguna. ¿Ves que en la definición que hace la Ley del sistema seguro de generación de firma ponga que tenga que estar basado en hardware?. Evidentemente no, simplemente dice que ha de cumplir las condiciones de un artículo 19.

Ahora otra pregunta interesante para mentes inquietas, una vez firmado el documento ¿cómo sabe el juez que ha sido creado con un dispositivo seguro de generación de firma si en teoría la firma es la misma, con independencia del dispositivo que se genere.

Es decir, ¿cómo sabe el Juez que se ha generado con un Linux o con un Window suponiendo que el Linux no estuviera certificado y alguien argumentase que la firma no es equivalente a la manuscrita?. La resopuesta es que no puede. Desgraciadamente, en este caso la dura carga de la prueba recaerá en el que sostenga la complicada tesis de que una firma no es válida por haber sido generada por un dispositivo de firma no certificado y eso con solamente un documento firmado digitalmente en la mano, no se puede demostrar. ¿has pensado en ello?, pues creo que el legislador tampoco, lo que demuestra que el "molaware" campeará a sus anchas por esta España durante años, para mayor indefensión de los usuarios.

Por cierto, estais metiendo la pata a varias bandas y en varios foros, el prestigio que está en juego es el vuestro, lo digo por vosotros ;-).

Mi señora lejos de poder dormir tranquila se está horrorizando de lo cabezota que son algunos y se preocupa mucho ante la posibilidad de que un Juez ante la lectura de algunas de las burradas que se han dicho en algunos foros, con relación a mi artículo, pueda llegar a una conclusión equivocada. No quiero ni imaginar que alguno pensase que la firma electrónica basado en un dispositivo de firma basado en soft o no es avanzada o no está reconocida. Afortunadamente, parece que a los notarios, usuarios de firma electrónica por excelencia, sí les interesa el tema.

http://www.elnotariado.com/ver_nota1.asp?id_noticia=2946

kismet

Estimados amigos:

Aquí está la aclaración del editor sobre el problema del título de mi artículo, espero que con esto quede zanjado el problema. Creo que ha hecho un esfuerzo, que debería haber sido innecesario, puesto que de mi artículo más importante que la forma, es el fondo, que creeo que está bien explicado y no tiene vuelta de hoja.

http://www.kriptopolis.org/node/2333#comment-6836

Un saludo, Fernando Acero

kismet

Kiko, gracias por el comentario y por haberlo escrito aquí también.

A tu comentario "Pero, como ya te he dicho en Bulma, inferir de ello que el "diseño del sistema PKI compromete la firma digital" me parece, como mínimo, muy gratuito. ", como ya he dicho en varias ocasiones, en mi artículo no aparece esto que dices en ninguna parte que no sea el título, pero como también he dicho, el título fue cambiado por el editor de Kriptópolis, por pensar que "GRAVE FALLO DE SEGURIDAD CON CERTIFICADOS DIGITALES, FRUTO DE UN ERROR DE CONCEPTO EN EL ESTÁNDAR PKI" era muy largo. ¿Te parece más correcto este?

Pero yo no puedo estar de acuerdo al 100% con tu comentario: "Lo que compromete la firma digital es el mal uso de las claves (en un 99,99% de los casos derivado de un desconocimiento de las herramientas por parte del usuario). ". Si bien es cierto y que es posible que este problema no se hubiera producido de forma masiva con la suficiente formación de los usuarios, no es menos cierto que tampoco se produciría si para firmar un documento fuera necesaria obligatoriamente una contraseña asociada a la clave privada del certificado y eso estiviera cláramente establecido en el estándar ¿costaba tanto?. El estándar permite algo, que en teoría, si queremos un elevado grado de seguridad, no se debería permitir, dejar esa responsabilidad en manos de los usuarios, no deja de ser una postura cómoda, al tiempo que peligrosa, como se ha podido comprobar. Que compromete, o que no compromete la seguridad del sistema, supongo que dependerá del lado en el que te encuentras (firmante o receptor) y lo que te juegues con ello. Como he comentado, las responsabilidades jurídicas o penales de un documento firmado digitalmente son ilimitadas, por lo que no debería ser posible salvo en el caso extremo que he dicho... entregando clave privada y contraseña. Yo sostengo que esta cautela es algo que debería haberse plasmado en el estándar. Ya que no solamente hay que ser bueno, sino también hay que parecerlo, sobre todo, en este tipo de aplicaciones que se basan en la confianza. ¿pensarías lo mismo si este escrito estuviera firmado por mi señora, te aseguro que puedo hacerlo. Pero esto puede que no parezca un argumento suficiente por lo que usaré otro que creo más contundente.

Si yo estoy equivocado y mucha gente sabía de esto, etre ellos parece que también estabas tu ¿cómo se explica que nadie haya intentado hacer entrar en razón a todos los organismos públicos españoles que aconsejaban o que incluso obligaban, a "instalar" más de un certificado en un contenedor, perfil o navegador (como lo quieras llamar)?. ¿Cómo se explica que una cosa tan importante no se encuentre en las preguntas y respuestas más frecuentes? ¿negligencia? ¿error?, puedes valorarlo como quieras, pero el caso es que no está, cuando el problema existe.

Que yo sepa nadie, absolutamente nadie, ha dicho que eso era un peligro y tu tampoco lo has hecho. Al menos, yo he tenido la vergüenza torera de molestarme en escribir (con mayor o menor fortuna) y a publicarlo para público conocimiento. Parece que he cometido un crimen que debería mercer castigo máximo, de agradecidos está el mundo lleno.

Lo que más me duele, es que después de la andanada inicial, la mayoría de los atacantes ha reconocido si no todo, en una gran parte que tengo razón y en el 99,99 de los casos, la única pega que han mantenido, es tu caso es que el título no les parecía adecuado, cuando ya he explicado que no era mío. Pero también hay que decir que los que argumentaban esto, tampoco han justificado convenientemente este comentario lapidario y el motivo es que no se puede justificar, un sistema de firma o es seguro o no lo es, para que lo sea, en teoría he de tener la certeza de que nadie se puede hacer pasar por otros, si no dispone del la clave privada y la contraseña que debería tener asociada. El resultado de este ataque masivo a mi trabajo no ha podido ser más desastroso, creo que mucha gente ha pensado que el problema no existía... ya lo decía Goering... difama que algo queda.

En fin, gracias, aunque sea por atrasado.

kismet

Pablo, si lees lo que he escrito, verás que no es problema de Mozilla, esto también ocurre en Windows ya que los dos navegadores simplemente cumplen con el estándar, es decir, el estándar dice que los contenedores de certificados se han de comportar de esa manera..

¿por qué la seguridad de los usuarios ha de depender de la implementación de una aplicación?, puesto que si tengo 20 implementaciones buena y una mala, siempre podré cuestionar la firma de un documento alegando que se puede hacer con la mala. Si eso fuera así, siempre podría diseñar aplicaciones malévolas que se saltasen los "seguros" de las implementaciones buenas y como es lógico pensar, eso no debería ser.

Lo que yo digo es que el sistema debe ser intrínsecamente seguro, por ejemplo, mediante el diseño y uso de los certificados distinto al actual (por ejemplo, basado en PKCS#12, que es lo que hace el navegador Konqueror), de forma que sea a "prueba de tontos". Que si alguien quiere hacer una mala implementación por error, o deliveradamente con fines maliciosos, no pueda y que el usario solamente se tenga que preocupar de una cosa "NO ENTREGAR LA CLAVE PRIVADA CON LA CLAVE A NADIE".

Por lo demás es muy sencillo echar la culpa al usuario, sobre todo, cuando el 99,99% es lego en la materia.

D

Aqui el que mas y el que menos sabia que era un fallo de implementacion, no de diseño. Pero claro, a FA le gusta intentar liarla...

kismet

Bueno, esta no la he mandado yo, por lo que no contribuye a mi mala entropía, y sorpresa, también pasa a portada.

Bueno para los que me machacan, creo que les interesa algunas aclaraciones que hay en ahora Kriptópolis.

Que conste que esto lo he publicado con la intención de que nadie cometa el error de meter los certificados en un contenedor, pero parece que todo son pegas y que soy tonto por avisar. Algunos ya se centran en la calificación personal, por no tener mejores argumentos que su ignorancia, es su sino.

Ya se, ya se mi señora es tonta por instalar el certificado en el navegador, pues vaya, como el 99,9999% de los españoles que no asimilan que "instalar" un certificado en un navegador, es lo mismo que dar la clave privada con su contraseña y no lo asimilan, ya que nadie se lo ha dicho e incluso los han animado para hacerlo desde diversas web públicas, que hacen uso de la firma electrónica.

Me agrada ver que aquí hay gente muy lista que ya lo sabía, o mejor, que sabe como no caer en este tipo de errores tan tontos ¿verdad?, claro que a toro pasado todo el mundo sabe las cosas.

Muchas gracias al que me ha hecho autor de un sistema de cifrado basado en resistencias y que yo solamente comenté en Kriptópolis y defendí en algunos foros. Pues bien, ahora está pantentado y creo que va a comenzar a dar beneficios.... mecachissss, si hubiera sido yo ahora no estaría haciendo esto.

Saludos

josemaria

Yo repito que ni siquiera tengo claro que sea un fallo de implementación. El repositorio de Mozilla lo pone muy claro: son TUS CERTIFICADOS y no los de tu mujer o tús amigos. Es un repositorio personal protegido por una única contraseña. Si haces un uso indebido de el es problema tuyo y no de implementación.

josemaria

Y ya que estamos y para ahondar un poco más en el tema, he leído estos días un artículo bastante didáctico publicado en RedIris del cual extraigo este párrafo:

"Pues bien, a estos efectos, los art. 20 y 21 del RDL establecen un procedimiento de evaluación y certificación (equivalente al de los apartados 4 y 5 del art. 3 de la directiva) de la seguridad de los dispositivos de firma (procedimiento que ha sido objeto de desarrollo inicial a través de la Orden Ministerial de 21 de febrero de 2000, aun cuando no es todavía posible la obtención de la certificación). Esta calificación es absolutamente transcendente, como se desprende del mismo art. 3, relativo a los efectos jurídicos de la firma electrónica, precepto que otorga a la firma electrónica el mismo valor jurídico que la misma manuscrita, siempre que cumpla una serie de exigencias, entre ellas la de haber sido producida por un dispositivo seguro de creación de firma. Y se presume que el dispositivo es seguro si está certificado, presunción con que la que se evitan difíciles y costosas pruebas periciales para demostrar su seguridad ante un juez."

El texto completo aquí: http://www.rediris.es/rediris/boletin/57/enfoque3.html

josemaria

Creo que jsanjosem en uno de los comentarios de kriptópolis ha dado con
el eslabón que faltaba para aclarar este asunto y que a Fernando se le había
pasado por alto a la hora de plantear lo 'irrepudiable' del mecanismo que describía.
La firma electrónica hecha con un certificado digital instalado en tú
navegador no tiene equivalencia funcional con la firma manuscrita.

Repasemos la ley 59/2003:

En el punto II del preámbulo:

"Los certificados reconocidos constituyen una pieza fundamental de la
llamada firma electrónica reconocida, que se define siguiendo las pautas
impuestas en la Directiva 1999/93/CE como la firma electrónica avanzada
basada en un certificado reconocido y generada mediante un dispositivo
seguro de creación de firma. A la firma electrónica reconocida le otorga
la Ley la equivalencia funcional con la firma manuscrita respecto de los
datos consignados en forma electrónica."

Punto III del preámbulo (la clave del asunto):

"Con ello se aclara que no basta con la firma electrónica avanzada para
la equiparación con la firma manuscrita; es preciso que la firma
electrónica avanzada esté basada en un certificado reconocido y haya
sido creada por un dispositivo seguro de creación"

Punto IV del preámbulo:

El título IV establece los requisitos que deben reunir los dispositivos
de verificación y creación de firma electrónica y el procedimiento que
ha de seguirse para obtener sellos de calidad en la actividad de
prestación de servicios de certificación.

Título IV, Capítulo I, Artículo 24, Punto 3:

Un dispositivo seguro de creación de firma es un dispositivo de creación
de firma que ofrece, al menos, las siguientes garantías:
1. Que los datos utilizados para la generación de firma pueden
producirse sólo una vez y asegura razonablemente su secreto.
2. Que existe una seguridad razonable de que los datos utilizados para
la generación de firma no pueden ser derivados de los de verificación de
firma o de la propia firma y de que la firma está protegida contra la
falsificación con la tecnología existente en cada momento.
3.Que los datos de creación de firma pueden ser protegidos de forma
fiable por el firmante contra su utilización por terceros.
4. Que el dispositivo utilizado no altera los datos o el documento que
deba firmarse ni impide que éste se muestre al firmante antes del
proceso de firma.

Por último en el Artículo 27 hablan del procedimiento de certificación
de dispositivos para que sean considerados seguros

Para mi y con esto queda suficientemente demostrado que el procedimiento
descrito por Fernando no usa un dispositivo certificado (y por tanto
considerado por ley como seguro) y por tanto la firma no se considera
equivalente por ley a la firma manuscrita. Sú mujer puede dormir
tránquila

josemaria

¿Tan claro lo veis? Yo no acabo de verlo... a mi me parece que es un error provocado por un uso negligente del sistema y no por el sistema en si. Si no me fío de alguien ese alguien no debería de tener acceso a mi certificado y si lo he protegido con contraseña ese alguien no sólo ha debido de tener acceso al certificado (algo que tengo) sino que, además, debe de conocer mi contraseña (algo que se) para instalar mi certificado en su navegador... Si el certificado ya está instalado en mi navegador ha de saber la contraseña de mi cuenta de usuario y la del contenedor de contraseñas de mi navegador... Si yo he consentido en darle a alguien mi certificado y mi contraseña sería, a todos los efectos, como entregarle un poder notarial para que actue en mi nombre... No se, no se... yo no lo veo tan claro.

josemaria

Pero si lo tenías protegido con contraseña y te lo han robado no puedes hacer nada con el. Si no tenía contraseña es negligencia por tú parte... es como si llevaras la VISA con el pin escrito sobre ella con rotulador y la pierdes, vamos... Volvemos a lo de siempre: lo único que se le puede achacar a la adminsitración es falta de información... quizás debería de edudcar a los usuarios antes de hacer un uso masivo de certificados de usuarios pero, para mi, el estándar y la implementación son correctos.

D

#5: o se lo has dado, o te lo han robado y no te has dado cuenta. Pero como la contraseña sólo la sabes tú no te tienes que preocupar. O sí.

josemaria

Rinzewind: le has dado a alguien el certificado y eso, para mi, es negligencia. En la ventana de certificados de mozilla o de cualquier otra aplicación te lo deja muy claro: TÚS CERTIFICADOS. Si no es tuyo.

D

josemaria: el problema es que no has consentido en darle a nadie tu certificado y tu contraseña. La demostración del artículo es que se puede firmar un documento teniendo únicamente el certificado.

kiko

Exacto josemaria.

Yo diria que la implementación de mozilla podria mejorarse permitiendo añadir una passphrasse adicional por certificado (opcional). Así todo sería mas seguro.

Pero lo que es innegable es que poner tu certificado en el contenedor del mozilla de alguien del cual no te fias y luego "venir llorando" porque dicha persona puede acceder a tu certificado no és muy coherente. No haberselo dado cohone!

Pero repito, la implementación de mozilla podria mejorarse desde el punto de vista de la seguridad. Ahora bien, asumir que eso es un fallo de implementación ya es harina de otro costal.

kiko

Fernando, contesto aquí sólo para dejar constancia de que siento haberte llamado ignorante, ya te lo he dicho en Bulma, pero creo que habia de decirlo también aquí.

Tambien repetiré lo que he dicho en Bulma: tu artículo me parece FUD. Has comentado que estamos de acuerdo en que el problema viene derivado de un _mal uso_ por parte del usuario que no sabe lo que está haciendo (darle su certificado+clave privada a alguien que lo guardará en un contenedor que le permite hacer lo que quiera con dicha clave).

Estoy de acuerdo que el 99,99% de los usuarios lo harán sin ser conscientes de ello.

Pero, como ya te he dicho en Bulma, inferir de ello que el "diseño del sistema PKI compromete la firma digital" me parece, como mínimo, muy gratuito.

Lo que compromete la firma digital es el mal uso de las claves (en un 99,99% de los casos derivado de un desconocimiento de las herramientas por parte del usuario).

No he dicho nada que no te haya dicho ya. Como he comentado al principio, creo que debia decirlo tambien aquí.

kiko

Me explicaré un poco más, digo que confunde contenido con continente por la siguiente afirmación:

"En este punto quiero señalar que puedo elegir el certificado que quiera, es indiferente; si hubiera habido cuarenta, los cuarenta estarían disponibles para la firma, sin necesidad de conocer la contraseña asociada a ninguno de ellos"

El hecho es que la contraseña a que se refiere fernando no és mas que una passphrase que se usa para cifrar el certificado (o clave privada) y que realmente es "la chicha del asunto".

Cuando exportamos un certificado de estos lo protegemos con dicha passphrase, y solo puede leerse o importarse en una aplicación si conocemos dicha passphrase.

Cuando importamos dicho certificado en el Mozilla hemos de darle la passphrase que pusimos al exportarlo para poder leer el certificado contenido en el archivo importado.

La única protección que ofrece mozilla para dicho certificado es la contraseña del contenedor de certificados. La passphrasse que pusimos antes ya no sirve de nada aquí (se queda protegiendo la clave privada en el archivo que exportamos en su dia y acabamos de importar hoy).

Cuando alguien acceda al contenedor de nuestro mozilla tendrà acceso a todos los certificados que contenga, esto es: a sus claves privadas.

Dichos certificados no estan protegidos individualmente por ninguna contraseña, mozilla no los protegió individualmente. Punto. Por eso la afirmación de fernando no tiene sentido.

kiko

Fernando Acero tiene una empanada mental considerable, confunde contenido con continente por todos lados.

La clave está en el primero comentario, del profesor Lucena; que para quien no lo conozca és un experto reputado en temas de criptografia.

El problema de todo es que en la implementación PKI que ha hecho Mozilla han decidido proteger todos los certificados con úna única contraseña a nivel de contenedor. Punto. Por lo tanto cualquier persona con acceso al contenedor tiene acceso a todos y cada uno de los certificados que contiene.

El estándar PKI permite proteger con una contraseña diferente cada uno de los certificados, Mozilla no lo hace: "too bad".

Pero el problema és del mozilla, no del estándar PKI. Por cierto, mal que me pese, hay que reconocer que esto con Internet Explorer no pasa, se puede poner passphrase independiente para cada certificado (otra cosa es que la gente lo haga, pero poderse se puede).