passwords plaintext

passwords - ¿Por qué son malas las contraseñas de texto simple y cómo puedo convencer a mi jefe de que sus sitios web preciados están en peligro?



plaintext (9)

Siempre he tenido la impresión de que almacenar las contraseñas en una base de datos como texto sin formato es (como lo dice alguien más aquí) una cosa muy mala ™.

Históricamente, la mayoría de nuestras necesidades de codificación del lado del servidor se han subcontratado a un grupo de programadores. Almacenan contraseñas en bases de datos MySQL en texto plano.

Como el código residente, el mono (por cierto, el primer mono del lado del servidor que trabaja aquí, así que heredaré la tierra, por así decirlo), tengo la boca del estómago, sintiendo que es mi trasero el que estará en la línea Cuando se explota este absurdo de texto plano.

Traté de explicarle a mi jefe lo muy malas que son las contraseñas de texto sin formato, pero me di cuenta de ello: no creo que nunca haya sabido realmente por qué son tan malas. ¿Hay algo más que darle a sus hackers una lista de contraseñas en bandeja de plata? Eso suena bastante mal para mí, pero en la tierra, donde nuestros sitios web son "seguros" e impermeables a cualquier pirata informático, este argumento no parece cortarlo. ¿Cómo puedo convencer (o asustar) a mi jefe para que solicite hashing en sus preciados sitios web?

Relacionado: Encriptación / Hashing de contraseñas de texto plano en la base de datos


Además de los riesgos de seguridad, me pregunto qué dirían sus clientes si descubrieran que todos los empleados de su empresa tienen acceso a las contraseñas. Cuando se trata de posibles fugas, las contraseñas están en riesgo si:

  • La base de datos está respaldada por una empresa externa.
  • El sistema operativo en el que se está ejecutando el software db tiene riesgos de seguridad
  • fallas de seguridad en cualquier otro firewall de hardware o software
  • cualquier usuario que tenga acceso a la base de datos obtenga de alguna manera un virus que podría explotar los datos
  • el db pasa a estar en una computadora o computadora portátil que es robada
  • un empleado descontento es despedido y decide "regresar"

de vez en cuando se enterará de negocios que almacenan información confidencial en texto sin formato y nunca termina bien. todos somos humanos y propensos al error, no se puede asumir la perfección cuando se trata de seguridad. No encontrará ninguna empresa grande y rentable que deje espacio para cualquier riesgo que pueda evitarse, ya que todo lo malo que pueda suceder ocurrirá ...


Aquí hay algunas razones:

  • Alguien podría entrar en su sitio. Puede ser improbable, y esto probablemente no influirá en su jefe (puedo escuchar la conversación ahora: "¿Está diciendo que el sitio no es seguro?") Pero sucede, y recuerde, nadie piensa que su sitio Honestamente será dividido en ...
  • Visitas informales de la base de datos (como usted): es posible que no esté TRATANDO de ver las contraseñas de nadie, pero, durante el curso normal de su trabajo, debe revisar la tabla que contiene las contraseñas. Teniendo en cuenta que muchas personas usan la misma contraseña para absolutamente todo (¡incluso posiblemente su jefe!) No querrá que todas las contraseñas queden expuestas. Pregúntele a su jefe si alguna vez ha reutilizado una contraseña en dos sitios diferentes
  • Si alguien descubrió que su aplicación no cifró las contraseñas, podría cuestionar seriamente la confianza de su aplicación.
  • Básicamente, no cuesta nada copiar una contraseña (preferiblemente con un salt) en la base de datos, ¿por qué no?

Dígale que considere que en muchas compañías, los problemas de seguridad vienen de adentro y no de afuera.

Ahora pregúntele cómo va a explicar a sus clientes cómo los piratas informáticos han robado sus contraseñas (que sin duda usaron en otros lugares) la próxima vez que tenga que despedir a alguien por alguna razón.

También pregúntele cuánto cree que a sus clientes les gustaría saber que sus contraseñas son visibles para cualquier persona con acceso de lectura a la base de datos.


En el ejército se llama "Defensa en profundidad". La teoría es que usted endurece cada capa en lugar de endurecer solo una capa y espera que sea suficiente.

He escuchado bases de datos como la tuya llamadas "duro por fuera, suave y duro por dentro". Hay un millón de maneras en que un pirata informático dedicado puede obtener acceso a su base de datos. Ingeniería social, un empleado descontento, un ex empleado que decide ver si su inicio de sesión todavía funciona, o que la puerta trasera que escribió todavía está ahí, un parche faltado del sistema operativo ... y la lista continúa.

Si un mal actor obtiene acceso a través de cualquiera de estos métodos, en lugar de obtener los datos, obtiene acceso a cada combinación de nombre de usuario y contraseña de cada usuario de su sistema y, como alguien señaló, la gente suele usar el mismo combo para cada sitio web. . Así que su hacker sale y es dueño de cientos de personas de Paypal, correo electrónico y cuentas bancarias.

¿Ya he pintado un cuadro suficientemente espantoso?


Es posible que desee señalar que si no se aseguran adecuadamente las cuentas, se podría estar exponiendo a la empresa a una responsabilidad legal si la información estuviera comprometida. Ignorar una vulnerabilidad conocida podría terminar costándole costos legales si los datos de un usuario se exponen como resultado de las acciones de la empresa (o la inacción, según sea el caso).

En los Estados Unidos, existen ciertos tipos de datos, como información financiera y médica, que las compañías están legalmente obligadas a mantener seguras y privadas. El no hacerlo puede tener serias consecuencias. No estoy familiarizado con las leyes de otros países a este respecto, pero es algo que vale la pena analizar si su empresa está tratando con dichos datos.


Hay demasiados casos de bases de datos con contraseñas de texto sin formato robadas: si puede suceder a reddit , puede sucederle a usted.


Las contraseñas de texto simple no están permitidas si su organización mantiene el cumplimiento de PCI-DSS (por ejemplo, un comerciante que acepta tarjetas de crédito). Ver el punto 8.4 del PCI DSS.

Las contraseñas de texto simple no están permitidas si su organización es una institución financiera asegurada por la FDIC (consulte FDIC FIL 69 2001).

Las contraseñas deben cifrarse tanto en tránsito como en reposo, si desea obtener la certificación ISO / IEC 27001, por ejemplo, si trabaja con ciertas agencias gubernamentales.


Las dos buenas respuestas que he visto promulgadas para esta pregunta son:

  1. Usted protege las contraseñas de los empleados de la indagación, es decir, las personas que tienen acceso legítimo a la base de datos no pueden robar una contraseña fácilmente si se sienten tan inclinados.

  2. Una falla en la lógica de la aplicación, como una inyección de SQL en la parte delantera de un sitio web, tendrá una probabilidad reducida de resultar en un compromiso.

En mi opinión, es una buena idea cifrar la contraseña de la base de datos (aunque todavía tengo que hacerlo para la mayoría de mis aplicaciones), pero es mucho más importante asegurarse de que su servidor de base de datos sea lo más seguro posible con respecto a Red y acceso autorizado. Si un atacante puede acceder a su base de datos, no importará cómo haya guardado sus contraseñas, ya que podrán romperlas.


Si ''entregarle a sus crackers una lista de contraseñas en bandeja de plata'' no es una razón suficiente, ¿qué constituye una razón suficientemente buena?