Subiendo el listón de la seguridad con Argon2.

Argon2 es la función hash más segura para proteger contraseñas y claves de cifrado.

2023-08-23
Nos complace comunicarle que hemos actualizado la función hash de Tutanota a Argon2, el algoritmo más seguro. Este es el primer paso en nuestro camino para convertirnos en un proveedor de correo electrónico seguro post-cuántico, ya que esta función hash puede generar claves de cifrado mucho más grandes utilizadas para proteger sus correos electrónicos, calendarios y contactos de Tutanota.

Como sabes, estamos planeando convertirnos en el primer proveedor de correo electrónico y nube seguros post-cuánticos, ¡y estamos muy contentos de anunciar que ya hemos alcanzado el primer hito en este proyecto!

Con esta actualización tu contraseña - que se utiliza para generar tus claves de encriptación que encriptan todos tus datos en Tutanota - ya no estará protegida con bcrypt, sino con Argon2: un nuevo y avanzado algoritmo que te llevará a una seguridad aún mejor.

¿Por qué cambiamos a Argon2?

Cuando surgió Tutanota, bcrypt era la mejor forma de convertir una contraseña en una clave criptográfica. Convierte tu contraseña en 192 bits de aspecto aleatorio que podemos utilizar con fines criptográficos. Esto es mucha más entropía de la que jamás tendrán las contraseñas de la mayoría de la gente, así que seguramente es suficiente, ¿no?

Bien, como parte de la seguridad cuántica, queremos cambiar todas nuestras claves AES a 256 bits, porque las claves de 128 bits dejarán de ser seguras cuando exista un ordenador cuántico capaz de ejecutar el algoritmo de Grover. Pero los matemáticos se darán cuenta de que 256 es mayor que 192. ¿Qué podemos hacer entonces?

** ¿Qué podemos hacer entonces?

Podemos estirar esos 192 bits haciendo un hash con SHA-256, por ejemplo, y estaría bien en la mayoría de los casos.

Pero, ¿por qué hacer eso si podemos hacerlo mejor?

Argon2

Argon2 ha sido el ganador del concurso de hashing de contraseñas, y con razón. Este algoritmo está recomendado actualmente por la mayoría de las directrices modernas, incluida la Fundación OWASP.

Argon2 aporta una serie de mejoras sobre bcrypt, como la resistencia a la memoria y a los canales laterales.

¿Se puede utilizar Argon2 en todos los clientes?

Una vez que decidimos el algoritmo que queríamos utilizar, nos encontramos con el problema de cómo utilizarlo en todas las plataformas compatibles: Android, iOS, clientes de escritorio y web. El principal problema es que no hay ninguna implementación en JavaScript, o al menos ninguna que nos planteemos utilizar. Hay, sin embargo, una serie de enlaces JavaScript para la implementación C de referencia, compilada a WebAssembly.

WebAssembly es una tecnología que permite ejecutar código escrito en casi cualquier lenguaje de programación en un navegador web.

Eso es lo que decidimos utilizar nosotros también, pero optamos por escribir nuestro propio pegamento mínimo para conseguir los mejores tiempos de carga con el código más limpio.

¿Por qué utilizamos WebAssembly?

WebAssembly es compatible con los principales navegadores desde hace mucho tiempo. Por eso optamos por esta solución, ya que ofrecía los mejores resultados para todos los usuarios de Tutanota en términos de seguridad y velocidad.

Un pequeño contratiempo es que, aunque WebAssembly es compatible con los principales navegadores, sigue sin estar disponible en algunas situaciones, por ejemplo, en el modo Lockdown de iOS.

Nos planteamos evitar por completo este requisito compilando el código C a JavaScript puro (asm.js), pero eso haría que la aplicación fuera demasiado lenta para ser práctica.

Sin embargo, vamos a utilizar implementaciones nativas para las aplicaciones móviles, lo que nos proporciona un mejor rendimiento y elimina el requisito de esos clientes.

Para que todo el mundo pueda utilizar nuestra nueva y más segura protección de contraseñas con Argon2, estamos avisando a la gente de todos los entornos que puedan tener algún problema con WebAssembly de que necesitarán esto para mejorar su nivel de seguridad.

¿Qué están haciendo otros proveedores?

A diferencia de proveedores como Google o Outlook, no utilizamos tu contraseña sólo para autenticarte, sino también para generar la clave que desbloquea todos tus datos cifrados, por lo que realmente necesitamos una función de derivación de clave basada en contraseña, en lugar de una función hash de contraseña o un protocolo de autenticación basado en contraseña.

Para este requisito - como se explicó anteriormente - Argon2 está muy por delante de bcrypt y hará que sus datos cifrados sean aún más seguros.

Hasta la fecha, ninguno de nuestros competidores utiliza Argon2, por lo que con este paso de actualización a Argon2, estamos demostrando una vez más que somos el proveedor de correo electrónico más seguro.

¿Qué hay que hacer?

La mayoría de los usuarios no tendrán que hacer nada; simplemente se beneficiarán de la mayor seguridad una vez que se implante.

Algunas personas que utilizan sistemas que tienen problemas con WebAssembly pueden ver una advertencia.

Si recibe esta advertencia en el navegador Tor, puede:

  • Cambiar al nivel de seguridad Estándar en el navegador Tor, o
  • Iniciar otro navegador, usando la instancia Tor en ejecución como proxy.

Si está en Modo Bloqueo en iOS, recomendamos encarecidamente usar la aplicación Tutanota, no el navegador. Si usas el navegador en el Modo Bloqueo de iOS, necesitarás añadir una excepción para el cliente web de Tutanota.

Si tiene problemas en Android, actualice su WebView (que sólo es necesario cuando se utiliza el navegador en Android).

Asegúrate de utilizar uno de los navegadores soportados o el cliente de escritorio de Tutanota.

¡Estamos contentos de poder aumentar tu nivel de seguridad cambiando de bcrypt a Argon2!