que informatica huella generador funciones funcion descargar criptográficas security encryption

security - informatica - ¿Por qué debería preocuparme por las contraseñas hash de todos modos?



huella hash (12)

¿Debo almacenar las contraseñas en un servidor diferente al resto de mis datos?

Esto agrega complejidad a su sistema, pero si es algo que puede hacer, definitivamente es una mejora.

Tenga en cuenta que el uso de servidores de autenticación como Kerberos, RADIUS o la autenticación de dominio de Windows le asignan contraseñas en otro servidor.

Si un hacker tiene acceso a los hashes en mi base de datos, de todos modos tiene acceso al resto de la información en la base de datos. Entonces, ¿por qué se molestaría en intentar descifrar las contraseñas? ¿Debo almacenar las contraseñas en un servidor diferente al resto de mis datos? Ese es el único escenario en el que puedo imaginar que sea útil.


  1. Las personas a menudo usan el mismo nombre de usuario / contraseña para diferentes cuentas en otros sitios web (incluido, por ejemplo, acceso en línea a cuentas bancarias).

  2. Una vez que haya descubierto este truco y haya asegurado su base de datos, el pirata informático aún podrá iniciar sesión en las cuentas de su usuario.


El uso de una contraseña hash evita que el atacante pueda iniciar sesión en su aplicación, incluso si conocen el hash. Su página de inicio de sesión solicita la contraseña original, por lo que para iniciar sesión con ella, tendrían que invertir el hash (calcular una colisión). Usar una tabla de arcoiris, eso es bastante trivial para MD5, por ejemplo, que es donde entra la salazón. Entonces el atacante necesita saber 1) la forma en que combina la sal y la contraseña (no mucha seguridad), 2) la sal ( que ya es probable en el db) y 3) tienen que calcular ese valor para cada combinación de contraseña y sal. Eso es mucho más que computar hashes de contraseñas comunes y buscar una coincidencia.


En algún momento, no sabes quién será el administrador del sistema. Aún desea proteger a sus usuarios de ellos. Por lo tanto, al cifrar las contraseñas y toda la información importante (como la tarjeta de crédito), lo hace realmente más difícil para el pirata informático o el administrador. Y, creo que la contraseña nunca debe escribirse literalmente. Quiero decir, utilicé una contraseña desde hace 2 años y nunca la he visto escrita ... ¿por qué un administrador que no conozco debería ver MI contraseña?


Porque incluso si tiene acceso a los datos, tener acceso a la APLICACIÓN es realmente más importante. La aplicación hace que sea mucho más fácil manipular los datos, por ejemplo.

Hashing la contraseña evita la exposición casual de todos los ojos.

Por ejemplo, es posible que tenga la misma contraseña en varios sitios. Un vistazo rápido al DB no solo compromete su aplicación, sino tal vez varias otras.

Es una buena práctica, sólida para hash contraseñas.


Principalmente porque es casi trivial hacerlo bien, y los beneficios pueden ser muy altos.


Las mejores prácticas de seguridad sugieren:

  • Debe usar un par único (userId, password) para cada cuenta que tenga. Pero la mayoría de la gente usa un solo par para muchos recursos (correo electrónico, banco, etc. ). Un atacante puede robarlos de un recurso y usarlos para acceder a otro. Hashing las contraseñas con sal -ver http://en.wikipedia.org/wiki/Salt_(cryptography) -previene este tipo de ataque.

  • Debe cifrar todos los datos confidenciales en su base de datos, no solo las contraseñas. Su punto de que alguien podría robar su base de datos completa (o su servidor) es perfectamente válido.

  • Debe separar su servidor web de su base de datos y cualquier otro recurso valioso, para poner en cuarentena un ataque a su activo menos valioso.

También hay motivos comerciales para contraseñas hash . Recuerde, hash significa que no almacena las contraseñas de los usuarios en ningún lugar de su equipo.

  • Dependiendo de las leyes que apliquen, se le puede solicitar que haga esto en ciertas situaciones.

  • Reduce enormemente su exposición si le roban sus datos.

  • Está más seguro de los ataques de ingeniería social , en los que un atacante se hace pasar por un usuario válido y engatusa a un empleado para que revele una contraseña. Ver http://en.wikipedia.org/wiki/Social_engineering_(security) .


Cuando un hacker accede a su base de datos no significa que pueda acceder al código de procedimiento, esos procedimientos pueden alterar las bases de datos fuera de los límites de la base de datos pirateados o incluso pueden alterar otros procedimientos.

Por cierto, ahora voy a preguntarle algo: si un usuario es hackeado y alguien tiene su contraseña, ¿cómo deja en claro que no es su aplicación o su falla de seguridad?

Si no tienes contraseñas almacenadas, ¡no tienes tanta responsabilidad!


Si una aplicación es para mostrar información de grado en la universidad, entonces tener acceso a la contraseña le permitirá obtener las calificaciones para esa persona. Si la contraseña también le permite iniciar sesión en el sistema de cursos en línea, puede enviar pruebas como ese usuario.

Si los datos son aún más delicados, como números de tarjetas de crédito o registros de salud, está abierto a demandas judiciales.

Las probabilidades son que la información más confidencial puede estar en un sistema más seguro, detrás de firewalls más fuertes, por lo que pueden haber encontrado una debilidad al hackear la base de datos de autenticación.

Al cifrar la contraseña, aquellos que tienen acceso a la base de datos de autenticación no pueden ver la contraseña y, por lo tanto, iniciar sesión en el sistema tan sensible como un usuario diferente.


Todo el "escándalo" de LinkedIn se debió a contraseñas filtradas.

Según lo veo, la seguridad no se trata de otra cosa que no sea inconveniente la recuperación de datos.

Y por inconveniente en el caso ideal, nos referimos a que le llevará millones de años calcular para acceder (es decir, una sola CPU que intente adivinar la contraseña tomaría la escala de millones de años).

Si almacena contraseñas en texto plano, eso requiere un total de 0 años de cálculo para acceder. El escándalo de LinkedIn se habría visto mucho peor. Todo lo que tiene que hacer es SELECT * FROM USERS (ya sea por inyección o por información privilegiada).

La gente suele volver a utilizar las contraseñas, por lo que si las personas aprenden tu contraseña, significa que pueden acceder a todo un mundo de datos (no solo su LinkedIn, por ejemplo). Entonces se convierte en un riesgo muy personal. Como webmaster, no es grosero, al menos, no utilizar las contraseñas hash: no se respeta tanto a los usuarios como para dar el paso básico de tratar de proteger su información.

Incluso si la contraseña hash se puede descifrar, al menos está tomando el mínimo paso para proteger a sus usuarios.


  1. A veces, un hacker no obtiene acceso completo a su base de datos. A veces encuentran un pequeño orificio de inyección SQL u otra debilidad que alguien no codificó correctamente, por lo que solo pueden hacer cosas simples al principio, como imprimir las celdas de la base de datos de una en una. Si pueden imprimir una contraseña real, de repente las cosas empeoran.

  2. Las bases de datos generalmente están respaldadas en cinta, y algunas veces esas cintas se pierden o incluso se descartan. Si un pirata informático obtiene acceso a una instantánea como esta, puede aprender mucho sobre su sistema. Pero si las contraseñas todavía tienen hash, tampoco puede usar el sistema para hacer algo malicioso, como iniciar sesión como un usuario diferente y comenzar a cambiar las cosas. Peor aún, la mayoría de los usuarios conservan una o varias contraseñas en muchos sistemas. Encontrar una cinta de respaldo vieja en el volcado puede ser una mina de oro para otras cuentas, incluso si la cinta es para un sistema que ya no está activo. Contraseñas con hash adecuado protegen contra esto.

  3. He oído que la mayoría de los hacks son un trabajo interno. Es mejor eliminar la habilidad incluso para las personas en las que confías para iniciar sesión como otras personas.

Si crees que este tipo de cosas no sucede, ve a hablar con los chicos de reddit.


Si puede descifrar las contraseñas, probablemente también tenga acceso a las cuentas de sus usuarios en otros sitios (ya que, sin importar cuántas veces le digamos a las personas que no vuelvan a usar contraseñas, sí lo hacen). Almacenar contraseñas de texto claro es una buena forma de regalar cuentas de PayPal, eBay y Amazon de todos sus usuarios.