He repetido hasta la saciedad que hoy en día, el sistema de identificación más seguro sigue siendo aquel basado en doble factor de autenticación.
¿Por qué? Por dos motivos principales:
- El equilibrio entre seguridad y usabilidad es bastante adecuado: Todo sistema de identificación destinado al uso masivo por parte de la sociedad tiene que tener esto en cuenta. Por supuesto podremos crear sistemas multifactor muchísimo más seguros, pero a costa de sacrificar usabilidad. El doble factor hereda los puntos buenos de un sistema de identificación único (es relativamente cómodo de usar y es tan seguro como seguro sea el sistema que hayamos decidido utilizar como principal) y parte de los beneficios del multifactor (añade una capa más de seguridad) sin volverse una putada para el usuario (éste solo lo tiene que meter nuevamente cuando se cambia la contraseña o se utiliza un dispositivo distinto).
- Cada capa de seguridad opera bajo un riesgo distinto: Las contraseñas son sistemas puramente digitales basados en el conocimiento, mientras que el token o SMS enviado al smartphone, aunque tienen una parte digital innata, podemos considerarlo sistemas basados en la posesión. Eso quiere decir que para que un ataque tenga éxito debe actuar a nivel digital (robar o descubrir por ejemplo el usuario y la contraseña de los servidores del servicio en cuestión) y a nivel físico (robarnos o agenciarse durante unos segundos nuestro dispositivo). Ergo, cubrir a la vez un riesgo local y global.
Por supuesto, ya ha quedado demostrado con anterioridad que el sistema de verificación basado en SMSs puede ser comprometido bajo ataques de ingeniería social. Pero seamos sinceros, algo así no es automatizable y/o escalable. Por supuesto, puede aplicarse para ataques muy específicos (hackeos dirigidos específicamente a una persona o grupo de personas), pero es un riesgo bajo considerando que los recursos necesarios para realizarlo no están ni de lejos al alcance de cualquiera (agencias de inteligencia para campañas de espionaje específicas y poco más).
Teniendo en cuenta esto, me sorprende la coba que le han dado estos días al Delegated Recovery de Facebook (EN). Un sistema de doble factor que asegura ser mucho más robusto que el doble factor tradicional.
Algunos aspectos a considerar sobre Delegated Recovery
La propuesta de Facebook pasa, como no podía ser de otra manera, por utilizar la identidad de nuestro perfil de Facebook como sistema de identificación de doble factor.
Para ello, la idea es que cualquier servicio que quiera implementar un doble factor pida autenticación a la cuenta de Facebook del usuario mediante un token. El token de recuperación se almacena cifrado (hombre, era de esperar…) en los servidores, se compara con la identidad del usuario, y si todo está ok, se identifica correctamente.
Como principal ventaja se me ocurre que es aún más cómodo que el segundo factor de autenticación tradicional. A fin de cuentas, todo ocurre de forma digital, y si me apura, abstracta para el usuario. Éste pide conectarse en un servicio, y el servicio, junto a Facebook, se encargan de hacer todo el jaleo de doble factor para demostrar que en efecto esa persona es quien dice ser.
Ahora bien, ese mismo elemento que lo hace tan cómodo es, en esencia, su mayor debilidad. Porque estamos delegando la seguridad de una cuenta a dos factores puramente digitales. Y esto quiere decir que un potencial atacante debe enfrentarse a dos riesgos distintos pero ambos globales. Dos ataques que no dependen de la posesión física del usuario (como ocurre con el SMS o la aplicación de token en nuestro smartphone), sino de dos servicios disponibles desde cualquier lugar del mundo.
Bastaría con que, por ejemplo, ese usuario utilizara la misma contraseña tanto para el servicio con doble factor como para Facebook para que en la práctica ese doble factor fuera uno único. Si tenemos la llave de entrada a los dos escenarios, no hay más seguridad que si en vez de dos fuera uno solo.
Para colmo intensificamos otro problema que si bien ya está presente hoy en día en la sociedad, se haría aún más palpable.
Nuestro perfil de Facebook es, como ya expliqué en más de una ocasión, nuestro Yo digital en el tercer entorno. Han sabido moverse tan bien como para que en la mayoría de servicios ya ofrezcan, junto a la creación de una cuenta específica, la creación de esa misma pero bajo el OAuth propio de Facebook.
Una guerra por ser el centro de nuestra identidad digital en la que compiten con Google, Twitter, y lamentablemente hasta no hace mucho, con Mozilla.
Y de nuevo, un elemento más centralizador de nuestra identidad en la red, con los riesgos que ello conlleva, y bajo el cobijo de una empresa que VIVE de los datos de sus usuarios.
Hablaba a principios de semana sobre Blockstack y cómo este sistema proponía un escenario en el que la información personal estuviera bajo el control del usuario. Eso en Facebook (o Google, o Amazon…) no es posible. Ya ha quedado demostrado en más de una ocasión cómo los tentáculos de Facebook llegan incluso hacia aquellas personas que no tienen cuenta creada en su servicio. Que nos scrapean incluso cuando estamos navegando fuera de sus dominios.
Delegando la identidad del doble factor a una empresa data driven masiva como es Facebook no obtenemos más seguridad (todo lo contrario), y de paso, perdemos aún mayor control, al ceder esta responsabilidad (y por tanto, generar mayor dependencia) a sistemas centralizados digitales.
Bajo este prisma un servidor lo tiene muy claro.
hoy en día, hay mayores garantías en un sistema de doble factor basado en tokens y SMS en el smartphone que uno como el que propone Facebook. Aún a sabiendas de las debilidades e incomodidades que éstos pueden suponer. Al final todo se trata de elegir en qué sistemas delegamos responsabilidades. Y llegados a ese punto, prefiero hacerlo con herramientas que no están bajo control directo de X compañía (como puede ser un smartphone), y que están sujetas a eventuales robos o extravíos (solventables en todo caso cuando recuperemos nuestra SIM o la dupliquemos), que hacerlo bajo la esperanza de que en efecto dicha información no acabe en manos de terceros.
Algo de lo que, por cierto, Facebook no es precisamente ejemplo a seguir.