Estas aquiContenido / Phishing-Sign: ¿Estoy firmando lo que quiero firmar?
Phishing-Sign: ¿Estoy firmando lo que quiero firmar?
Con la inminente puesta en funcionamiento del nuevo eDNI me asalta una idea que es por lo menos preocupante. El nuevo documento dará a los usuarios la posibilidad de firmar electrónicamente documentos en la web. Una firma electrónica es, en resumen, el cifrado del hash de un documento con la clave privada de un certificado.
Este proceso se tiene que hacer obligatoriamente en el equipo del usuario, en su navegador en este caso, ya que la clave privada se encuentra en el eDNI y “en teoría” no puede salir de él. La implementación se puede hacer por muchos métodos, pero siempre será necesario que una rutina en el navegador o en el sistema operativo realice estas funciones criptográficas de forma transparente para el usuario, ya que no todo el mundo tiene los conocimientos necesarios para programarse su propia aplicación.
Llegados a este punto es donde me asalta una duda, ¿Cómo puedo estar seguro de que lo que firmo es lo que quiero firmar y no otra cosa?, ¿es posible que una web maliciosa me pida que firme algo y después le mande otro documento a mi navegador o sistema operativo sin que yo me entere?...
La respuesta es sí y no. No, si tienes los conocimientos necesarios para leer el código fuente de la página web y ver qué es realmente lo que estás firmando, y sí, si no tienes esos conocimientos.
Hacer transparente para los usuarios el complejo proceso de firmas y darle la seguridad de que firma lo que quiere firmar es incompatible. Las consecuencias de esto a mí me parecen, por lo menos, preocupantes. No sé si el ministerio tiene pensado crear un sello, certificado, o algo parecido para web auditadas o testeadas por algún organismo, pero si no es así, me temo que algún usuario incauto va a firmar algo que no quería firmar.
DP: Espero que al ser el primero (que yo sepa) que apunta esta posibilidad mis webs queden fuera de sospecha ;). El que sospeche que le dé a "Ver código fuente”.




El primer punto de fallo es permitir que sea el sistema operativo o un software específico el que realice la firma. La firma digital tiene que ser realizada por la propia tarjeta de eDNI. La clave privada nunca debe abandonar la tarjeta eDNI, a riesgo de ser expuesta, duplicada, comprometida, etc. La propia tarjeta de eDNI debe incorporar un chip criptográfico que realice la firma digital, utilizando, como mínimo, SHA-256 para el resumen, y RSA de 1024 bits para la firma digital.
El segundo punto de fallo queda bien expuesto en este documento, pero puede reducirse si la propia tarjeta de eDNI, antes de proceder a la firma, muestra en una pantalla LCD el resultado de resumir mediante SHA-256 el documento que se pretender firmar. El usuario está en disposición de resumir el mensaje que la Web presenta como documento a firmar y, si el resumen de este último y el primero coinciden, el usuario pueda estar seguro que la Web no intenta que el usuario firme un documento distinto.
Es decir, sea M el mensaje que se entrega a la tarjeta eDNI para su firma, y M' el mensaje que la Web presenta al usuario como supuesto mensaje a firmar, debería cumplirse que M = M'. Si se cumple que SHA256(M) = SHA256(M'), existe una alta probabilidad de que M = M'. La tarjeta digital eDNI no puede presentar en su pantalla LCD la totalidad del mensaje M, pero sí SHA256(M), lo que permite al usuario determinar si un sitio Web está intentando que el usuario firme un documento falso.
cuando firmas, tienes que asegurarte que lo que firmas es lo que crees que es, exactamente como cuando compras una casa, o firmas un contrato,siempre te pueden decir una cosa, y enseñarte un contrato que no se parece en nada, ¿como te protejes de eso?, simple, leyendolo enterito, y si no te convence, pos no lo firmes.
con el eDNI pasara lo mismo, primero lees lo que vas a firmar, y luego pos lo haces, ya que a mi modo de ver, casi todo lo que se firmara sera texto leible en formato humano (aunque se puedan firmar binarios, no creo que se use demasiado, ya que quitando unas cuantas excepciones no tiene mucho sentido)
tampoco creo que sea demasiado dificil crear un plugin estilo enigmail para un navegdor, que te muestre el texto que vas a firmar y un boton para hcerlo
otra cosa son las vulnerabilidades que puedan tener los programas y los sistemas operativos, para que te enseñen (o no) el texto a firmar, pero eso cae dentro de otro ambito
un saludo
PD: soy usuario nuevo que os lleva leyendo desde hace bastante tiempo, pero nunca me habia atrevido a opinar, asi que no seais mu duros conmigo, pero darme chicha que si no no aprendo :p
con el eDNI pasara lo mismo, primero lees lo que vas a firmar, y luego pos lo haces
Si fuera asi no habría problemas. Pero me temo que hay muchas formas de provocar un engaño.
Con el phising puedes perder el dinero de tu cuenta, pero con el robo de la firma lo puedes perder todo.
Para empezar la gente no sabe lo que es una firma. Y lo peor, no le interesa.
Si en una web nada mas entrar, antes de nada, le haces una peticion de firma al usuario, diciendole que para acceder tiene que identificarse con su eDNI y tiene que meter el PIN, habría que contar con los dedos de las manos los que no piquen.
Hola a todos:
Hay un problema básico cuando usas el ordenador.
Cuando firmas un papel, éste esta en tus manos y tu firma queda grabada en él, debes firmar con un bolígrafo que lleves tú mismo ya que el que preste la otra parte podría tener tinta alterada, te quedeas con una copia del papel y no hay duda de que ese papel es el que firmaste.
Cuando firmas algo en el ordenador en realidad solo pulsas una tecla, pero eso genera una serie de operaciones que tú no puedes controlar. Es por eso que Enriquez dice que tendríamos que usar nuestra propia aplicación de firma (solo nuestra aplicación podría informarnos de lo que realmente estamos firmando). Esta aplicación sería el equivalente de usar tu propio bolígrafo al firmar el contrato de compraventa de tu casa.
En este sentido el software libre (de nuevo una vez más en nuestra ayuda) es equivalente a tener "tu propia aplicación", seguro que la mayoría de nosotros no podemos auditar el código de una aplicación opensource de firma electrónica pero sí que podremos encontrar varios análisis independientes que nos permitan usar una aplicación que no es nuestra con cierta confianza.
En cualquier caso, el cifrado siempre lo va a hacer la tarjeta inteligente (es un decir lo de inteligente), nunca se le entregará la clave privada a una aplicación en el PC pero la tarjeta tampoco sabe lo que esta firmando, sólo recibe el hash del documento.
Para poder hacer la comparación de hashes entre lo entregado a la tarjeta y el del documento que el usuario ve, tal y como propone felipe alfaro, es necesario que el usuario cuente con su propia herramienta de gestión y comparación de hashes (o con habilidad para usar las existentes) con lo que volvemos al problema inicial de tener una aplicación propia.
En estas condiciones la preocupación de nuestro amigo Enriquez es perfectamente lógica.
Los sistemas de tratamiento de la información no resuelven los problemas sólo nos dan más potencia, el problema somos nosotros y seguimos pensando igual que siempre.
La idea de usar software libre y que cada usuario tenga su propia aplicación de firma me parece una idea fascinante.
Ante esta pregunta D. Ricardo Cantabrana, Consejero Técnico de Normas Tecnológicas - Ministerio de Administraciones Públicas respondió lo siguiente en las jornadas JCEL de la universidad de Zaragoza. (No es la respuesta exacta, pq no la copié.)
"La firma será por stream mediante el propio chip. Se firmará el Hash del documento. Ya que no deja de ser un medio físico y se podría quemar. Si se quema nos cambiaran el DNI-E lo que no aseguró es que fuese gratis.
En principio será SHA1 y con posibilidad de pasar a SHA2 si se descubren colisiones del primero.
El usuario será interrogado por el programa sobre el certificado que va a usar (el que te autentica o el que firma con validez legal). Y deberá ingresar el PIN (el mismo para los dos certificados).
Es el usuario el responsable de lo que firma, así que sera su responsabilidad validar los certificados de las páginas o programas, así como la solvencia de la otra parte.
En definitiva, expresó que no se puede pedir más seguridad al mundo virtual que la que se tiene en el mundo real".
Como he dicho esto es un breve resumen de una presentación de más de hora y media.
Que cada cual saque sus propias impresiones.
En principio será SHA1 y con posibilidad de pasar a SHA2 si se descubren colisiones del primero.
Más bien, lo que están intentando dar tiempo a algunos fabricantes de software, para que puedan adaptar su software a la nueva especificación del NIST. Si mañana se descubren las colisiones del SHA-1, no habrá nada que hacer, puesto que el problema se encuentra en el grave hecho de que el software no está adptado al nuevo estándar de firma.
En definitiva, expresó que no se puede pedir más seguridad al mundo virtual que la que se tiene en el mundo real".
Eso no deja de ser un peligroso sofisma, puesto que el mundo virtual, como se ha podido ver con el phising y otras tecnologías basadas en "malware", proporciona a los "malos" otras posibilidades que no existen en el mumdo real.
Por otro lado, mientras que el español medio se bandea medio bien en el mundo real (aunque también es cierto que los juzgados están llenos de demandas emanadas de esa interacción con el mundo real), no es así en el mundo virtual. En el mundo virtual, el español medio, gracias a su poca cultura informática y de seguridad, propiciada por la mentalidad inculcada desde las multinacionales del sector, es más bien un ser patoso y propenso a los problemas de seguridad de todo tipo, lo que es una invitación al fraude, la estafa y al engaño.
Es el usuario el responsable de lo que firma, así que sera su responsabilidad validar los certificados de las páginas o programas, así como la solvencia de la otra parte.
Esta es la única realidad y verdad, grave en donde las haya... pues si un usuario medio no sabe comprobar un certificado de una página, en un caso claro de phising y ello, a pesar de todos los avisos y alertas que inundan la prensa escrita y hablada, ya me dirán ustedes lo capacitado que está ese usuario para asumir semejante responsabilidad tecnológica.
Es decir, que si firmas, es tu problema y grave. Pero señores, seamos serios, si hoy por hoy, incluso teniendo sólidos conocimientos informáticos, este punto de la comprobación puede ser un serio problema para los usuarios, es algo que se me antoja imposible para el 99% de los españoles. Esos usuarios que de informática, saben poco más que encender el ordenador, arrancar el Word y poner un par de palabras en negrita.
No al "molaware", sí a la alfabetización y responsabilidad tecnológica.
"Pá habernos matao".
"Copyleft 2005 Fernando Acero Martín. Verbatim copying, translation and distribution of this entire article is permitted in any digital medium, provided this notice is preserved".
Es el usuario el responsable de lo que firma, así que sera su responsabilidad validar los certificados de las páginas o programas, así como la solvencia de la otra parte.
En esta frase la palabra "programas" es la que va a dar problemas. Resumiendo, eres responsable del javascript que ejecuta tu navegador y que te escriben otros y de los ActiveX, Applet, etc... que te instalan otros. Así que a aprender ingeniería inversa tolmundo ;)
Pues así es. Con cara de tonto me quedé ante sus respuestas, y lo mejor es que los expertos en seguridad que allí estaban asentian ante las respuestas. No se muy bien si por no coincidir con un asistente y dejar mal al ponente, o más bien por que el mundo academico cada vez se aleja más de la realidad.
En definitiva, un 10 a las jornadas que recomiendo si hay proximas ediciones, jcel.unizar.es, y me quedo con la frase de D. Gonzalo Álvarez Marañón, "La seguridad en el comercio electrónico hoy por hoy no existe".
Voy a poner un ejemplo teórico para explicarlo un poco mejor...
Imaginemos que tenemos delante de nosotros una web con un contrato en texto normal y corriente, y un botón que pone “Firmar”. Leemos detenidamente el texto y comprobamos que estamos de acuerdo en todo lo que dice.
Al pulsar en el botón, un javascript o vbscript manda un texto (sin etiquetas html) almacenado en un hidden (campo oculto de un formulario) a una función de firma, que llama a una función implementada en nuestro sistema operativo o en nuestro navegador. Estas librerías criptográficas nos muestran los certificados que tenemos instalados para que seleccionemos uno, el del eDNI por ejemplo, después se llama al CSP que manejara ese certificado, el de la tarjeta criptográfica. Se generará el hash y se mete en la tarjeta criptográfica (ya que el texto podría ser El Quijote, y no cabría en el chip) para que nos devuelva el mismo, cifrado con la clave privada. Después el script meterá la firma en otro hidden y hará un form.submit (enviará la firma al servidor), apareciéndonos on OK en la web.
Hasta aquí todo correcto... pero ¿y si el campo oculto del formulario con el texto a firmar contiene otro texto?. Se puede ver en el código fuente de la web, pero si no estas familiarizado con estos temas, como la mayoría de los mortales, te la han colado.
Lo del plugin lo veo bien, es como un alert en javascript pero implementado en el CSP del eDNI (no se si lo habrán hecho), pero lo del LCD del eDNI... eso si que no lo termino de ver ;)