01 junio 2009

Fraude online con firma digital y SSL

A la hora de hablar de fraude online, una de las cosas mas peligrosas es adoctrinar al usuario con falsos axiomas que son explicados, generalmente, de forma dogmática.

En concreto, se puede encontrar abundante documentación en la red (en muchos casos emitida por organismos oficiales o grupos de seguridad) donde se indican aspectos que, mas que ayudar, pueden suponer un problema por ser totalmente inexactos en algunos casos y falaces en otros.

En este post vamos a demostrar como dos de los tópicos mas escuchados sobre la prevención del fraude online son directamente falsos:
  • Una pagina cargada bajo SSL cuyo certificado digital provenga de una entidad de confianza (que el navegador cargue sin emitir errores) y en la que aparezca el famoso 'candado' puede ser considerada segura
  • La firma digital y en concreto, el DNI Electrónico, es la 'herramienta definitiva' contra el fraude
La realidad:
  • Un certificado digital para un servidor SSL emitido por una CA reconocida, se puede obtener sin ningún esfuerzo o proceso de verificación y en muchos casos, gratis por una larga temporada
  • Tanto el DNI electrónico como los certificados de la FNMT, son poderosas herramientas para identificarse y autorizar procesos online, pero esas herramientas, sin una educación previa, se vuelven contra el usuario, pudiendo servir para hacer fraude con validez legal (la firma digital está reconocida en España como análoga a la manuscrita por la ley)
Como la forma mas pedagógica de plantear un concepto es mediante un ejemplo, hemos creado 'La Agencia Pituitaria', hecha a imagen y semejanza de la original.

UPDATE: El servidor en el que hicimos las pruebas ya no está online

Nuestra agencia, es mas generosa que la original ya que ofrece al ciudadano la posibilidad de solicitar una 'ayuda especial' de 400 euros.

La hemos creado de la forma mas fidedigna posible, hemos conseguido un certificado SSL que aceptará cualquier navegador sin mostrar ningún tipo de advertencia, cortesía de Comodo, que ofrece para todo el mundo certificados digitales gratuitos durante 90 días, con solo rellenar un formulario y dar una dirección de correo electrónico. Incluso la URL de nuestra agencia https://phishing.security-projects.com contiene el termino 'phishing' para dejar mas claro el objetivo del certificado (aun así obtuvimos el certificado en 5 minutos).

Otro aspecto que hemos implementado, es la firma digital para la solicitud de los 400 euros, solicitando al usuario que la petición sea firmada o bien con el DNI Electrónico o con el certificado de la FNMT.

El objetivo final era crear una web de apariencia idéntica a la de un organismo oficial, dándole credibilidad con un certificado digital valido, y que implementara el concepto de 'fraude con firma digital' haciendo que el usuario firme digitalmente a ciegas el hash SHA-256 de un fichero cuyo contenido otorga el control de su patrimonio a SbD. Técnicamente, al firmar el resumen unívoco del fichero con un certificado reconocido, lo firmado adquiere validez legal

Como no todo el mundo dispone de certificados digitales, o tal vez no se presten al experimento, hemos creado una presentación online con el funcionamiento detallado de la web. (Click para verla a pantalla completa)



Y el contenido del fichero que se firma durante la transacción es este

Nota: La firma digital solo está implementada para Mozilla Firefox, la enorme biodiversidad de versiones y métodos criptográficos cambiantes en Internet Explorer hubieran multiplicado por 4 el trabajo así que decidimos no implementarla, no obstante, esto no supone que Internet Explorer ofrezca mayor protección, simplemente una dosis extra de trabajo.

18 comments :

sølrαc dijo...

me he quedao de piedra ... ¿es tan 'fácil'?

Si no podemos confiar en los certificados ¿que nos queda?

Anónimo dijo...

¿Y la solución? ¿Apagamos el ordenador y lo tiramos por la ventana?

Zerial dijo...

A la hora de querer falsificar un certificado es bien simple, el usuario comun (la mayoria) no se preocupa si el navegador le develve alguna alerta o si es seguro o no, ya sea por ignorancia o porque simplemente no les interesa, el usuario simplemente pone "Aceptar" y listo.

Richard dijo...

Nuevamente es un problema de educación, no un fallo en la tecnología. Si es cierto que como parte del procedimiento para la firma, debería obligar a leer lo que se está firmando, aunque en este caso también habría gente que le daría CRTL+Fin y Aceptar

Addax dijo...

¡Excelentísimo aporte! Muchísimas gracias.

Anónimo dijo...

No puedo entrar, me dice que se utiliza un certificado de seguridad no valido. ¿ Es la versión de Firefox ?

Yago Jesus dijo...

A ver, cuando dices que te da ese error ... ¿al cargar https://phishing.security-projects.com ? Esa parte debería cargarte tengas o no tengas el certificado en el navegador. La parte de la petición de los 400 requiere que tengas un certificado de la FNMT o el Dni Electrónico correctamente configurado en tu Firefox

Anónimo dijo...

Efectivamente, NO es un problema de tecnología sino de educación, además el candadito abajo a la izquierda hasta donde yo sé no significa que el sitio sea seguro ( en el sentido de fiabilidad ) , sino que la comunicación entre el servidor y el cliente es cifrada ("segura"), es decir, muy dífícil de interferir por un tercero. Además haciendo doble clic sobre ese candado se puede ver el nombre del servidor para el que se ha emitido el certificado, lógicamente si yo pido una ayuda en este caso a un organismo público me aseguro haciendo doble clic en el candado que esto ante el sitio web del organismo.

Anónimo dijo...

alucinante.
e habeis dejado helado.
mi primo se ha hecho el dni digital ese y me dijo que me lo hiciera, pero despues de lo visto, mejor no ( no tengo ganas de donarle mis vienes a nadie ).

gracias por la informacion.

Yago Jesus dijo...

No es un tema del Dni Electrónico, el Dni es un importante avance para poder hacer uso de la 'e-administración' que ahorra mucho tiempo en tramites, el asunto es que no puedes dar algo tan poderoso a alguien y no educarle para usarlo bien.

Anónimo dijo...

Fallo en conexión segura













Un error ha ocurrido al conectarse a phishing.security-projects.com.

SSL peer was unable to negotiate an acceptable set of security parameters.

(Código de error: ssl_error_handshake_failure_alert)



Mejor uso http

Anónimo dijo...

Una pregunta... y el navegador no verifica que la dirección a la que te conectas y la que te da el certificado sean la misma? se que hay ataques a navegadores para que muestren en la barra de conexión una url distinta a la que se esta conectando realmente, pero ¿se pueden unir ambos ataques? es decir, ¿se puede mostrar en el navegador la url de aeat.es y conectarse realmente a la "agencia pituitaria" con un certificado valido para esta ultima sin que el navegador de aviso alguno?

Yago Jesus dijo...

@Anonimo_que_no_le_funciona ¿que navegador estas usando? No obstante, prueba a re-iniciar el navegador y volver a probar, tiene que cargarte via https si-o-si.

@Anonimo el navegador, si te conectas a https://www.algo.com y el servidor web se identifica con un certificado para www.otro.com, muestra un error, ese es el funcionamiento correcto, otra cosa es que, vía javascript se puedan aplicar técnicas de ofuscación para que parezca que estás en otro sitio, para combatir eso, ffhardener :)

Anónimo dijo...

A ver... este ejemplo muestra una de las aplicaciones de un certificado digital de la FNMT que es la -firma digital-, y un uso práctico para su uso fraudulento
en el que quien firma le da el OK es el usuario quien acepta y firma. En el otro caso del certificado de la FNMT para auntenticar, lo mismo hace tiempo hice una prueba de concepto con los alumnos con un ataque de MitM
para que vieran dónde radicaba la fragilidad de los certificados y cómo en TI en más del 90% en el elemento entre la mesa y la silla, no, en la tecnología.

El verdadero problema no es en si el phising al certificado el usuario es quien le da al botón, sino el robo del mismo, esto es mucho más fácil con troyano o acceso al sistema físico hacer una copia y que alguien se haga pasar por el titular, es muy sencillo.
La única forma es securizar el uso,la exportación y su almacenaje en disco, mediante contraseña cosa que casi nadie hace.. seguramente por formación y en muchos casos seguro que por comodidad.

Y cómo se ha dicho hay que verificar el emisor del certificado antes de establecer comunicación, el https indica que el canal es cifrado no la autenticidad de la web, para esto tiene que haber una Entidad Certifiadora Autorizada que dice que un tercero es quien dice ser, en el caso de la FNMT es ella misma es CA root para hotmail por ejemplo es Verisign quien certifica que hotmail es quien dice ser.
Si estubiera pirateado el certificado al comprobar su emisor diría que la entidad que autentica a un tercero no se reconoce. Verisign no emitió el certificado para hotmail, con lo que el sitio no es quien dice ser.

El problema no es exactamente de educación sino de formación, para usar esta tecnología se debería de pasar un cursillo cómo un manipulador de alimentos recibe una charlas, hace un examen tipo test y el 99% aprueba por haber pasado la formación.

Y eso tiene que ver las administarciones.

Yago Jesus dijo...

Sobre certificados, FNMT, exportacion y robo ... Ya hablamos hace un año http://www.securitybydefault.com/2008/05/fnmt-insecure-by-default.html

Anónimo dijo...

Firefox no lo permite, dá error:

Conexión segura fallida

Ha ocurrido un error durante una conexión a phishing.security-projects.com.

El otro extremo de la conexión SSL no ha podido negociar un conjunto aceptable de parámetros de seguridad.

(Código de error: ssl_error_handshake_failure_alert)

* La página que está intentando ver no puede mostrarse porque no se ha podido verificar la autenticidad de los datos recibidos.

* Por favor, contacte con los administradores del sitio web para informarles de este problema. De manera alternativa, use la opción del menú Ayuda para reportar el problema de este sitio web.

Yago Jesus dijo...

Me reitero: https://phishing.securithy-projects.com carga bien en Explorer / Firefox sin mas. Si luego navegas hacia la parte de 'solicitud 400 euros' y no tienes en el navegador cargado un certificado FNMT / DNI, entonces da ese error.

Anónimo dijo...

Estoy de acuerdo con vosotros en que es un fallo de educación. No tengo ni idea de lo que quiere decir SSL y me cuesta entender que es exactamente un servidor etc
¿Que me recomendais para poder tener una formación informática adecuada a nivel de usuario?
Lo intento de forma autodidacta mirando en foros como este, pero la verdad que la mayor parte del lenguaje me suena a chino.
La pagina de correos, para abrir un A.P.E, me ha dado el error:
Ha ocurrido un error durante una conexión a cep.correos.es.

El otro extremo de la conexión SSL no ha podido negociar un conjunto aceptable de parámetros de seguridad.

(Código de error: ssl_error_handshake_failure_alert)








* La página que está intentando ver no puede mostrarse porque no se ha podido verificar la autenticidad de los datos recibidos.

* Por favor, contacte con los administradores del sitio web para informarles de este problema. De manera alternativa, use la opción del menú Ayuda para informar del problema de este sitio web.

¿Que quiere decir?

Gracias, !Sois los profesores del futuro!, el único problema es la selección de la información, que para alguien sin conocimientos de informática es muy complicada.