Conoce cómo almacena Dropbox las contraseñas de sus usuarios

Conoce cómo almacena Dropbox las contraseñas de sus usuarios

Sergio De Luz

Uno de los pwned más conocidos de los últimos meses, ha sido el hackeo que sufrió el popular servicio de almacenamiento en la nube Dropbox en el año 2012. Hace unas semanas Dropbox envió un correo electrónico a todos sus usuarios recomendando que cambien las contraseñas por seguridad (solo por seguridad, no es que nos hayan hackeado y hayan llegado hasta la cocina). Ahora en el blog de Dropbox han explicado cómo almacenan las contraseñas de sus usuarios en las bases de datos, ¿adivinas qué algoritmos de hash utilizan?

El popular servicio Dropbox no almacena las contraseñas de sus usuarios en texto plano, algo lógico, ya que es la primera medida de seguridad que se incorpora a los sistemas cuando tengamos que almacenar contraseñas de usuarios. En caso de que nos comprometan el sistema, los ciberdelincuentes tendrían todas y cada una de las claves en texto plano. Por esta razón, aparecieron los algoritmos de hash, unas funciones criptográficas para poder sacar una huella única (en caso de que el algoritmo que usemos no tenga colisiones) fácilmente, pero que sea imposible que a través de la huella, sacar el texto en claro (a no ser que realicemos ataques por diccionario o fuerza bruta).

Funciones HASH MD5

En nuestro artículo sobre HASH tenéis en detalle cómo funcionan:

  • Criptografía: Algoritmos de autenticación HASH

Recientemente hemos publicado un artículo donde indicamos los algoritmos HASH más seguros, dependiendo de si queremos autenticar datos, o almacenar contraseñas, es recomendable utilizar unos u otros:

  • Los mejores algoritmos de HASH

Debemos tener en cuenta que hoy en día las CPU y GPU son realmente potentes, y seguirán mejorando a medida que pasen los años, por lo que es fundamental elegir un buen algoritmo de HASH sin colisiones conocidas (no como MD5), para que en caso de que nos roben dicho «String» con la contraseña hasheada, sea muy costoso crackearla.

Así es la protección que tiene Dropbox para almacenar las contraseñas de sus usuarios

Lo primero que hace Dropbox con la contraseña en texto plano es pasarle la función SHA512, la versión SHA-2 con 512 bits de longitud, la más segura hasta ahora, y un algoritmo que es por ejemplo el usado en sistemas Linux como Debian para almacenar la contraseña de los usuarios (opción por defecto). Puedes ver las soluciones a los fallos de sincronización de Dropbox.

El motivo de utilizar SHA512 es que la función bcrypt en algunas implementaciones trunca la entrada a 72 bytes, lo que reduce la entropía de las claves, y otras veces no trunca las contraseñas, por lo que es vulnerable a ataques de fuerza bruta por conocer la longitud de las mismas. Aplicando SHA512, cualquier contraseña de cualquier longitud va a tener 512 bits, resolviendo ambos problemas.

dropbox_hashes

A continuación, se utiliza la función bcrypt con un coste de 10, y es única ya que se usa una «salt» por cada usuario. bcrypt es ideal para almacenar claves ya que está diseñada para ser lenta aunque se utilicen CPU y GPU potentes, resolviendo el problema de la fuerza bruta. Un factor de 10 se transforma en un tiempo de unos 100ms en los servidores de Dropbox.

El hash resultante, se cifra con el algoritmo de cifrado simétrico AES 256, el algoritmo más seguro hasta el momento, con una clave secreta que es común a todos los hashes. Esta contraseña se almacena por separado, de tal forma que un atacante no tenga acceso a dicha clave. De esta forma, si se compromete la base de datos donde están los credenciales de usuario, no tendrán acceso a esta clave secreta.

Os recomendamos leer este artículo en el blog de Dropbox donde explican las decisiones de utilizar estas técnicas.

¡Sé el primero en comentar!