¿Por qué no contraseñas de hashing y salating?

3

Cuando estaba implementando mi aplicación web, decidí capturar las contraseñas de los usuarios de hash y salt para protegerlas, aunque sabía que nunca habrá muchas ... si es que las hay. Por supuesto, no estoy diciendo que mi implementación sea perfecta y se pare en la cara de los posibles atacantes, pero al menos lo intenté.

Pensé que así es como funcionan las cosas.

Pero luego de que se piratearon muchos nombres importantes en la industria tecnológica (Sony, Adobe, Yahoo! ...), descubrí que no son contraseñas de hash y si lo hacen, no las eliminan. ¡Incluso leí en alguna parte en las noticias que OkCupid está almacenando contraseñas en PLAINTEXT!

No soy un tipo de seguridad, pero estoy seguro de que algunos de ustedes trabajan para estas empresas o que son tan grandes (y tan imprudentes). Entonces, tal vez puedas responder mi pregunta:

¿Por qué una empresa enorme con tantos usuarios decide NO tomar las medidas necesarias para protegerlos? ¿Qué me estoy perdiendo?

    
pregunta ahmed 08.12.2013 - 01:44
fuente

3 respuestas

7

Esto es una especulación, por supuesto, pero es posible que hayan implementado su sistema original antes de que la seguridad estuviera en la mente de todos.

Una vez que hayas implementado un sistema como ese, tiendes a reutilizarlo en muchos lugares, por lo que acumulas muchas dependencias en él. Y una vez que tienes dependencias, hacer cambios se vuelve muy costoso. Incluso si hubieran tenido personas informadas que les dijeran que era inseguro, y necesitan cambiarlo, el costo probablemente habría sido más alto que el riesgo percibido.

Hasta que se comprenda el riesgo. Luego aprendieron de la manera difícil que necesitan tomar esas cosas muy en serio.

    
respondido por el John Deters 08.12.2013 - 02:56
fuente
4

De los sistemas y sitios que se han desarrollado recientemente, hay dos razones principales por las que cualquier empresa almacenaría contraseñas en texto plano sin hash y sin hash.

Opción 1: no lo pensaron al crear el medio de almacenamiento. Como se ha visto a menudo en el pasado, la seguridad (tanto de computadora como de otro tipo) no es algo en lo que las personas piensan hasta que sienten que lo necesitan. En algunas partes del mundo, las personas dejan sus puertas abiertas sin llave, y sus vecinos vendrán y se harán una taza de té mientras esperan que el propietario regrese. Solo una vez que han robado algo, reconsideran ese plan. De manera similar, ¿cuántas veces ha usado, o visto a alguien más, usar una contraseña insegura para acceder a algo ... como su fecha de nacimiento o 1234 para el PIN de su tarjeta de crédito, la "contraseña" para un sitio web, etc.? Es lo mismo que cerrar la puerta delantera pero no cerrarla. Bien, hasta que alguien malintencionado quiera acceder.

Opción 2: Lo pensaron y decidieron que no lo necesitaban. He visto a compañías decir: "Si tenemos un sitio que no almacena información personal, no gestiona ninguna transacción monetaria y, por lo demás, no tiene nada de valor, entonces no hay un problema real de no tener seguridad, ¿verdad?". Desafortunadamente, siempre están equivocados en esto por una razón, y algunas veces también por una segunda. La primera es que las personas reutilizan contraseñas. Si tienen la misma contraseña en este medio de almacenamiento no seguro que tienen para su correo electrónico o banco, tienen un problema. Aunque no es responsabilidad de la empresa, es una pequeña cosa que podrían hacer para ayudar al campo de la seguridad en general. La segunda razón por la que esto es incorrecto es que las cosas sin valor real a menudo tienen valor percibido. Tomemos, por ejemplo, su reputación: a menudo los foros de Internet son completamente anónimos y no contienen información personal sobre el usuario. Si alguien más pudiera acceder a su cuenta y hacer comentarios despectivos sobre otros, la reputación de su identidad digital se vería perjudicada, aunque no haya perdido nada con ningún valor cuantificable real.

En términos simples, la seguridad es algo que a menudo se ve reforzado al final de cualquier ciclo de vida de desarrollo de software, en lugar de pensarlo cuidadosamente desde el principio. Muchos sistemas tendrán el método "seguro" de contraseñas con salado y hash agregadas al sistema poco antes de su lanzamiento a prueba. Aunque es bueno que lo tengan, hay fallas en esta forma de pensar, ya que el resto del sistema puede tener vulnerabilidades que impiden que los pasos de seguridad que han tomado sean de alguna utilidad. La autenticación NTLM para Windows es un ejemplo. Esta contraseña con hash está protegida de manera muy efectiva contra ataques de fuerza bruta, sin embargo, si el sistema aún tiene el hash de la antigua contraseña de LM almacenado junto con el mejor método , puede reducir drásticamente el tiempo necesario para romper el hash de contraseña NTLM rompiendo primero el hash de contraseña LM.

Incluso las personas que deberían saber más están almacenando contraseñas en texto plano. Cada vez que reciba una confirmación por correo electrónico de un sitio web en el que se haya registrado y le digan qué contraseña ha utilizado, mi recomendación es eliminar su cuenta de inmediato. Un buen ejemplo de esto, hasta hace un par de años, no era otro que el British Computing Society (¡quién debería saberlo mejor!)

    
respondido por el ReeKorl 08.12.2013 - 19:50
fuente
2

No es posible que alguien que no tomó la decisión de hacer un comentario autoritario sobre por qué eligieron no hacer hash & Sal las contraseñas. Dicho esto, las empresas que no hacían hash & La sal hizo lo "incorrecto" desde una perspectiva de seguridad. La única vez que cifre es si necesita el secreto original. La única vez que hash sin sal es si necesitas el mismo valor para hacer el mismo hash (o para la compatibilidad con versiones anteriores en casos raros).

    
respondido por el atk 08.12.2013 - 02:11
fuente

Lea otras preguntas en las etiquetas