Recomiendo:
0

¿Quién eres?

Fuentes: Pillate un linux

Es la inevitable pregunta que debemos responder para identificarnos en cualquier plataforma web. Para verificar que realmente soy quien digo ser se impuso en los albores de la informática el uso del par usuario-contraseña. Lejos de ser perfecto, éste método de autenticación presenta algunos inconvenientes que el paso del tiempo se ha encargado de aumentar […]

Es la inevitable pregunta que debemos responder para identificarnos en cualquier plataforma web. Para verificar que realmente soy quien digo ser se impuso en los albores de la informática el uso del par usuario-contraseña. Lejos de ser perfecto, éste método de autenticación presenta algunos inconvenientes que el paso del tiempo se ha encargado de aumentar estableciendo el escenario perfecto para que mentes curiosas diseñen sistemas de autenticación mejorados. Este artículo trata de explicar dos de ellos: OpenID y BrowserID.

Ambos son muy parecidos (de OpenID ya hablamos brevemente) e intentan reducir el número de contraseñas que el usuario tiene que memorizar a lo largo y ancho del mundo cibernético a una identificación proporcionada por un proveedor de identificaciones autorizado. Por tanto, la solución pasa por generar una acreditación única y segura que identifique en cualquier plataforma web al usuario.

A primera vista parece que el sistema está muchísimo más centralizado que el conocido par usuario-contraseña, ya que el usuario tiene que confiar en una única acreditación para identificarse en cualquier servicio web. En vez de tener varios pares usuario-contraseña para varias plataformas web todas comparten la misma, por lo que si ésta queda expuesta todo quedará expuesto. Esto es verdad y mentira ya que aunque es cierto que tanto con el acceso a OpenID como a BrowserID seré capaz de controlar todos los logins asociados, nada estipula que el proceso de autenticación de acceso a OpenID o BrowserID no añada elementos como claves asimétricas, firmas digitales o marcas de tiempo. Por tanto, la seguridad de todos los logins dependerá de lo seguro que sea el acceso a OpenID, con las consecuencias tanto positivas como negativas que ello conlleva.

Supongamos que me creo una cuenta en OpenID (por poner uno de los dos) y luego quiero registrarme en WordPress, Identi.ca y Diaspora. Primero me registro en OpenID y genero la identificación única con el proceso de autenticación que quiera, una vez que tenga la identificación en mis manos (una URL si hablamos de OpenID) entro en Identi.ca y me logeo con la identificación de OpenID. No tengo que registrarme otra vez en Identi.ca ya que el proceso de autenticación en Identi.ca será manejado por OpenID. Identi.ca (o WordPress o Diaspora) preguntará a OpenID si la persona que se está logeando es quien dice ser, no maneja directamente el proceso de autenticación sino que lo delega en OpenID.

 

Ahora bien, ¿cómo hace OpenID o BrowserID para decir que yo soy quien digo ser y no un impostor?. OpenID lo hace a la vieja escuela; la primera vez que el sitio de confianza (supongamos que un foro) pregunta a OpenID por la identificación del usuario redireccionará a éste a OpenID donde se tendrá que identificar con su acreditación (la famosa URL única) y un método de autenticación cualquiera, que puede ser una contraseña, huellas dactilares, mensaje de voz o signos biométricos (aquí es donde reside la fuerza de OpenID). Cuando el usuario se identifique con OpenID se le preguntará si quiere que el sitio de confianza acceda automáticamente a la cuenta, que solo lo recuerde una vez o si por el contrario no está autorizado a utilizar la identidad. Si elige la primera opción se generará una cookie que se almacenará en el navegador (con el peligro que conlleva, ya que el método de autenticación se delega completamente en una cookie), si elige la segunda en el próximo registro el usuario tendrá que identificarse de nuevo con OpenID y si escoge la tercera impedirá que el sitio de confianza identifique al usuario. Como veis no se ha innovado mucho; aunque el usuario solo tiene que memorizar una acreditación el proceso de identificación es prácticamente el mismo ya que gran parte de los usuarios siguen con la necesidad de identificarse con OpenID a través de una contraseña o una cookie.

La mejora que ha introducido Mozilla con su BrowserID es añadir un proceso de identificación alternativo, en el que la identidad del usuario (en este caso el correo electrónico) es determinada por una firma digital generada por un Proveedor de Identificación y codificada con una clave privada almacenada únicamente en el equipo local del usuario y gestionada por el navegador web. Supongamos el mismo escenario de antes: un usuario se quiere identificar en Identi.ca a través de BrowserID. Si no tiene ninguna cuenta de correo con BrowserID activado (de momento ningún proveedor lo ha integrado) accederá a la página de BrowserID donde registrará un correo electrónico como identificación, además el navegador web generará un par de claves asimétricas; la pública se la mandará de vuelta al Proveedor de Identificación (el servidor de correo electrónico u otras secundarias habilitadas) y la privada se la guardará. Cuando el Proveedor de Identificación reciba la clave pública la almacenará, generará una firma electrónica que identifique al correo electrónico que almacenará y enviará de vuelta al navegador web. Una vez que el usuario haya registrado un correo electrónico como identificación estará preparado para logearse con su correo en Identi.ca. Para hacerlo simplemente tendrá que hacer click con el botón izquierdo en un botón diseñado a tal fin y escoger de una lista el correo que quiera utilizar, cuando lo escoja, el navegador codificará la firma digital con la clave privada y se la enviará a Identi.ca junto con el correo electrónico seleccionado, ésta enviará al Proveedor de Identificación la firma codificada junto con el correo, el Proveedor decodificará con la clave pública almacenada la firma recibida y la comparará con la que tenga almacenada. Si coinciden le dirá a Identi.ca que la persona que se ha logeado es quien dice ser y la autenticación de la identidad del usuario se habrá completado; si no coinciden el usuario que se está logeando será identificado como un impostor y no progresará.

Es decir, que la creación de Mozilla de inicio utiliza una firma digital codificada con claves asimétricas para identificar al usuario. Por último basta decir que ambos sistemas pueden asignar a la acreditación (la URL o el e-mail) metadatos que almacenen diferentes datos como fechas de nacimiento, nombres o números de teléfono. Como es evidente, podrás gestionar cada uno de los registros asociados a la acreditación de tal manera que si no quieres que WordPress acceda a tu cuenta bancaria pero sí PayPal, simplemente lo configurarás así en BrowserID.

Los objetivos con los que se ha diseñado tanto OpenID como BrowserID son evitar que el usuario memorice varias contraseñas, facilitar la gestión de datos personales y obstaculizar que éstos últimos sean almacenados en los servidores de la plataforma web a la que se accede. Lo malo es que todos los datos estarán centralizados; si bien el administrador web de la página que visitamos no podrá acceder a ellos el Proveedor de Identificación los tendrá a su merced.

Sinceramente creo que sistemas como BrowserID tienen un futuro brillante porque mejoran varios aspectos clave del actual sistema de identificación. Sin embargo no me agrada en absoluto que sean los servicios de correo electrónico los elegidos a la hora de almacenar todos mis datos personales. Debería ser el usuario el que almacenase completamente sus datos personales a través de smart cards o dispositivos como el deseado FreedomBox. Al fin y al cabo no somos perfiles sino personas.

Fuentes:
Lloyd
Mozilla 

ArsTechnica
OpenID

http://www.pillateunlinux.com/%C2%BFquien-eres/