contrasenas


He perdido ya la cuenta de las veces que hemos hablado por estos lares del impacto de la usabilidad en la seguridad de los sistemas. Mi tesis, a grosso modo, es que debemos encontrar la manera de salvaguardar la seguridad de los datos personales y activos de un sistema informático a expensas lo máximo posible del usuario que lo va a utilizar, siendo conscientes de que éste es el eslabón más débil de la cadena, y que en el mundo de Yupi lo suyo es que únicamente se tuviera que preocupar por utilizar el sistema para los fines buscados. Ni más ni menos.

Pero sobra decir que en la actualidad estamos aún lejos de separar la lógica humana de la informática. Y bajo este prisma, aunque se haya demostrado por activa y por pasiva que las contraseñas no son la mejor alternativa para securizar un sistema, siguen y previsiblemente seguirán siendo durante mucho tiempo el nexo de unión principal entre la identidad física del usuario y la digital.

Así pues, toca preguntarse, en el maremagnun de intereses opuestos que existe en cualquier negocio, cómo demonios equilibrar aquellos que tienen como cometido mejorar la usabilidad del sistema de aquellos que tienen como objetivo evitar problemas de seguridad o privacidad en el mismo.

Y ya había dado algunos brochazos no hace mucho en referencia al impacto cuantificable que tenía la decisión de aceptar como válidas contraseñas que CASI eran idénticas al patrón de contraseña que tenemos guardada. Pequeños errores gramaticales, unidos a errores habituales del uso de teclados táctiles y/o físicos (como puede ser el tener activo las mayúsculas por defecto o en la primera letra) que apenas suponen un margen de error de seguridad considerable, y que en cambio permitían al sistema ofrecer una usabilidad mucho más aceptable.

En este caso vamos a ir al polo opuesto.

Sobre el enmascaramiento de datos

Leía hace unos días un hilo en Slashdot (EN) en el que el usuario BeauHD se preguntaba si con la paulatina hegemonía del entorno móvil, no estaríamos despreciando en exceso la utilidad más que demostrada de las mecánicas de enmascaramiento de contraseñas.

Por si no sabe de lo que hablo, decirle que el enmascaramiento de contraseñas es esa serie de estrategias seguidas por los desarrolladores de software para evitar que al tener que meter una contraseña en un sistema informático, un tercero que esté cerca pueda vérnosla (lo que se viene llamando en el argot técnico ataques de shoulder-surfer).


En entornos físicos, como puede ser la inserción de un PIN en un cajero o TPV de un supermercado, lo típico es intentar ocultar la mano con la que estamos metiendo el PIN con la otra mano o con la propia cartera, con el fin de dificultar el interés que un posible mirón (o incluso una cámara estratégicamente colocada por un cibercriminal) tenga de nuestros actos.

Pero esto no serviría de nada si en la pantalla que tenemos justo delante la contraseña se mostrara en texto plano, visible tanto para nosotros como para cualquier otro.

Ahí es donde entran las mecánicas de enmascaramiento de contraseñas, centradas principalmente en transformar en tiempo de escritura lo que nosotros metemos por asteriscos o puntos. Y a estas se incluyen aquellas centradas en enmascarar los propios activos visuales, como puede ser el hecho de apostar por pantallas con un ángulo de visión más limitado de lo habitual (fuerzan a que ese tercero esté colocado justo detrás de nosotros), o a desactivar por defecto el autocompletado de estos formularios (evitando así que se queden grabadas sesiones anteriormente utilizadas en ese dispositivo, por ejemplo).

Sin embargo, y aquí viene la parte interesante, con la paulatina hegemonía del apartado móvil, y en especial del Internet de las Cosas, tanto las interfaces como los periféricos de entrada han cambiado, y con ellos las prioridades de usabilidad de los sistemas, que están forzando a que:

  • Se pase a mecánicas de enmascaramiento de contraseñas temporales: Prácticamente hoy en día casi cualquier formulario que pida una contraseña ofrece también la posibilidad de desactivar temporalmente el enmascaramiento, mostrando por pantalla la contraseña, y haciendo así que sea tanto más fácil de meter por el usuario, como sencilla de identificar por un tercero. También es cada vez más habitual que a la hora de incluir la contraseña el último carácter esté visible en texto plano un par de segundos o hasta que se inserte el siguiente. Y esto, unido con formularios con autocomplete en ON, permite cada vez más que un tercero pueda llegar a un terminal anteriormente utilizado por cualquiera y ver en texto plano su usuario y contraseña. Ya ni hablemos de conectarse directamente y usurparle la identidad.
  • Se pase a mecánicas de no enmascaramiento por defecto: La cosa se vuelve todavía más dañina en casos como el comentado por este usuario, que reconoce haber quedado sorprendido cuando, a la hora de configurar su nuevo router, se ha percatado de que por defecto el enmascaramiento de contraseñas estaba desactivado.
  • Visibilidad “inteligente”: Parecerá una tontería, pero el hecho de que prácticamente todos por defecto tengamos activo el brillo automático en nuestros dispositivos móviles además de facilitar su uso indistintamente de las condiciones lumínicas de nuestro alrededor, también facilita la explotación de datos que un tercero puede obtener de nuestras acciones solamente mirando desde detrás a nuestra pantalla, que intentará siempre estar lo suficientemente brillante como para que cualquiera pueda observarla.

Un entorno eminentemente móvil

La cuestión es que estamos llegando a un punto en el que, bien sea por las limitaciones propias del entorno móvil (teclado táctil de pequeño tamaño manejado con solo dos dedos de la mano), bien sea por las aún más estrictas limitaciones de los dispositivos del Internet de las Cosas (muchos de ellos faltos de interfaz visual y dependientes normalmente de otros dispositivos para preconfigurarse), el escenario parece cada vez más susceptible a ataques de shoulder-surfer.

Hasta el punto de preguntarse si es que entonces las mecánicas de enmascaramiento de contraseñas tienen hoy en día vigencia.

¿Significa esto que ya no tiene sentido apostar por mecánicas de enmascaramiento de contraseñas?


E iría más allá.

En caso de que la respuesta fuera positiva, ¿qué estrategias podemos seguir como usuarios y como desarrolladores para limitar el impacto de ataques de shoulder-surfer sin recurrir al enmascaramiento de contraseñas? ¿Sistemas inteligentes capaces de adaptar su brillo al mínimo necesario tan pronto sean conscientes de que el usuario va a tener que meter una contraseña? ¿Aplicar diseños convexos que minimicen durante esos instantes el ángulo de lectura de la pantalla?

Sinceramente, no sabría darle una respuesta clara. Y por lo que veo en el hilo (la amplia mayoría críticas y trolleos de diferente índole), me da que no soy el único.

Para colmo, tiene una lectura que complica aún más las cosas, ya que presuponiendo que el enmascaramiento de contraseñas sea todavía la mejor alternativa que tenemos para protegernos de este tipo de ataques, y a sabiendas de que en el entorno actual esto rema a contracorriente de la usabilidad del sistema, ¿no estaremos incentivando, aunque sea de manera indirecta, a que los usuarios creen contraseñas aún más sencillas, y por ende, menos seguras?

El tema, como ve, no es tan baladí como a priori parece, ¿verdad?