En la anterior edición del consultorio tecnológico os contamos a qué se debía que pudierais recibir en vuestro iPhone una notificación de Apple alertando de que una de vuestras contraseñas había aparecido en una filtración de datos. En resumen, es porque Apple cuenta con un sistema para comprobar que las contraseñas que almacenamos en su ‘llavero’, una especie de gestor de contraseñas, puedan estar comprometidas. De ahí ha salido la siguiente pregunta: ¿cómo comprueba Apple que mi contraseña ha aparecido en una filtración si, en teoría, dice que no tiene acceso a ella?
Ojo, no solo Apple ofrece este tipo de ‘caja fuerte’ para contraseñas. Seguro que más de una vez has iniciado sesión en una red social o una cuenta en una página web y tu navegador (Google Chrome, Safari, Mozilla Firefox…) te ha mostrado una pequeña alerta con la que te invita a guardar tu usuario y tu contraseña. En este caso siguen el mismo proceso, igual que los gestores de contraseñas: aplicaciones que sirven para guardar de forma segura tus contraseñas y otros archivos confidenciales. Su mayor utilidad es que nos permiten tener contraseñas fuertes y robustas para cada servicio sin olvidarnos de ellas y así evitar reutilizarlas o poner unas demasiado simples.
¿Cómo se guardan las contraseñas ahí dentro de forma segura?
La empresa no puede coger tu contraseña y hacer lo que quiera con ella mientras está guardada en su sistema y además de eso la protege con una serie de técnicas criptográficas, pero sí que puede hacer este tipo de comprobaciones con las contraseñas que le confiamos.
“Cuando un proveedor de servicio quiere comprobar si tenemos una contraseña válida, lo que hará será comparar el hash de la contraseña que enviamos con el hash que tiene almacenado. No compara las contraseñas de forma directa”, explica a Maldita.es David Arroyo, investigador en el CSIC experto en Criptología y Seguridad de la Información, quien además es un maldito que nos ha prestado sus superpoderes.
Veamos de qué va esto: una función hash es una secuencia criptográfica usada para convertir un conjunto de datos en una línea aleatoria de caracteres. Digamos que sirve como un identificador de unos datos concretos que, al ser aleatorio, es también más seguro.
Por simplificar el proceso un poco más: imagina que tuvieras un cofre en el que guardas tus contraseñas escritas en un papel. Cada vez que lo doblas y lo metes en él, la clave que has escrito se transforma en un conjunto aleatorio de caracteres que ni tú mismo entiendes. El cofre está cerrado, así que mucho no puedes hacer dentro, pero ese nuevo número sirve para identificar tu clave mientras esté ahí guardada. Cada vez que abras el cofre y cojas el papel, tú verás la contraseña inicial que habías escrito.
Normalmente, cuando usamos un gestor de contraseñas o el sistema de autoguardado de un navegador, lo que hacemos es vincular un identificador a una contraseña, según nos expone Arroyo. Ese identificador, que es solo nuestro, se guarda de forma segura para que nosotros podamos iniciar sesión en el servicio que sea cada vez que lo necesitamos (es decir, para que solo tú puedas abrir tu cofre).
Cuando almacenamos una contraseña haciendo uso de ese identificador, en realidad lo que el sistema está guardando es el resultado de aplicar una función hash a la propia clave. Y cuando Apple dice que periódicamente comprueba si nuestras contraseñas han aparecido en una filtración de datos, lo que realmente está haciendo es comprobar que la función hash que tiene coincide con la de las claves filtradas.
“Sitios web como ‘HaveIBeenPwned’ almacenan los identificadores que se han visto incluidos en robos parciales o totales de contraseñas”, añade Arroyo. De este tipo de servicio te hemos hablado en otras ocasiones, como en este artículo en el que te hablamos de cómo detectar filtraciones de datos y qué hacer si se es víctima de una.
Muchos sistemas guardan las contraseñas con un cifrado de extremo a extremo
Ni siquiera las empresas que sufren una filtración parcial de su base de datos con los hashes de contraseñas tienen por qué tener acceso a ellas. “Hay que tener en cuenta que el cálculo del hash de una contraseña se puede efectuar en el lado del cliente, cosa que se hace en el caso de los sistemas con cifrado de extremo a extremo”, dice Arroyo.
¿Qué quiere decir esto? Muchos servicios de guardado de contraseñas aseguran que guardan nuestras claves con un cifrado de extremo a extremo. Esta técnica la hemos visto en sistemas de comunicaciones: por ejemplo en WhatsApp, que dice que cifra todas nuestras conversaciones de extremo a extremo y que solo el emisor y el receptor del mensaje pueden leer su contenido. Nadie más.
Pino Caballero, doctora en Criptografía y Seguridad Informática de la Universidad de La Laguna, nos lo explica: “Las contraseñas se cifran en el dispositivo origen [por ejemplo, nuestro móvil] de forma que se envían y almacenan cifradas, y solamente se descifran una vez llegan de vuelta al dispositivo destino final tras una petición de recordar contraseña [por ejemplo, Chrome autocompletando nuestra contraseña]. Debido al cifrado de extremo a extremo y la forma en que se calcula la clave, nadie más salvo el usuario puede acceder a los datos protegidos, tanto durante el tránsito como en su almacenamiento”. De ahí que las empresas digan que ni siquiera ellas pueden acceder a las credenciales.
Con todo, Arroyo nos recomienda no solo confiar en proveedores en los que guardar contraseñas: “La pauta de seguridad recomendable en la actualidad en lo relativo al acceso a servicios online es usar autenticación con múltiples factores, por ejemplo, combinando el uso de contraseñas con el uso de códigos de un solo uso que nos lleguen a nuestro móvil a través de SMS o, mejor, mediante notificaciones push en una app diseñada a tal efecto (por ejemplo, Google Authenticator, 1Password, etc.), o empleando claves físicas de seguridad (por ejemplo, Yubikey, NitroKey, TitanKey, etc.)”.