116 meneos

Grave fallo de diseño en PKI compromete las firmas digitales

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.

etiquetas: pki, firma digital, bug
negativos: 2   usuarios: 116   anónimos: 0  
compartir:  twitter  facebook  tuenti  
  1. #1   ¿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.
    7  votos: 0   link
    el 28-05-2006 20:46 UTC por josemaria josemaria
  2. #2   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.
    7  votos: 0   link
    el 28-05-2006 21:20 UTC por RinzeWind RinzeWind
  3. #3   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).
    6  votos: 0   link
    el 28-05-2006 21:32 UTC por kiko kiko
  4. #4   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.
    6  votos: 0   link
    el 28-05-2006 21:51 UTC por kiko kiko
  5. #5   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.
    7  votos: 0   link
    el 29-05-2006 05:14 UTC por josemaria josemaria
  6. #6   #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í.
    7  votos: 0   link
    el 29-05-2006 06:02 UTC por RinzeWind RinzeWind
  7. #7   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.
    7  votos: 0   link
    el 29-05-2006 06:47 UTC por josemaria josemaria
  8. #8   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?
    11  votos: 0   link
    el 29-05-2006 07:03 UTC por pablo.serrano pablo.serrano
  9. #9   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.
    9  votos: 0   link
    el 29-05-2006 07:58 UTC por acastro acastro
  10. #11   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.
    7  votos: 0   link
    el 29-05-2006 08:39 UTC por josemaria josemaria
  11. #12   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.
    6  votos: 0   link
    el 29-05-2006 08:52 UTC por kiko kiko
  12. #13   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
    8  votos: 0   link
    el 29-05-2006 17:15 UTC por kismet kismet
  13. #14   "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.
    11  votos: 0   link
    el 29-05-2006 17:34 UTC por pablo.serrano pablo.serrano
  14. #15   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.
    8  votos: 0   link
    el 29-05-2006 17:47 UTC por kismet kismet
  15. #16   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í.
    6  votos: 0   link
    el 29-05-2006 18:27 UTC por kiko kiko
  16. #17   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   » ver todo el comentario
    8  votos: 0   link
    el 30-05-2006 14:36 UTC por kismet kismet
  17. #18   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.

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

    Un saludo, Fernando Acero
    8  votos: 0   link
    el 30-05-2006 20:52 UTC por kismet kismet
  18. #19   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 ;)
    7  votos: 0   link
    el 31-05-2006 08:46 UTC por josemaria josemaria
  19. #20   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í: www.rediris.es/rediris/boletin/57/enfoque3.html
    7  votos: 0   link
    el 31-05-2006 08:54 UTC por josemaria josemaria
  20. #21   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:

    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í:

    www.lukor.com/ordenadores/noticias/0601/13124440.htm. (Ojo con el   » ver todo el comentario
    8  votos: 0   link
    el 31-05-2006 14:52 UTC por kismet kismet
comentarios cerrados

menéame