Hace ya unos años Facebook anunció que empezaría a aceptar versiones ligeramente distintas (EN) de nuestro email y nuestra contraseña a la hora de permitir acceder a la cuenta.
A saber, podremos loguearnos si:
- Metemos el usuario y la contraseña adecuadamente: Obvio :). Si nuestro usuario es [email protected] y nuestra contraseña es c0Ntr4s3ñ4, y lo metemos correctamente, entraremos como es de esperar en la cuenta.
- Metemos bien el usuario y en la contraseña la primera letra o todas las letras están en mayúscula: Algo que el sistema de verificación entiende que puede ser debido a fallos del propio teclado (en móviles suele pasar que en un input por defecto el primer carácter que tecleemos lo mete como mayúscula), o porque tenemos el Bloq. Mayús activo sin darnos cuenta. En el caso anterior, combinaciones de [email protected] y C0Ntr4s3ñ4 o C0NTR4S3Ñ4 nos dejarán loguearnos igualmente, pese a que no sean exactamente correctas.
- Metemos bien el usuario y en la contraseña intercambiamos mayúsculas por minúsculas: De nuevo, debido supuestamente al Bloq. Mayús. Volviendo al ejemplo anterior, si colocara C0nTR4S3Ñ4 Facebook me dejaría pasar.
- Metemos bien el usuario y en la contraseña incluimos un carácter extra no contemplado: El caso más habitual, y que al menos a mi, por la forma que tiene mi teclado, me pasa mucho, es que en vez de darle al Intro le doy al botón de la cejilla (ç), o le doy a los dos a la vez (están pegados), pudiendo afectar a mi contraseña: Ejemplo: c0Ntr4s3ñ4ç.
- Metemos ligeramente mal el usuario y bien la contraseña: Si en vez de teclear [email protected] pongo [email protected] o combinaciones parecidas, Facebook me dejará pasar.
- Metemos el usuario y la contraseña con un límite de combinaciones anteriores: Es decir, que todo lo anterior podría estar unido, de forma que por ejemplo metiera [email protected]ç (dos errores) o C0Ntr4s3ñ4ç, incluso mezclándolos entre sí (un error por ejemplo en el user y otro en la contraseña).
La razón es que, como habrá visto, son errores que fácilmente cualquiera de nosotros podemos cometer. Y la duda está entonces en saber qué porcentaje de usabilidad ganamos a cambio de qué porcentaje de seguridad perdemos, habida cuenta de que realmente lo que estamos ofreciendo a un posible interesado en robar nuestra cuenta son varios pares usuario/contraseña funcionales.
Aquí viene la parte interesante. A lo largo de estos últimos años tanto periodistas ampliamente reputados como Emil Protalinski (EN) como cracks de la talla de Chema Alonso (ES) se han pronunciado al respecto alertando de los peligros que tiene tomar medidas de este tipo.
Y hasta cierto punto tienen razón. Pero siempre y cuando se ejecuten de la manera oportuna, como veremos, obtenemos un sistema mucho más usable sin apenas perder seguridad.
La dosis de usabilidad/seguridad adecuada
Para ello tengo que hacer mención al estudio que el año pasado Thomas Ristenpart, profesor de la Universidad de Cornell, junto con su equipo, realizaban, y cuyo paper enlazo por estos lares (EN/PDF).
El objetivo buscado era conocer los errores más habituales que el usuario comete a la hora de meter una contraseña en un formulario, y fue presentado en el Simposio de Seguridad y Privacidad del IEEE con algunos resultados más que interesantes.
Partieron de un universo de 100.000 claves distintas para llegar a los errores que anteriormente hemos comentado: Dejar mayúsculas activadas, escribir con mayúscula la primera letra o añadir una letra sobrante al final. Hay otros no tan comunes, como intercambiar dos letras, que se quedaron fuera de la muestra.
Y como el tema daba para largo, llegaron a un acuerdo con Dropbox, que les permitió analizar las meteduras de pata que cometieron los usuarios de este popular servicio en 24 horas. ¿El resultado? Un 3% (de usuarios legítimos, ojo) fallaron en el primer intento.
Esto supone como mínimo un 3% más de peticiones al servicio, ergo un 3% más de gasto para la compañía. Sin olvidar la molestia de cara al usuario.
Sin estas medidas, por tanto, perdemos un 3% de usabilidad, pero, ¿cuánto ganamos de seguridad?
Para ello realizaron otro estudio en el que, dado un usuario y contraseña específicos, en un servicio que ya contemplaba las medidas de usabilidad anteriormente citadas, el atacante tenía un máximo de 1.000 intentos para entrar. Un número sensiblemente mayor al que ofrece cualquiera de estos servicios, generalmente protegidos bajo sistemas anti fuerza bruta.
¿El resultado? Los atacantes lograban como máximo una mejora del 0,02%.
Un 3% de mejora frente a un máximo de 0,02% de pérdida.
¿Dónde está el truco?
Muy sencillo: En aplicar contextualidad a las peticiones.
Facebook ofrece al usuario todas estas alternativas a la hora de intentar conectarse, pero siempre y cuando la conexión provenga de una IP y dispositivo ya conocido en su cuenta.
Y además, aplica un sistema más restrictivo cuando no está del todo seguro si la persona que intenta acceder es la legítima y se ha equivocado, o es un atacante que ha tenido suerte a la primera. Bajo esta premisa, basta con pedirle un dato como su fecha de nacimiento, que le verifique quienes son sus amigos de un listado de fotos de perfil, o un segundo factor de autenticación para cerciorarse de que en efecto es quien dice ser.
Unimos esas combinaciones de usuario/contraseña (un factor de seguridad negativo) con la contextualidad de la petición (un factor de seguridad positivo), y obtenemos que, mejorando considerablemente la experiencia del usuario, apenas perdemos en seguridad.
Es un win-win claro.
Hay, no obstante, algunos puntos flacos que conviene señalar. En efecto, para contraseñas que ya consideradas de antemano débiles, el que podamos incluir un carácter más debilita aún más la seguridad de esa cuenta. Imagínese por ejemplo una cuenta protegida por la contraseña 12345 a la que un ciberatacante prueba con 123456, u otra protegida bajo la contraseña password y que el atacante haya probado passwords.
Pero recalco, estamos hablando de casos muy específicos donde la robustez de esas contraseñas ya es de por sí baja. Y además, aún tendríamos que estar en el mismo dispositivo desde el que se hizo alguna de las conexiones anteriores (ergo, un ataque dirigido), puesto que si no, y debido a la contextualidad, el sistema nos pediría un segundo factor.
Quería hablar de esto ya que a veces confundimos peras con manzanas. Los servicios digitales nos tienen acostumbrados a anteponer usabilidad a seguridad y/o privacidad sencilla y llanamente porque ésta afecta más directamente al negocio que el resto. Pero esto no significa que, bien implementada, la usabilidad tenga que afectar al buen desempeño de estas dos otras cualidades del producto.
Y viceversa. La seguridad o la privacidad no tienen por qué estar reñidas con la usabilidad. Como ya he explicado en más de una ocasión, se trata de penalizar al malo, no al bueno.
Ahora bien Pablo, un concepto interesante reflexionando sobre la contraseña esta bien…. Pero hasta que punto facebook, controla las cuentas falsas?…. Eso seria otro articulo para que analizaras…..¿Hasta que punto facebook en ese win-to-win esta haciendo las cosas bien…Todos quieren big data…Todos quieren tener cuanta mas informacion sobre ti, mayor sera la capacidad para creer en tu marca, producto, o lo que tu quieras vender….¿Realmente podemos confiar a “ciegas” de una red social?, ¿llamemosle facebook, twitter, linkedin?
Yo sigo quedandome con lo basico, las relaciones, sean de forma presencial o por internet….Aunque para elo hay que socializar, y esa palabra “socializar”, tiene distintos puntos de vista, para el “marketero”, para el “vende humos”, “para el coach”, en fin…. Sigo pensando hasta que punto internet, puede ser global,aunque tambien sigo pensando hasta que punto llegaremos a ser maquinas que nos contesten todo…Con esos bots automaticos como KLM, si esa empresa de viajes, que ya tiene un bot automatico en sus redes sociales….. ¿Cuanto costaria tener control sobre la mente humana?, ¿Cuantas personas necesitariamos para crear toda una “cualicion” para lanzar un producto….¿Cuanta publicidad se necesita para crear una marca?,¿Cuantos comentarios necesitamos para creer en alguien?, si cada blog tiene un punto de vista muy diferente… ¿A quien le creo?, ¿Como podemos crear impacto mejorando la visibilidad de una marca?…¿Hasta que punto es algo seguro?, todos hablan sobre las leyes, pero quien habla de leyes, tambien habla de personas que se pueden equivocar o no…Porque como todo, la informatica se equivoca, si no existieran los parches, los antivirus, los programas que se pueden romper las protecciones, ¿Cuantos 0 days hay en internet?, Para analizar y pensar, ¿Estamos vigilados?, ¿Estamos constantemente protegidos o es una ilusion?….
Si ahora hasta tenemos programas conocidos de diseño que ya estan siendo pirateados….¿Sera que estamos haciendo algo mal?, ¿O es la publicidad que nos impide mejorar la vida de las personas?
No cabe duda que todos dicen protege tu contraseña, ¿Realmente se puede proteger una contraseña?, no lo creo, porque en el momento que se cambia, ya habra otro programa para que la contraseña se salte, y eso seguro que tu lo sabes si eres tecnico, ¿O me equivoco?…Saludos, y que estes bien…Yo siempre como digo sigo a quien me informo , el resto lo rechazo, o simplemente no abro sus correos….
Buenas Miguel. Realmente a todas esas preguntas la respuesta deberías ser tú mismo. Es decir, entiende este tercer entorno como un escenario más de oportunidades, y es tu deber ser crítico con la forma en la que lo utilizas y los beneficios y perjuicios que recibes con ello.
¿Qué hay mucha información distinta en la red? Es tu deber quedarte con las que más te interesen, y darte cuenta de paso que ante cualquier tema rara vez va a haber una única verdad absoluta.
¿Que qué es eso de Socializar digitalmente? Un mero canal extra a los que ya teníamos en la antigüedad, que en ningún momento debería sustituir a estos últimos.
Internet nos ha ofrecido la posibilidad de estar en contacto con personas que por razones geográficas difícilmente íbamos a poder habernos conocido. Ha permitido crear un ecosistema muy rico en información, pero la mayoría de esta información no aportará valor. Ahí es donde entra el papel del usuario, decidiendo por dónde pasa y con qué se queda.
Facebook es una empresa, y como tal, su principal eje motivador es el dinero. Dentro de eso, ha sido hasta ahora la que mejor se ha movido en ese entorno de sociabilidad. Pero quizás el día de mañana haya otra que lo haga mejor. La cuestión no es tanto quiénes son sino ser conscientes de este hecho y utilizar sus servicios como lo que son: una mera herramienta, un canal alternativo.
Veo varios conceptos mezclados, Facebook en concreto implementa muchas medidas de seguridad que lo hace estar permanentemente en modo paranoico, por lo que, cuando implementa algo que mejora la usabilidad y que puede parecer una perdida de seguridad, hace que esta sea poco más que despreciable.
Dado que muchos móviles empiezan escribiendo en mayúscula, es muy aceptable que acepte este cambio, el resto me parecen más bien una sobrada por parte de facebook, aunque, y dado que facebook creo que no ha dicho nada al respecto, igual lo ha hecho tras comprobar cuales son los errores que habitualmente cometen los usuarios.
Por otra parte habría que ver como lo implementa, entiendo que lo que hace es, una vez pones el user y el password, lo que hace es genera los distintos hashes y verificar contra el único hash que guarda con el password correcto. Esto no tiene ni siquiera ser visto por el usuario, que solo ve que funciona. Ni tampoco afecta a la seguridad del guardado de los passwords, puesto que solo guarda un hash. (si es que es eso lo que hace).
Habría que ver más a fondo como se ha realizado la prueba y si es equiparable, pero dudo que dropbox tenga implementada una seguridad ni remotamente parecida a la de facebook, con todos mis respetos hacia dropbox.
En cualquier caso, donde si veo el problema es cuando este tipo de cosas se democratizan, y llegan a servicios donde sus ingenieros no han tenido en cuenta las mismas cosas y las implementan de otra forma. En ocasiones esto si puede suponer un problema.
Decir que la seguridad empeora en un 0.02% me parece un valor muy elevado, sobre todo por que creo que solo afecta a lo que un atacante ponga en el user y password desde dispositivos conocidos. Y además bloquea cuando se han hecho múltiples intentos. Así pues, para tener un empeoramiento de la seguridad tan alto solo puede ser achacable a tener información parcial de la contraseña, como por ejemplo, que intentemos robar la contraseña viendo cuando la teclea en el teclado.
Aportes todos muy válidos Khepper. En efecto hay que aceptar también el propio entorno donde se implementa. Esto mismo en otro escenario no tan controlado como Facebook seguramente sería bastante más crítico.