Pasaporte .NET al infierno
[25-11-01]
Se imagina disponer de un solo nombre de usuario y contraseña que sirviera para entrar en todas partes? En el ordenador personal, en el teléfono móvil, en el PDA, en las cuentas de correo de Internet, en los sitios web de pago, en definitiva, en todas las máquinas y servicios. Pues Microsoft ya lo ha imaginado y hasta ha bautizado a la tecnología: Passport .NET.
En palabras de Microsoft, "Passport es un servicio en línea que hace posible que pueda utilizar su dirección de correo electrónico y una única contraseña para iniciar una sesión de forma segura en cualquier servicio o sitio Web participante de Passport."
Según Microsoft, gracias a Passport se implantará en Internet el inicio de sesión único. Es decir, el usuario con una cuenta de Passport entrega sus credenciales una sola vez en un solo sitio y a partir de ese momento puede autenticarse de forma transparente en todos los demás sitios que participen en la iniciativa. La gran ventaja de este enfoque es que los usuarios solamente se ven obligados a recordar una única contraseña, que les permitirá autenticarse en múltiples sitios.
Passport fue diseñado para utilizar las tecnologías web existentes en el momento actual con el fin de no reinventar la rueda ni imponer tecnología propietaria. En concreto, la redirección automática con HTTP, JavaScript, cookies y SSL. No obstante, se indica que JavaScript no resulta estrictamente necesario, aunque sí muy recomendable.
Cuando un usuario visita un sitio web participante de Passport y necesita autenticarse para, por ejemplo, realizar una compra o leer su correo, el sitio web del comerciante redirige el navegador del cliente a un servidor de autenticación de Passport. Este servidor le presenta al usuario una página de inicio de sesión, cuyas credenciales serán protegidas a través de un canal cifrado con SSL. Si las credenciales suministradas por el usuario son válidas, el servidor de Passport redirige al usuario nuevamente al sitio del comerciante, incluyendo la información de autenticación en la cadena de redirección. Para evitar que sea interceptada, esta información se cifra utilizando triple DES con una clave sólo conocida por el servidor de Passport y del comerciante. Una vez de vuelta en el servidor del comerciante, éste le envía al navegador del usuario una cookie cifrada con la información de autenticación.
De esta manera, en sucesivas visitas al sitio del comerciante ya no es necesario autenticarse de nuevo, puesto que las credenciales se leen de la cookie cifrada que el navegador envía al sitio en cada petición.
Por otro lado, el servidor de Passport también le envía una cookie cifrada con una misma clave maestra al navegador. Si el cliente visita un nuevo sitio afiliado a Passport, no tiene que volver a introducir su nombre de usuario y contraseña, ya que se leen de la cookie cifrada que Passport le envió la primera vez. En esta segunda ocasión y en las sucesivas, el servidor de Passport verifica las credenciales de la cookie y si son correctas redirige de nuevo al usuario al servidor del comerciante sin pedirle nuevamente que se identifique.
Además de la autenticación única, Passport ofrece el servicio de cartera en línea. La cartera de Passport permite almacenar información sobre tarjetas de crédito y direcciones de envío y facturación en una ubicación en línea supuestamente segura, junto con el resto de la información del perfil. En teoría, sólo cada usuario particular (y Microsoft) tiene acceso a la información de su cartera de Passport. Cuando el cliente desea realizar una compra en un sitio participante, puede tener acceso a esta información y enviarla al vendedor instantáneamente y supuestamente con total seguridad, sin tener que escribir de nuevo la información de pago, sin más que pulsar un botón.
Pero no es oro todo lo que reluce. El 5 de noviembre de 2001, Marc Slemko (http://alive.znep.com/~marcs/passport/) publicó un ataque sobre Passport que obligó a Microsoft a cerrarlo durante horas para mitigar (aunque no solucionar) el problema descubierto y explotado por Slemko. El ataque constaba de cuatro pasos.
Primero, la víctima inicia una sesión con Passport para entrar en su cuenta de Hotmail, la aplicación insignia de Microsoft para ilustrar las bondades de su tecnología de inicio de sesión único (Single Sign-In). La víctima además ha introducido sus datos confidenciales en su monedero de Passport. Antes de que transcurran 15 minutos desde que inició su sesión en Hotmail, lee un mensaje de correo electrónico que le ha sido enviado por el atacante y que esconde un IFRAME oculto, aprovechando un fallo en la validación de entrada de Hotmail.
Como consecuencia de la lectura de este mensaje, el usuario cargará en su navegador sin saberlo una página procedente del web del atacante. Esta página contiene dos frames. El primero permite robar la cookie de Passport con la contraseña cifrada del usuario. El segundo frame explota un agujero de Cross-Site Scripting (http://www.cert.org/advisories/CA-2000-02.html) que permite ejecutar un script creado por el atacante para robar las cookies.
Este script se ejecuta en el contexto de seguridad de la página de Passport y como consecuencia se envían las cookies desde el frame superior a un script en cgi en el servidor del atacante que las almacena en un archivo.
Una vez en su poder con las cookies que identifican a la víctima ante Passport, el atacante puede utilizarlas con un navegador para acudir a un sitio participante de Passport y navegar hasta la página de pago de una compra para que aparezca la información confidencial de la víctima. La pobre víctima no se ha enterado de nada. Simplemente leyó (sin hacer clic en ningún enlace) un correo que le fue enviado.
Si este ataque parece demasiado complicado, existen otros, publicados por Jouko Pynnonen el 8 de noviembre de 2001 (http://www.solutions.fi/iebug/) y por Slemko (http://alive.znep.com/~marcs/security/iecookie2/), el 15 de noviembre de 2001, que permiten robar las cookies de otras maneras igualmente imaginativas desde un dominio distinto de aquel para el que han sido emitidas. Estos ataques parecen haber hecho temblar a Microsoft, hasta el punto de que ya Passport ha dejado de funcionar. Ahora ya no recuerda la contraseña de los usuarios y cada vez que se salta de un sitio participante de Passport a otro, se le pide al usuario nuevamente la contraseña.
El sueño de Microsoft se ha hecho añicos. Adiós a Passport .NET. Una vez más, se demuestra que vender la piel del oso antes de cazarlo es, como mínimo, una mala manera de hacer marketing. La Web es demasiado compleja y se presentan demasiados problemas como para solucionarlos con dos cookies y un par de líneas en JavaScript. El inicio de sesión único, esto es, un solo nombre de usuario y una sola contraseña para un acceso universal a máquinas y servicios, tendrá que esperar aún más.
Opina sobre esta noticia: http://www.hispasec.com/unaaldiacom.asp?id=1124
Más información:
Microsoft Passport to Trouble http://alive.znep.com/~marcs/passport
Criptonomicón http://www.iec.csic.es/criptonomicon
Gonzalo Álvarez Marañón criptonomicon@iec.csic.es
Artículos de actualidad ...
Archivo de artículos ...
|