01 febrero 2012

Autenticación de doble factor Google: Casi perfecta

Hace algún tiempo hablamos sobre como configurar autenticación de doble factor en Apache y en Linux, por eso cuando Google lanzó este servicio, lo activé para evaluar su funcionamiento

El sistema se basa en la combinación de tu contraseña habitual + un token que se puede obtener o bien mediante una aplicación para teléfonos móviles o bien mediante un SMS.

Llevo un tiempo usando el sistema y tengo que decir que funciona francamente bien, está muy bien pensado ya que cubre la mayoría de eventualidades de las que suelen adolecer estos sistemas:

-Al activarlo, Google te da una serie de 'tokens maestros' a modo de sistema para uso en caso de emergencia.

-Durante mis pruebas, la aplicación para Android dejó de funcionar (probablemente por algún problema de sincronización horaria) y fue realmente sencillo hacer el cambio al sistema de SMS (aunque admito que cuando empezaron a fallar los tokens una gota de sudor recorrió mi frente)

No obstante, el sistema tiene, a mi parecer, una importante laguna de la que es conveniente hacer partícipe a la gente.

Una vez activado el sistema, muchas de las aplicaciones ajenas a google que acceden a sus servicios dejan de funcionar, esto es debido a que no están preparadas para trabajar con el sistema de doble autenticación.

Google, que ha pensado en todo, permite configurar contraseñas 'satélites' para usar con esas aplicaciones



Lo que permite que programas como Thunderbid o clientes de mensajería para Gtalk puedan funcionar.

El problema es que Google ha obviado lo que podría haber sido la solución perfecta: Que esas contraseñas tengan ACLs para indicar a cada contraseña que servicio puede acceder.

Al no haber hecho eso, implica que cualquiera de esas contraseñas tiene acceso pleno a todos los servicios (menos a la interface mediante página web) sin restricción alguna, y estas contraseñas son custodiadas según el mecanismo de seguridad que haya implementado el programa en cuestión. 

En muchos casos estos mecanismos dejan mucho que desear y por tanto supone que esa contraseña puede ser fácilmente robada.

Creo que esto es un fallo menor pero que desluce bastante el sistema. Que la contraseña que pretendo usar para mi cliente de mensajería tenga acceso al servicio POP y pueda acceder al correo, lo veo totalmente innecesario.

De hecho es conveniente tener claro que en el momento que se habilita una de esas contraseñas satélites, cualquiera con esa password puede acceder al correo

La solución perfecta pasa por añadir la posibilidad de definir para qué servicio se va a usar la contraseña. De esa forma, si quiero tener mi correo seguro e inaccesible salvo que se use el doble factor, puedo mantenerlo así y además definir contraseñas para acceder a servicios menos peligrosos como Gtalk o Greader.

9 comments :

Roberto Arias dijo...

Me parece interesante el punto de vista.Pero yo opino que esta bien asi, yo manejo diferentes sistemas Operativos, Android, iOS, Windows, MAC, Linux y manejor varios servicios de GoogleGoogle Voice, Google Music(Pagina y Manager), Google Reader, Youtube, Gmail, entre otros.En todos los sistemas que manejo, tengo estos servicios configurados con sus respectivas aplicaciones, me volveria loco crear una contraseña para cada aplicacion en cada OS, en especial linux que uso indicadores para casi todos los servicios de google.En mi caso particular he creado una contraseña para cada OS, y con eso me ha ido de maravilla. Especialmente uso mi cuenta de Gmail para cosas personales y Google Apps para mi oficina. Entonces tengo que Duplicar algunas de las apps de Google por dos.Puede que este muy equivocado sobre como uso estas contraseñas, pero me parece super practico asi, si el dia de mañana me roban un dispositivo solo elimino la contraseña y listo.Ahora un poco mas de protección con un ACL no le cae mal a nadie.Por cierto yo tengo tanto la aplicacion para iOS como para android y no he tenido problemas.

Pako dijo...

Yo creo que una opción interesante sería activar para esa contraseña solo el primer servicio que use.
Es decir si una determinada aplicación conexión usa pop de gmail, solo se permita a esa contraseña el uso de pop.

Esto te implica crear una para picasa, otra para el correo en el movil, otra para ... etc etc, pero me parece mas seguro.

Mariano M. del Río dijo...

Yago, excelente el artículo, muy útil. Sumo lo referido a la necesidad de salvaguardar los códigos secundarios, dado que ante el robo del teléfono móvil el acceso podría complicar gravemente. Para ello se podría utilizar otro servicio en nube, obviamente que no dependa de Google o de la cuenta que tenemos con doble autenticación. Felicitaciones!

Angel Alvarez Nuñez dijo...

Muy bueno Yago !!

Juan Aguilera dijo...

Pues no sabía que Google ofrecía esto y la verdad es que me preocupaba perder el móvil sobretodo por el mail y demás servicios. Ya mismo me lo instalo. Gracias! :)

Greek jewel dijo...

Yo tampoco sabía que Google ofreciera esto... Pero parece muy útil ;) ;) de acuerdo con Mariano del Río, FELICITACIONES! 

German dijo...

Uso este sistema y me parece muy bueno, pero me llama la atención que las contraseñas se puedan usar en todas las aplicaciones. Eso le quita un poco de mérito pero por ahora funciona bien. Añadirle ACLs sería un golazo, la única vuelta de tuerca es configurarlo pero una vez que funciona no hay que tocar más nada.

agux dijo...

Hace... ¿Dos años? Creo recordar que la primera vez que lo oí fue en el Asegur@IT Camp 2... Fue Pedro Sánchez, de Conexión Inversa, que hablaba sobre tokens que se enviaban al móvil para transacciones bancarias y, segundos después, justo en el momento de usarlos, ya lo habían interceptado. Fue hace mucho tiempo, pero, ya que nos lo envían al móvil, no sería descartable algún problema parecido. A ver, puestos a ser paranoicos...

Invitado dijo...

Mucho ojo, la doble autenticación está pensada para que no puedan robarte la cuenta, no para otra cosa. Con una clave de aplicación no se puede acceder a nada, y con usuario/clave + clave de aplicación solo puedes acceder a los servicios, no robar la cuenta.