Estas aquiContenido / Grave fallo de diseño en PKI compromete las firmas digitales
Grave fallo de diseño en PKI compromete las firmas digitales
Por Fernando Acero
Hace unos días, nuestro estimado José Manuel anunciaba que había tenido acceso a un documento en el que se demostraba que, bajo ciertas condiciones, se podían firmar digitalmente documentos a nombre de otras personas usando certificados X.509, como los expedidos por la Fábrica Nacional de Moneda y Timbre.
En este tiempo he intentado ponerme en contacto con responsables de las aplicaciones implicadas -como la Fábrica Nacional de Moneda y Timbre- y he generado los informes de "bugs" correspondientes para la gente de Mozilla, Enigmail y OpenOffice. El resultado de estas gestiones sería largo de explicar, pero la frase que mejor lo resume es "unos por otros y la casa por barrer" y por lo tanto, no entraremos en detalles.
Antes de empezar, quiero aclarar que aunque yo he descubierto el problema usando Linux (en mi casa no hay ni una licencia de Windows), este problema es común a todos los sistemas operativos, ya que se deriva del mismo estándar PKI, y así me han informado otras personas a las que les he consultado el caso, por lo que nadie le eche la culpa a Linux y sus aplicaciones, que ya estaba viendo la sonrisa de algunos. No obstante, para el que tenga curiosidad morbosa, aquí va mi configuración de sistema:
En mi ordenador, la última versión de OpenOffice (2.0.2), con el paquete de idioma castellano. Ni qué decir, que está funcionando sobre una Linux Mandrake 2006.0, actualizada al día de la fecha y con todos los paquetes relacionados con la seguridad, criptografía y firma instalados y configurados.
Aclaremos que OpenOffice (al igual que otras muchas aplicaciones que funcionan bajo Linux, como sistemas de mensajería instantánea o todas las derivadas de Mozilla, como Mozilla Suite, Firefox o Thunderbird), usa el sistema de firma digital de Mozilla. Por ello, para poder usar la firma digital con OpenOffice, es necesaria una instalación de una versión actualizada de Thunderbird, Mozilla Suite o Firefox. Estas aplicaciones se pueden usar de forma compartida con otros usuarios, o se puede disponer de diversas configuraciones para un mismo usario. Por ello, si se han creado varios perfiles en Thunderbird, Mozilla o Firefox, y se desea que OpenOffice utilice uno de ellos en concreto, se deberá modificar la variable de entorno MOZILLA_CERTIFICATE_FOLDER, para que apunte a la carpeta que contiene el perfil que se desea usar.
En mi Mozilla Suite con Enigmail, tengo instalados dos certificados digitales de la FNMT, el mío y el de mi señora, que se instalaron con la esperanza de poder enviar la declaración de la renta firmada por los dos, ya que es conjunta y concurrente, ya que no es posible firmar uno, cambiar a otro usuario y firmar el otro. Es decir, que tal como dice la Agencia Tributaria en su página web, han de estar ambos certificados presentes, tanto en Linux como en Windows.

Esto es lo que se puede ver en el gestor de certificados de Mozilla Suite, que es la aplicación que uso normalmente. Como se puede observar, hay dos certificados, el mío y el de mi amada esposa, que ahora queda a mi merced, como ave desvalida.
Veamos este curioso fallo de seguridad, paso por paso, fallo que algunos califican de "comportamiento normal" según el estándar PKI.
1) Para firmar el documento que tenemos en la pantalla del procesador de textos, es necesario usar la secuencia de mandatos Archivo | Firmas digitales de OpenOffice.

2) Si no hemos almacenado el archivo, OpenOffice avisará de que antes de firmarlo es necesario almacenarlo. Para ello, pulsamos el ratón sobre la opción "Sí" del cuadro de diálogo que nos aparece.

3) Seguidamente escribimos un nombre para el archivo (por ejemplo, prueba.odt) y hacemos "clic" con el ratón sobre el botón Guardar del cuadro de diálogo Guardar como.

4) Ahora nos aparece el cuadro de diálogo Firmas digitales. Todavía no aparecen los certificados disponibles, ya que la base de datos de certificados está cerrada con su contraseña. Para seguir, haremos "clic" con el ratón sobre el botón Agregar... de dicho cuadro.

5) Ahora OpenOffice nos pedirá la contraseña del almacén de certificados de Mozilla Suite, lo que se puede comprobar porque en la esquina superior izquierda del cuadro de diálogo de contraseñas aparece el texto NSS Certificate DB, que puede ser algo críptico para los no iniciados.

6) Hecho esto, nos aparecen los dos certificados que hay disponibles en el contenedor, el mío y el de mi amada señora. Selecciono con toda mi mala intención el de mi señora (que me parece más bonito para firmar un texto en latín) y del que no conozco la clave (es su certificado, no el mio) y pulso el botón Aceptar para consumar mi felonía. 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. Como diría Bart Simson: ¡Mosquis!, moooola.

7) A partir de ese momento, el archivo queda firmado por arte de magia y con la firma de mi señora, que de latín no tiene ni idea. Creo que puede ser el momento más adecuado para divorciarme y quedarme con todos los bienes gananciales en base a la libre donación firmada por mi señora ;) Al fin y al cabo, la legislación dice que no puede repudiar lo que haya firmado con su certificado. ¿Ella me ha entregado su contraseña? Pues no, no lo ha hecho, pero ella no sabe que no la necesito, por lo que se cree que está a salvo de mis maquinaciones.

8) Si una vez guardado el documento, cierro la aplicación y vuelvo a cargar el archivo, en la parte superior izquierda de la ventana que lo contiene me aparece un mensaje indicando que el archivo se encuentra firmado "prueba.odt (firmado)", mensaje que desaparece si modifico el archivo.

9) Si uso de nuevo la secuencia de mandatos Archivo | Firmas Digitales, me aparece un cuadro de diálogo de Firmas digitales que me indica que el archivo ha sido firmado adecuadamente por mi señora, lo que evidentemente no debería ser cierto bajo ningún concepto.

Para evitar este problema, una vez abierto el almacén de certificados y seleccionar uno de ellos, para poder firmar un documento debería ser imprescindible la solicitud de la contraseña asociada al certificado, lo que podría ser perfectamente posible desde el punto de vista técnico. Es decir, no se debería asumir la contraseña de la base de datos del certificados como la contraseña de todos los certificados que contiene, dejando firmar cualquier cosa simplemente seleccionando uno de los certificados presentes en el contenedor.
Pues bien, este grave problema de seguridad también se produce con cualquier aplicación que use un contenedor de certificados, ya sea bajo Linux o bajo Windows. ¿Cuáles son los motivos? Sencillo, son dos. El primero, dar cosas por sentado, y el segundo, pensar que es mejor la comodidad frente a la seguridad.
Se da por sentado que todos los certificados que habrá en un contenedor serán de una misma persona y que se encuentran bien protegidos por una única contraseña. Y por comodidad del usuario, una vez abierto el contenedor decidieron que se pudiera firmar cualquier documento sin necesidad de contraseña. Al fin y al cabo, la contraseña solamente estaba definida para el transporte seguros de certificados X.509, usando para ello un contenedor criptográfico según el estándar PKCS.12. Algo increíble, pero cierto.
Éste ha sido un craso error arrastrado por todos los implementadores de sistemas PKI, que decidieron no asociar el acto de firma de un documento a la introducción obligatoria de una contraseña asociada al certificado. Que sencillo hubiera sido que esto funcionase redondo.
Como se ha dicho, este problema está en el estándar PKI. Todos los implicados se han limitado a implementar los contenedores según ese estándar, con resultados tan desastrosos para la seguridad como el que hemos podido presenciar. Aclaremos también que aunque para reproducir el problema se han usado certificados de la FNMT, éste es un problema que afecta a cualquier certificado X.509, con independencia de su origen, no necesariamente de la FNMT.
Pero desde un punto de vista estricto, ¿podemos decir que no es cierto lo que de dice en la página de la FNMT en referencia a los certificados y la firma digital, al menos, en lo referente a asegurar la identidad del firmante?:
"Una firma digital es un conjunto de datos asociados a un mensaje que permite asegurar la identidad del firmante y la integridad del mensaje".
Pues es evidente que no es cierto, y que visto lo visto puedo cuestionarme con una duda razonable la autoría de una firma digital.
Es más, como no conozco el entorno en el que se realizó la firma del documento, gracias a este fallo puedo cuestionar, al menos con una duda razonable, si ese documento ha sido firmado realmente por la persona a la que pertenece el certificado. Puede que algunos no se den cuenta del problema, pero es más grave de lo que parece, si además, tenemos en cuenta lo que dice la legislación.
Como yo lo veo, el usuario solamente se debería preocupar de que no ha entregado a nadie su certificado con su contraseña, o que nadie tenga acceso a ello, es decir, que la seguridad del sistema debería garantizar que si no es en esas condiciones nadie pudiera firmar nada a nombre de otro. En algunos mensajes me han dicho que si tú metes tu certificado en un contenedor al que tiene acceso otra persona es que eres tonto, pero ¿alguien ha avisado de ello?. Pues no, es más, casi te animan a ello, como es el caso de la FMNT, o te obligan a ello, como es el caso de la Agencia Tributaria. A bote pronto, podemos pensar que en este momento, al menos en los matrimonios que presentan sus declaraciones de forma conjunta por Internet ya hay un montón de certificados comprometidos por esta circunstancia. Lo mismo, ocurre con los certificados que pueda haber en despachos de abogados, notarios, registradores de la propiedad, etc, y que sean compartidos en un mismo ordenador por varios profesionales del despacho. Si logro convencer a alguien de que instale su certificado en un ordenador, para ayudarle a mandar la declaración por Internet, listo, ya lo tengo a mi merced. Pues vaya seguridad del sistema...
En la página de las preguntas y respuestas más frecuentes de la FNMT se dice lo siguiente :
- A la pregunta ¿puedo tener más de un certificado instalado en mi navegador? se contesta: "Si, podrá tener más de uno. El número exacto dependerá de la versión de su navegador".
- A la pregunta: ¿Se puede tener el mismo certificado en varios navegadores? se contesta: "Si, una vez que se haya descargado el certificado, se puede instalar en varios navegadores utilizando las opciones de exportación e importación de certificados."
- A la pregunta: ¿Se puede tener más de un certificado por titular emitido por la FNMT Clase 2 CA? se contesta: "Las personas físicas titulares de un certificado solamente podrán tener un certificado en vigor emitido a su nombre. Las personas jurídicas podrán tener emitidos y en vigor, tantos certificados como representantes legales tengan."
La conclusión que se obtiene de analizar estas preguntas y respuestas es espeluznante. Por ejemplo, si en una empresa tienen que firmar un documento varios representantes legales de forma concurrente y simultánea, todos los certificados han de estar en el mismo contenedor, y con ello, a merced de cualquiera del que conozca la contraseña del mismo. Es más, ¿quién garantiza ahora que han firmado todos de forma voluntaria dicho documento y estaban presentes en el momento de la firma?. En ningún sitio se dice que introducir un certificado en un contenedor sea un peligro para la seguridad, tan grave como para permitir que otro firme a nuestro nombre y sin nuestro consentimiento. Es más, creo que todo el mundo piensa que el certificado sigue protegido por la contraseña, del mismo modo que es necesario introducirla para meterla en el contenedor.
En la página de la Agencia Tributaria ocurre casi lo mismo:
- Cuestión 2: ¿Puedo tener más de un certificado instalado en mi navegador? Respuesta: "Si, pero habrá que solicitar y descargar un certificado de la FNMT por cada declarante que vaya a presentar la declaración-liquidación por Internet desde dicho navegador."
Es decir, que me obligan a tenerlo instalado en el mismo contenedor si quiero declarar de forma conjunta, y no me dicen que es el error más grave que puedo cometer para comprometer mi seguridad. ¿Es que los expertos en seguridad de la FNMT y la AEAT no se dieron cuenta de este problema al establecer y publicar las operativas de firma?. No me lo puedo creer.
Durante este tiempo, algunos de los consultados me comentaron que esto no era preocupante y que con el e-dni esto que he comentado sería imposible, ya que el e-dni un contenedor de certificados que no permite instalar otros certificados adicionales. Pero desgraciadamente, yo no comparto esta afirmación de forma tan categórica; es más, que no se puedan instalar esos certificados habrá que verlo en el futuro, espero que nadie piense que es imposible simplemente por haber quitado la instrucción correspondiente en el sistema operativo de la tarjeta...
Desgraciadamente, en el e-dni subyace la misma filosofía de "comodidad frente a seguridad", que ha heredado del sistema PKI, y por ello se han tomado medidas tan peligrosas para el usuario como la de mantener la misma contraseña para el certificado de firma y de autentificación, lo que puede provocar que se firme algo cuando se está pensando que simplemente se está autentificando y, seamos prácticos, aplicaciones maliciosas y derivados del phishing puede haber mil gracias al e-dni y el desconocimiento de los usuarios.
La excusa para obrar de este modo tan poco ortodoxo con el e-dni era que, si se mantenían una contraseña para el contenedor y otras distintas para cada certificado, los usuarios se complicarían la vida y aparecería un maremagnum de pines y pukes. Es una forma de verlo, pero lo que está claro es que el usuario solamente se debería preocupar de no darle a nadie su e-dni con la contraseña y además, ¿para qué tanta historia con los pin y puk, si luego se deja un agujero de seguridad tan grave como el que se acaba de comentar?. Otro apunte, la mayoría de los usuarios actuales no serían capaces de saber si un documento que les llega ha sido firmado con un e-dni o con un certificado digital, lo que abre la puerta a otra serie de problemas, y algunos muy graves.
Toda la seguridad debe recaer en el sistema, no en las aplicaciones o en los conocimientos técnicos o de seguridad de los usuarios, que además pueden ser escasos en el caso del españolito medio. Al igual que en el caso que acabamos de comentar, simples errores de concepto en la definición del estándar, o situaciones no previstas, pueden provocar problemas graves con el e-dni. Un ejemplo poco pensado, podrían ser los derivados del cambio de sesión en un sistema multiusuario, con un e-dni insertado y activado en el lector. Pero doctores tiene la Iglesia.
Me gustaría recordar a los amigos del "molaware" algo importante. La Ley se ha escrito como si fuera imposible hacer lo que yo he demostrado que se puede hacer, y eso deja a los usuarios ante un serio problema. Si firmo lo que no debo a nombre de mi señora, el problema lo tendrá ella, y eso es grave, muy grave.
Con lo sencillo que hubiera sido asociar una firma a una clave y punto, como manifestación volitiva e incontestable de la voluntad de firma de un documento... Más sencillo imposible; pues no, decidieron tomar la calle del medio. No saben bien los que establecieron el estándar PKI en su momento el error que cometieron dando prioridad a la comodidad frente a la seguridad y dando por sentado cosas que puede que no se cumplieran, como de hecho ha ocurrido.
Molaware para todos... Invito yo, y al que le toque la china, que se fastidie.
Fernando Acero
"Copyleft 2006 Fernando Acero Martín. Verbatim copying, translation and distribution of this entire article is permitted in any digital medium, provided this notice is preserved".
Ante todo, dar a Fernando la enhorabuena por descubrir este pastel y las gracias por avisarnos. Parece imposible: esto significa que, en principio, se puede impugnar cualquier documento firmado por más de un certificado digital. También parece imposible que no se haya denunciado antes. Por cierto, acabo de comprobar que, tal como tú dices, utilizando Firefox sobre Windows XP el resultado es exactamente igual.
Eso sí, no estoy de acuerdo en la afirmación de que el problema está en los certificados X.509, que funcionan como deberían hacerlo según sus especificaciones, sino en las aplicaciones de la FNMT o la Agencia Tributaria que te obligan a guardar los dos certificados en el mismo contenedor, "explotando" así el fallo y sin dar siquiera instrucciones acerca de como solventar el error (provocado, insisto, por una mala impementación de la aplicación que impide que primero firme uno y luego el otro). La solución, temporal y chapucera y que no garantiza que el documento no sea repudiado alegando este bug, sería agregar tu certificado antes de cada firma conjunta y borrarlo después.
Pero, en cualquier caso, esto no es un simple agujero de seguridad: es un túnel, con una autopista asfaltada en medio, luces, cobertura de radio y GSM y guardias de tráfico guiando a los delincuentes que quieran utilizar ilegitimamente tu certificado.
Un saludo.
"Parece imposible: esto significa que, en principio, se puede impugnar
cualquier documento firmado por más de un certificado digital. "
Da lo mismo que se firme el documento con un certificado o con dos, el caso es que puedo elegir un certificado de todos los que estén en el contenedor, sin necesidad de saber su contraseña. Por ello, puedo poner en duda cualquier firma digital basada en certificados de software ya que no se el entorno en el que se generó y si era seguro y eso es independiente de que el documento tenga una, dos o tres firmas, aunque sí es cierto que si tiene más de una, el problema puede ser más evidente.
"Eso sí, no estoy de acuerdo en la afirmación de que el problema está en los certificados X.509, que funcionan como deberían hacerlo según sus especificaciones, sino en las aplicaciones de la FNMT o la Agencia Tributaria"
Y contrariamente a lo que dices, el fallo es del sistema PKI, aunque la FNMT y la AEAT no se dieron cuenta o no avisaron del problema cuando se introducían dos certificados en un contenedor. Desde el punto de vista técnico tanto la FNMT como la AEAT son víctimas casi inocentes de un sistema mal diseñado y su única culpa, es no haberse dado cuenta a tiempo y haber avisado de ello a los usuarios.
Como he comentado en mi artículo, la comodidad no se debe anteponer a la seguridad y no se deben dar cosas por sentado y eso es lo que se ha hecho a la hora de diseñar la especificación PKI, ese y no otro es el error. Tal es así que avisados todos los implicados, simplemente contestan que se han limitado a cumplir con el estándar y que las reclamaciones al maestro armero.
"Copyleft 2006 Fernando Acero Martín. Verbatim copying, translation and distribution of this entire article is permitted in any digital medium, provided this notice is preserved".
Comprendo tu punto de vista, que es muy razonable, pero sigue sin convencerme. Como bien dice Jonsito, el hecho de que cuando hay más de un usuario en un mismo contenedor, cualquiera de ellos puede escoger el certificado que le de la gana y firmar con él es un hecho conocido y debatido desde hace tiempo. Desde luego sería más seguro que cualquier certificado pidiera el pin antes de utilizarse, con independencia de que se haya introducido previamente la clave del contenedor, pero a la vista de la especificación PKI, es lo que hay. Esto es público y por lo tanto las aplicaciones que utilicen estos certificados deben adaptarse a estas circunstancias. Al menos desde mi punto de vista de programador lo veo así: uno tiene las herramientas que tiene y debe obtener un resultado útil, fiable y seguro con ellas, soslayando o utilizando las carencias de estas herramientas para conseguirlo, ya que si fueran perfectas, no haría falta tocar nada.
¿Que sería más fácil del otro modo, si fuera el certificado el que validase al usuario sin intervención del desarrollador? Sí. ¿Que se primó a la comodidad sobre la seguridad? Desde luego. Pero el sistema está pensando para que quien introduzca el password de un contenedor pueda utilizar libremente todos los certificados que hay en él. No está fallando, es su funcionamiento normal. No es el sistema más seguro, es cierto, pero si se utiliza correctamente, funciona bien. Claro que eso no es excusa: quien programó la aplicación de la Declaración de la Renta debería haber tenido en cuenta las especificaciones de este sistema: si fuerzas a varios titulares a guardar sus certificados en el mismo contenedor, como hizo esta lumbrera, estas permitiendo a cualquiera de ellos que utilice como le venga en gana las firmas electrónicas de los demás. Por eso creo que solo (al menos claramente) se podrían impugnar los documentos firmados por más de un certificado, ya que si únicamente está firmado por uno solo, se puede suponer que su propietario lo manejó correctamente, siendo consciente de que a quien entregaba la clave del contenedor en el que había almacenado el certificado le estaba entregando su firma. Sin embargo, creo que "buscar al culpable" no es lo más producitvo que podemos hacer ahora mismo.
Para solventar este "bug" (aunque es muy grande para ser un insecto), dado que parece imposible reprogramar todas las PKI que hay por el mundo mundial, creo que solo se puede actuar en dos frentes: la información al usuario (como siempre) y las aplicaciones que utilizan PKI.
En el primer caso, advertir claramente y convertirlo en un consejo básico de seguridad (tipo "instala un antivirus en tu PC con Windows") el no guardar certificados de más de un usuario en un mismo contenedor. Eso es algo que algunos ya sabíamos, pero tu artículo es un muy buen ejemplo de lo que puede pasar si no se sigue este consejo. Vuelvo a repetir que el problema está en que alguna aplicación, como la de la AT, te obligue a saltarte esta norma. Si no fuera por eso, todo se reduciría a una cuestión de formación, como tantas otras del mundo de la seguridad informática. En un caso como el que hablamos, si la plicación te obliga a saltarte el consejo (vuelvo a repetir que es donde yo veo el fallo) queda guardar, firmar y borrar tu certificado todo seguido y en tu presencia, pero no deja de ser una chapuza.
El segundo punto sería desarrollar aplicaciones (o parchear las existentes) de modo que se puedan firmar primero por un certificado, luego por otro y así, para evitar obligar al usuario a abrir este agujero en su computadora. Eso exigiría que muchos programadores tuvieran unas nociones de infraestructuras de clave pública y que sus jefes dedicaran algo de dinero (o sea tiempo) a su seguridad. Lo cual, por desgracia, no es tan frecuente como debiera. Ambas son una solución a largo plazo, que solucionaria este problema y muchos otros, por cierto.
Y respecto a que en Windows XP, con su configuración por defecto, puedas firmar sin poner ninguna contraseña, no diré nada. Windows es, hace mucho tiempo, un caso perdido.
En fin, un saludo.
A pesar de los parches nadie nos garantiza que alguien esté usando una aplicación antigua y no parcheada, para enviar un correo firmado a nombre de su señora. El problema es más grave.
Lo que sí está claro es que gran parte de los problemas se solucionan con alfabetización digital, pero también con tecnologías "a prueba de tontos".
"Copyleft 2006 Fernando Acero Martín. Verbatim copying, translation and distribution of this entire article is permitted in any digital medium, provided this notice is preserved".
Amigo Fernando,
No se trata de hacer tecnología a prueba de tontos, sino de hacer tecnología para tontos, sin más que partir del supuesto de que el 90% de la gente es analfabeta funcional en tecnología, porcentaje que sube al 99'99% cuando se trata de criptografía.
Apostaría algo a que incluso en un sitio como este, que se supone visita gente interesada y criptoalfabetizada, muy poca gente se ha dado cuenta del agujero que hoy has traido a la luz.
Y si eso pasa aquí ¿para qué explicar en una web oficial que es arriesgado colocar más de una clave en un contenedor porque la mayoría de aplicaciones pasan de conservar su contraseña sin previo aviso?
"Hagamos tecnología para tontos -debio decirse alguien en algún sitio- que no nos equivocamos."
En eso tienes más razón que un santo. Yo creo que de todo este tema se pueden discutir muchas cosas, pero hay dos seguras:
1.- Qué hay que hacer sistemas para tontos (al menos para no criptoiniciados).
2.- Qué cualquier firma digital, ahora mismo, es, de entrada, discutible. Eso sí, sigo pensando que el fallo no es de PKI, que bien implementado sigue siendo útil (y perdón por ser tan pesado).
Creo también que ahora habría que hacer es buscar la forma de diseñar aplicaciones que no permitan este fallo y que, a su vez, firmen el documento con alguna clave propia, garantizando que ha sido generado en un entorno seguro.
Un saludo.
Bien estimado amigo, bien implementado funcionaría como funciona ahora, es decir, relativamente mal ya que esa es la definición del estándar y por ello todo el mundo dice que no mueve un dedo para cambiar nada. Si queremos hacer algo, lo que hay que cambiar es el estándar.
"Copyleft 2006 Fernando Acero Martín. Verbatim copying, translation and distribution of this entire article is permitted in any digital medium, provided this notice is preserved".
Por poner un ejemplo, el protocolo SSL utiliza PKI para autentificar el servidor sin emplear ningún contenedor, así que este agujero de seguridad no puede aparecer en este tipo de entornos. Además, aunque no conozco SSL hasta el punto de poder garantizar esto terminantemente, parece que si cada vez que se utilizara el certificado hubiera que introducir la clave, SSL sería
inviable o muy inseguro, si hubiera que implementar en el servidor
algún tipo de software que introdujera el PIN en cada conexión. Pese al problema del que estamos hablando, la Infraestructura de Clave
Pública sigue funcionando igual para este uso y es una razón para no
cambiar el estándar. Por este mismo motivo, opino que este error invalida el sistema de firma digital de ciertas aplicaciones, pero no PKI en su conjunto. Quizás hubiera que diseñar un estándar específico para firmar documentos, pero PKI bien utilizado todavía es útil.
Un saludo.
Algo menos desastroso pero que me permitió "descubrir el pastel" me sucedió con Movistar: mi marido y yo teniamos una línea familiar con dos números el suyo y el mío. Por norma la factura total la pagaba y la veía él, yo jamás veía esa factura, un día le digo que voy a llamar para que nos envíen facturas separadas por cada número, y lo consigo, así podía comprobar mis llamadas... pero como el diablo nunca puede esta quieto, se me ocurre entrar en internet para consultarla por la red y lógicamente me piden contraseña (que yo desconocía) me piden que para obtener la contraseña envíe desde mi móvil un sms con varios datos de mi factura y yo pensaba que solamente me dejaría acceder a la factura de mi número, cuál no sería mi sorpresa cuando comprobé que también veía la del otro...y ahí encontré el pastel: LLEVO 4 AÑOS DIVORCIADA DEL MUY CABRÓN....
Saludos
Como le comenté a Fernando, cuando hice mi declaración de hacienda, utilicé un windows xp en el que NO TUVE QUE INTRODUCIR UNA SOLA CONTRASEÑA.
Mi certificado digital estaba en el contenedor del explorer de unas pruebas previas, pero ni el inicio de sesión estaba protegido con contraseña, NI EL CONTENEDOR DE CERTIFICADOS DEL EXPLORER. Todo lo más que llegué a obtener fue un aviso de "Atención: una aplicación externa quiere acceder a un recurso protegido. ¿Desea continuar?" Y yo obediente con hacienda, dije "SI"
(Lo siguiente que hice fue poner inmediatamente una contraseña a la sesión y al contenedor de certificados, una vez que supe cómo se hacia -cosas de usar linux- ).
El error está en considerar el propietario de la sesión como el propietario del contenedor, así como de los certificados que éste contiene.
Una aplicación típica de tarjeta criptográfica, solo pide PIN en el momento de login, y asume que el usuario es el que dice ser mientras dura la sesión activa. SingleSignOn le llaman a ese engendro. Y eso aún asumiendo que la tarjeta solo contiene los certificados de un único Usuario.
Este problema se debatió hace tiempo en las listas del proyecto OpenSC y Muscle sobre tarjetas criptográficas. La conclusión a la que se llegó es que con la especificación en la mano no había solución, y que lo único que se podía hacer era liarse la manta a la cabeza e insistir en todos los manuales que solo hubiera un único usuario por contenedor. Pero Hacienda nos pide otra cosa....
Como dice Fernando, la única solución es olvidarse del concepto de contenedor, o usar un UNICO CERTIFICADO por cada contenedor, y por supuesto, PEDIR SIEMPRE EL PIN, cada vez que se acceda a la clave privada, aunque se haya pedido en una operación anterior.
Pero a ver quien es el majo que cambia ahora todas las aplicaciones PKI existentes en el mundo mundial.... y a nuestra querida, amada y nunca bien ponderada Agencia Tributaria.
Gegen die Dummheit kämpfen selbst die Götter vergebens - Schiller