¿Por qué los sitios web deben rociar sal en sus hashes para proteger sus contraseñas?

[ware_item id=33][/ware_item]

¿Por qué los sitios web deben rociar sal en sus hashes para proteger sus contraseñas?


A pesar de sus deficiencias, las contraseñas siguen siendo el estándar de facto para la autenticación en la web.

ExpressVPN ya ha escrito sobre los beneficios de crear contraseñas seguras usando Diceware, usando administradores de contraseñas y creando otra capa de seguridad alrededor de sus cuentas con autenticación de dos factores.

¿Pero qué pasa detrás de escena? Qué medidas puede y debe tomar un operador de sitio web para proteger sus contraseñas?

El nacimiento de la piratería informática

El primer sistema informático que usó contraseñas fue el Sistema de tiempo compartido compatible en el Instituto de Tecnología de Massachusetts, construido en 1960. El tiempo compartido permitió que la computadora se dividiera y se usara como varias estaciones de trabajo..

Aún así, había más investigadores que estaciones de trabajo, y a los usuarios se les asignó un tiempo limitado en el sistema (que algunos agotaron con bastante rapidez). Para asegurarse de que los investigadores se mantuvieron dentro de sus límites, a cada uno se le asignó una contraseña única para iniciar sesión.

Pero, por supuesto, con las primeras contraseñas llegó el primer hacker. Un investigador, Allan Scherr, utilizó un sistema que permitía a los usuarios imprimir archivos a través de tarjetas perforadas (las computadoras no tenían pantallas en la década de 1960). Scherr localizó e imprimió el archivo que almacenaba las contraseñas, lo que le permitió iniciar sesión como otros usuarios y usar la computadora durante más tiempo..

Hoy en día se considera muy negligente almacenar contraseñas en texto claro en un sistema, aunque el hackeo en 2016 del sitio de redes sociales ruso VK.com muestra que algunos sitios grandes todavía lo hacen. Las contraseñas de VK.com de 100 millones de usuarios fueron robadas y ahora están a la venta.

¿Por qué las funciones hash son una calle de sentido único?

Una función hash es un cifrado unidireccional y actúa de manera muy similar a una huella digital. Cada archivo, palabra o cadena de texto se designa como una "huella digital" hash, que identifica de forma exclusiva el contenido exacto del archivo original.

Los hashes se pueden usar para determinar información, pero no lo que representan los datos. Una manera simple de imaginar cómo funcionan los hashes es con sumas de dígitos (la suma de todos los dígitos de un número).

La suma de dígitos de 9807347 es 9 + 8 + 0 + 7 + 3 + 4 + 7 = 38

Aunque es fácil ver que la suma de dígitos de 987347 es 38, es imposible calcular 987347 a partir del número 38.

Contraseñas seguras con hashesHash SHA-256 para varias cadenas de texto y un archivo de imagen.

SHA-256 ofrece un universo de permutaciones

Increíblemente, 256 bits es una salida lo suficientemente larga como para identificar de forma exclusiva cada átomo en el universo observable (2 ^ 256 = 1.157920892 × 10⁷⁷).

Aunque, en teoría, podría haber dos valores diferentes que tengan el mismo hash SHA-256. Tal evento se llama colisión de hash, y la seguridad de cualquier función de hash se basa en que no se pueden descubrir.

Se sabe que el predecesor de SHA-2 (del cual SHA-256 es una variante), el alguna vez popular algoritmo SHA-1, es vulnerable a las colisiones de hash. Aunque vale la pena señalar, nadie ha encontrado uno.

Otro hash una vez popular, MD5, tenía tantas vulnerabilidades que no es una defensa útil contra la manipulación maliciosa de archivos.

Además de cifrar contraseñas, las funciones hash también pueden ser útiles para garantizar que los archivos no hayan sido alterados, de forma similar a las firmas criptográficas, ya que una cadena de texto alterada alterará la clave hash.

El almacenamiento de contraseñas como hashes, en lugar de texto claro, permite verificar que una contraseña sea correcta sin dejar la contraseña vulnerable a los piratas informáticos.

Salt and hash protege tus contraseñas

Si alguien pudiera piratear una base de datos que solo contenía contraseñas hash, en teoría, no obtendría información útil. En realidad, sin embargo, las personas reutilizan sus contraseñas en muchos sitios, o usan palabras comunes en ellos, y hay muchas cosas que un hacker puede hacer para descifrar los hash.

Cada hash SHA-256 de la palabra ExpressVPN es siempre el mismo, en todos los sistemas. Entonces, si su nombre de usuario es Lexie y utiliza ExpressVPN como contraseña (no lo haga), un hacker podría buscar el hash "c9f45 ... 3d185" entre las contraseñas para ver que la contraseña de Lexie es ExpressVPN.

Aunque esto no suena particularmente útil por sí solo, hay listas de los pocos miles de contraseñas más utilizadas (que conocemos de hacks anteriores).

Usando dicha lista, un hacker podría buscar los hash de las contraseñas comunes y relacionarlas con los nombres de usuario..

Este tipo de ataque se llama ataque de tabla de arcoiris o diccionario. No queda suficiente tiempo en el universo para que un atacante intente todas las combinaciones posibles de hash / contraseña en un ataque de fuerza bruta. Pero hay tiempo suficiente para probar las contraseñas más populares, lo que probablemente comprometería una parte importante de la base de datos..

La salazón protege las contraseñas al asignarles números únicos

Para protegerse contra los ataques de diccionario, un administrador de base de datos puede usar un método llamado "salazón", donde cada contraseña tiene asignado un número aleatorio único. Luego se calcula, almacena y comprueba un hash SHA-256 de la combinación de sal y contraseña..

Alternativamente, la contraseña se puede cifrar, combinada con el número de sal, y el resultado se vuelve a cifrar..

Los hash salados agregan una protección adicionalEjemplos de hashes "salados", hash nuevamente.

Debido a la técnica de salazón, crear una mesa arcoiris ya no es atractivo. Los números aleatorios harían que cada hash sea único, incluso si el usuario no eligió una contraseña única.

Si un hacker quisiera apuntar a los usuarios con la contraseña "Passw0rd!", El número de sal mantendría segura la base de datos.

El futuro de los sistemas de contraseñas.

Las contraseñas están lejos de ser óptimas para la autenticación en línea. Una buena es difícil de recordar, es difícil de revocar y una vez que se filtró puede causar daños considerables..

Los administradores de contraseñas pueden hacer que las contraseñas sean más fáciles de usar y ayudarlo a crear otras únicas. También lo alentarán a cambiar sus credenciales de inicio de sesión regularmente, lo cual es necesario para una buena seguridad en línea.

Quizás en el futuro, pasemos a formas alternativas de autenticación, como pares de claves públicas / privadas, posiblemente combinadas con claves de hardware. En dicho modelo, solo necesitaría cargar su clave pública una vez en un servidor al registrarse, y nunca más.

Si bien no son necesariamente magnitudes más seguras que una solución de contraseña implementada adecuadamente, es menos probable que el usuario y el servicio apliquen incorrectamente los pares de claves públicas / privadas.

Qué puede hacer para proteger sus contraseñas

Tenga en cuenta que muchos de los servicios que está utilizando hoy podrían haber perdido el control de sus contraseñas. Tal vez aún no lo sepan, o tal vez se nieguen a reconocerlo públicamente, protegiendo su imagen a expensas de la seguridad de sus usuarios.

Use un generador de contraseñas aleatorias y cambie sus contraseñas en largas cadenas aleatorias de letras y caracteres. También puede activar la autenticación de dos factores en algunos servicios para agregar una capa adicional de seguridad.

También es una buena idea eliminar cualquier cuenta que ya no esté utilizando, con la esperanza de que el servicio elimine sus datos de usuario junto con ella..

¿Por qué los sitios web deben rociar sal en sus hashes para proteger sus contraseñas?
admin Author
Sorry! The Author has not filled his profile.