¿Debo obligar a mis usuarios a cambiar las contraseñas cada n días / semanas / mes?

19

La pregunta lo dice todo. Estamos diseñando un sistema donde la seguridad es muy importante. Una de las ideas que alguien tenía era obligar a los usuarios a cambiar las contraseñas cada 3 meses. Mi opinión sobre esto es que, si bien es más seguro porque la contraseña cambia a menudo, también obliga a nuestros usuarios a recordar las contraseñas cambiantes y hace que sea posible que simplemente las escriban en algún lugar para ayudar a recordar.

En la misma idea, es realmente bueno obligar a los usuarios a usar una contraseña súper difícil de adivinar. Forzarlos a usar?% &% Y mayúsculas y minúsculas. Sé que es bastante complicado inventar esa contraseña y luego recordarla.

Por otra parte, no queremos que nadie use 12345.

Entonces. ¿Hay algún documento técnico sobre este tema? ¿Buena práctica?

Estoy hablando de un sitio web creado con PHP. MySQL en un entorno de lámpara si eso cambia algo.

Iznogood
fuente
Veo que alguien votó para cerrar este tema. Creo que la administración de contraseñas es muy pertinente para la programación. Pero si la comunidad falla, debería cerrarla bien, ¿dónde debería preguntar esto? Superusuario?
Iznogood
1
Honestamente, considero que la seguridad del cliente es su preocupación. Por supuesto, use SSL y otras cosas para mantener el cifrado para que no pueda ser rastreado, pero si quiere usar "0" para una contraseña, es su culpa.
Intente crear interfaces que permitan inyectar implementaciones de lo que decida más adelante. Un método para verificar la seguridad de la contraseña (o decir lo que está mal con la contraseña), un método para evaluar si es hora de cambiarla o cuándo será, y así sucesivamente. Ahora devuelve "ok" y "no es necesario cambiar" :) Más tarde, cuando recibas tu respuesta de serverfault, tienes las puertas para abrir ...
helios
2
@mathepic - "pero si quiere usar" 0 "para una contraseña, es su culpa". - Estoy de acuerdo en el concepto, pero en realidad, el propietario del sitio tiene cierta responsabilidad. Si usa "0" en su banco, y su cuenta se limpia, la volverán a poner, ¿verdad?
tomjedrz
2
@mathepic No estoy de acuerdo por completo. Tal vez para hotmail es culpa de los usuarios, pero cuando es un sistema privado lleno de información privada, es el problema de la compañía si está comprometido porque algún idiota eligió "0".
Iznogood

Respuestas:

28

Creo que podría ser una minoría en esto (en base a mi experiencia limitada en el trato con los departamentos de TI en la escuela y el trabajo), pero creo que las políticas obligatorias de cambio de contraseña basadas en el tiempo no tienen valor en el mejor de los casos y son dañinas en el peor. Las personas tienden a ser muy malas para elegir buenas contraseñas y mantenerlas en secreto. Las políticas de caducidad de las contraseñas están diseñadas para mitigar esto al limitar la cantidad de tiempo que cualquier contraseña puede ser descifrada / diseñada por redes sociales / robada; sin embargo, no logran esto en la práctica, principalmente porque obligan a los usuarios a volver a aprender su contraseña de forma continua. Al hacer que sea más difícil para el usuario guardar sus contraseñas en la memoria, terminas haciendo que muchas de ellas elijan contraseñas más débiles y / o escriban sus contraseñas en algún lugar donde los ojos curiosos puedan encontrarlas.

Además, cuando se ven obligados a cambiar su contraseña de manera regular, muchos usuarios elegirán contraseñas que sigan un patrón muy reconocible, como [base string][digit]. Digamos que un usuario quiere usar el nombre de su gato Fluffy como contraseña. Podrían comenzar con la contraseña fluffy, y luego cambiarlo a fluffy1, fluffy2, fluffy3y así sucesivamente. En este caso, la política realmente no ayuda a la seguridad; incluso si el usuario elige una cadena base más segura que fluffy, e incluso si mantiene su contraseña memorizada de forma segura, el carácter de sufijo único que cambia cada pocos meses hace muy poco para mitigar el craqueo o los ataques de ingeniería social.

Ver también: Caducidad de la contraseña considerada perjudicial , un breve artículo (no escrito por mí) que creo que ofrece una buena introducción a estos problemas.

bcat
fuente
2
Puede evitar su segundo punto en su política de contraseñas exigiendo la diversificación de las contraseñas históricas.
Warner
@Warner: ¿Cómo implementaría eso de manera segura? Casi nunca debería almacenar contraseñas sin hash antes, y fluffy1debería tener un hash totalmente diferente fluffy2. Es bastante fácil evitar que los usuarios reutilicen exactamente la misma contraseña, pero creo que eso es todo lo que puede hacer.
bcat
No podría estar más de acuerdo ...
Antoine Benkemoun
1
@bcat, ciertamente puede verificar si la nueva contraseña es una permutación fácil de su contraseña anterior. En el caso del sufijo de incremento de número, simplemente disminuya e incremente el nuevo sufijo de contraseñas (si es un número) y compare su hash con los hash almacenados previamente para ese usuario. También puede poner otras comprobaciones de transformación simples. Todo sin almacenar contraseñas en texto sin formato.
mmcdole
1
@bcat: Linux emplea este tipo de verificación a través de PAM (módulo de autenticación enchufable) y las utilidades que permiten a los usuarios cambiar sus contraseñas dentro del sistema solicitan primero su contraseña actual para poder juzgarla con la nueva contraseña.
syn-
14

Mi gran organización (más de 15000 usuarios) implementó "cambios de contraseña" cada 120 días en el otoño de 2009. Es un gran dolor de cabeza de TI y una pérdida de recursos de soporte. Cada vez que se abre el plazo de 120 días, miles de usuarios se ven obligados a cambiar su contraseña ... lo que muchos de ellos hacen incorrectamente y bloquean su cuenta ... u olvidan al día siguiente. Nuestro servicio de asistencia se inunda con llamadas de contraseña a pesar de que tratamos de aprovechar al máximo el autoservicio posible.

Si desea que sus usuarios / clientes lo odien ... y su personal de TI de primera línea lo queme en efigie cada vez que puedan ... implemente cambios de contraseña.

Las políticas de cambio de contraseña son una casilla de verificación en algunas formas de reservar en el Administrador de TI en algún lugar ... y fue escrito hace 15 años. Nadie en las trincheras que realmente implemente o apoye la política le dirá que es una buena idea.

Discutí aquí por "frases de paso" en lugar de contraseñas ... mucho bien que hizo ... esa luz al final del túnel era un tren que se aproximaba. :)

Una frase de paso es una cadena larga casi incuestionable que es muy fácil de recordar como "MyCatIsFromSpainAndICallHimElGato". O tal vez una línea de un poema o canción.

Si quieres hacer que sea realmente difícil descifrar ... mete el caso, agrega algunos signos de puntuación, cambia algunos a ells, ohs a ceros, a a @, etc ... Pero mantenlo como recordable ... Esa es la clave. Incluso hay formas de elegirlos para que fluyan fácilmente de tus dedos al teclado ... para que no rebotes entre las manos o con SHIFT y signos de puntuación extraños.

Entonces...

  • Use "frases de paso" largas.
  • Pruébalos internamente para la fuerza.
  • Implemente el "inicio de sesión único" en toda su infraestructura para que los clientes solo tengan que usarlo una o dos veces al día.
  • Nunca los obligue a cambiarlo.
  • Y educar, educar, educar sobre su uso adecuado.

Mate

EDITAR: 24/08/2011 XKCD está de acuerdo y lo dijo mejor que yo.

Matt Mencel
fuente
Suena como un buen argumento para no fallar en la educación del usuario, no necesariamente contra las políticas de contraseña. No fue un fracaso de su parte: alguien con un alto nivel de TI estropeó las cosas, porque las ideas que enumeró deberían haber sido algo que todos los empleados habían puesto delante de ellos para cada solicitud de cambio de contraseña.
Kara Marfia
El inicio de sesión único realmente debería ser el primer punto, es la zanahoria lo que les da a los usuarios una razón para aprender la contraseña. Además, el tiempo de caducidad debe basarse en la frecuencia con la que el usuario usa la contraseña; la caducidad de 30 días no es irrazonable para un sistema que se usa a diario, pero en un empleador anterior su aplicación de gastos (no SSO) (una aplicación que solo la mayoría de las personas iniciado sesión una vez al mes) tenía una política de vencimiento de 30 días, ¡todos los que conozco terminaron llamando al servicio de asistencia cada vez que lo usaban!
GAThrawn
El inicio de sesión único es increíblemente útil. Ayuda a reducir drásticamente la cantidad de contraseñas que un usuario debe saber.
Anthony Giorgio el
10

No. Mi opinión personal es que es innecesaria e incluso contraproducente . Me quejé en mi blog, pero puedes buscarlo si estás interesado.

En resumen, se reduce a dos razones:

1. Obligar a un usuario a cambiar constantemente su contraseña conduce a contraseñas incorrectas.

No habrá escasez de evidencia anecdótica sobre esto, pero tiene sentido que si me veo obligado a recordar algo nuevo cada x días, haré que esas cosas sean fáciles de recordar, y probablemente relacionadas entre sí.

Es mucho más probable que los usuarios elijan contraseñas "adivinables" como "Jan2010" o "Password05" si saben que tendrá que cambiar pronto. Es probable que la aplicación de una política estricta sobre los caracteres solo dé como resultado un signo de exclamación agregado o un nombre completamente escrito en lugar de una abreviatura. Hay una gran diferencia entre una contraseña técnicamente compleja y una que no se adivinará.

2. Forzar cambios regulares de contraseña no previene ataques, solo reduce el riesgo (y no mucho)

Piénselo: si su contraseña se adivina o descubre de alguna manera, ¿cuánto tiempo le tomaría a un atacante usar esa información? Ponte en el lugar del atacante. Acabas de descubrir una contraseña. ¿No iniciaría sesión y extraería toda la información que pudiera de inmediato en caso de que alguien se entere? En 30 días, ya tienes todo lo que quieres.

Mi recomendación:

  • Forzar una política de contraseña extremadamente estricta (como 15 caracteres con mayúsculas, minúsculas, números y caracteres especiales, sin palabras en inglés> 3 caracteres)
  • Nunca haga que el usuario cambie su contraseña. Si tienen que escribir la contraseña en una hoja de papel y guardarla en su billetera, está bien. Las personas son buenas para asegurar trozos de papel, pero no tan buenos para recordar cadenas de caracteres al azar.
Damovisa
fuente
+1 - Estoy de acuerdo en su mayor parte, aunque me gusta el vencimiento de 120 días o 180 días. Buena suerte manteniendo viva una política de contraseña "extremadamente estricta" en una organización política.
tomjedrz
"La gente es buena para asegurar trozos de papel", ¿en serio? ¡debes conocer gente mucho mejor que yo! Cuando solía hacer soporte de escritorio, podría haber ingresado fácilmente a la PC de un usuario cuando no estaban cerca simplemente recogiendo el diario en papel que habían dejado en su escritorio, volviendo a la página posterior y luego escribiendo la palabra más nueva en El cuadro de contraseña.
GAThrawn
Creo que depende del papel y su opinión sobre lo importante que es. ¿Esa misma gente dejaría billetes de $ 50 en su escritorio? ¿Sus tarjetas de crédito? :)
Damovisa
4

Desde el punto de vista del usuario, tener que cambiar mi contraseña es increíblemente inconveniente. Absolutamente odio tener que hacerlo, y solo usaré a regañadientes los sitios que absolutamente necesito si requieren que cambie mi contraseña.

También se ha debatido si esta es realmente una buena práctica, ya que algunas personas terminan teniendo que escribir sus contraseñas para recordarlas.

Podrías implementar uno de esos widgets que muestran a las personas cuán fuerte (o débil) es su contraseña mientras la completan; creo que son (más o menos) útiles, aunque no sé si realmente resultan más fuertes contraseñas


fuente
Bueno, en este caso es un sitio privado sin formulario de registro. Los usuarios son empleados, por lo que deben usar el sistema. Dicho esto, no estoy necesariamente de acuerdo con una seguridad muy alta. Pero no puedo decidir todo lo que ves ...
Iznogood
3

Como usuario de un entorno de política de contraseña bastante estricto ("contraseñas súper difíciles de adivinar" y cambio de contraseña por igual), mi opinión es que solo se necesita la contraseña dura. Aunque los usuarios tardarán un poco en acostumbrarse (especialmente si son del tipo 12345) deberían poder recordarlo y escribirlo fácilmente en una semana.

Sin embargo, puedo predecir usuarios finales incómodos si tiene contraseñas tan seguras Y les obliga a cambiar.


fuente
3

Desde el punto de vista de la administración de TI, su mejor opción es investigar la posibilidad de permitir que su aplicación use las capacidades de inicio de sesión único del esquema de autenticación existente que utilizan sus clientes. Obviamente, Active Directory es un gran jugador, pero si su aplicación funciona con la política que TI ya ha configurado en el sitio, no tiene que preocuparse por reinventar la rueda.

Dado que surgió tanto debate sobre si los cambios de contraseña forzados son una buena idea (aunque creo que fue secundaria a su pregunta principal), pensé que podría disfrutar algunas de las ideas y enlaces aquí . Para la mayoría de las situaciones, si no va a imponer una complejidad de contraseña y un calendario de cambio, es posible que no tenga contraseñas, pero la forma en que se implementa (capacitación, soporte de gestión, etc.) es más importante de lo que puedo enfatizar.

Kara Marfia
fuente
2

Cambiar las contraseñas a menudo puede llevar a que el usuario las escriba. Lo que no es una mala idea según Bruce Schneier ( http://www.schneier.com/blog/archives/2005/06/write_down_your.html ).

Incluso diría que tener seguridad obstaculizando la usabilidad en algún momento puede ser algo bueno, solo porque le recuerda al usuario que debe actuar de manera segura. Por ejemplo, en el banco donde trabajo, muchas de las medidas de seguridad implementadas son teatro de seguridad (por ejemplo, reconocimiento facial en la puerta, pero el agente de seguridad le abrirá la puerta si falla el reconocimiento). Si bien esas medidas no mejoran la seguridad por sí mismas, siempre están ahí para recordarnos que la seguridad es una preocupación importante en el trabajo, que hay una cierta cantidad de registros y verificaciones, y que si te atrapan haciendo algo "inseguro", Estaré en problemas.

Por supuesto, esto se aplica a la seguridad de los empleados de un banco, puede que no se aplique a los usuarios de su sitio web ...

Guillaume
fuente
1

Debe obligar a sus usuarios a cambiar cada n días si su política de seguridad así lo requiere. Trabajo para una agencia estatal, y este es un requisito impuesto por la oficina del auditor estatal. No puedo hacer nada al respecto, así que tengo que forzar los cambios.

Si no está obligado por la regulación a forzar cambios de contraseña, no los fuerce. Asegúrese de que las contraseñas que se establezcan cumplan ciertos requisitos mínimos de complejidad. La longitud supera la complejidad para la mayoría de los sistemas de contraseñas, por lo que un estándar variable es el mejor caso en mi opinión. Como:

  • Ninguna contraseña debe tener menos de 10 caracteres.
  • Las contraseñas entre 10-25 caracteres requerirán al menos 3 juegos de caracteres.
  • Las contraseñas de entre 25 y 40 caracteres requerirán al menos 2 juegos de caracteres.
  • Las contraseñas de más de 40 caracteres pueden usar un solo conjunto de caracteres.

Los esquemas de complejidad incorporados para cosas como Active Directory no son compatibles con este tipo de sistema en niveles. Si crea su propio entorno de cambio de contraseña, puede hacer cosas como esta. Debido a que cada uso de la tecla Mayús aumenta la probabilidad de un evento de dedo gordo, es mucho más probable que las contraseñas largas con múltiples juegos de caracteres incurran en eventos de inicio de sesión fallidos, especialmente durante las etapas de aprendizaje. Si tiene un sistema de bloqueo de cuenta, este puede ser un gran problema. Para la persona que usa la tercera línea de su poema favorito (¡63 caracteres!) Como frase de contraseña, no tener que h @ x0r hace que la entrada sea rápida y eficiente.

Si la tecnología o el entorno de riesgo cambian significativamente y sus contraseñas ahora no son tan complejas como deberían ser, ponga una forma de expirar las contraseñas durante un período de tiempo. La gente se quejará de la necesidad, especialmente si nunca antes has forzado un cambio, pero te ayudará a mantener tu postura de seguridad.

sysadmin1138
fuente
Tengo la suerte de no estar limitado por nada de eso. ¡Gracias!
Iznogood
0

Las contraseñas difíciles de adivinar son algo bueno. Hacer cumplir los niveles de complejidad que hacen que los usuarios olviden sus contraseñas o tengan que escribirlas es algo malo, porque cualquier seguridad obtenida por la complejidad se pierde por completo en el proceso. En un mundo ideal (que lamentablemente no es donde vivimos) debería haber un equilibrio entre la complejidad y la usabilidad. Por supuesto, diferentes personas verán ese punto de equilibrio en diferentes lugares.

La lógica detrás del cambio regular de contraseñas en X días me ha perdido un poco. La razón por la que generalmente escucho esto es para limitar la utilidad de una contraseña robada, a lo que respondo que cualquier daño real seguramente se hará dentro de las primeras horas de todos modos. por ejemplo, Fred "se familiariza con" la contraseña de Mary. A menos que eso suceda casi al mismo tiempo que Mary está cambiando esa contraseña, ¿qué diferencia hay si se cambia mañana o el próximo mes? ¿Es realmente probable que Fred espere una o dos semanas más antes de usar la contraseña (suponiendo que esa fue la intención todo el tiempo)?

Obviamente, cambiar las contraseñas si hay alguna razón o sospecha de que puede ser necesario es otra cuestión.

John Gardeniers
fuente
0

Si la aplicación necesita un nivel de seguridad tan alto, ¿ha considerado usar algo como los tokens SecurID? Esto significa que el usuario obtiene una nueva contraseña cada 60 segundos; no tiene que preocuparse por ellos al escribir contraseñas. Sin embargo, estos cuestan dinero. ¿Qué tan segura debe ser la solución?

Mitch Miller
fuente
bastante seguro pero preguntándose si debe ser tan seguro. Mirando el enlace, gracias !!
Iznogood
0

Creo que la información para los usuarios es importante. Explíqueles cómo crear una contraseña y cuán importante es no usar la misma contraseña dos veces. Una manera fácil de crear una contraseña es tomar una oración y tomar la primera letra de cada palabra y agregar algunos números.

Ex. Me gusta gobernar el mundo = Iltrw99

No los obligue a cambiar la contraseña, solo los confundirá.

NiklasS
fuente
0

Si bien no estoy de acuerdo con cambiar las contraseñas cada tres meses, este es un requisito si su empresa cotiza en bolsa y es parte de cumplir con SOX. Nota al margen: Sarbanes-Oxley apesta.

Supercereal
fuente
0

Algo que no he visto mencionado es el acceso externo a los recursos.

Tiendo a aceptar que si elige una política de contraseña sensata, a menos que alguien la escriba, es probable que nadie adivine esa contraseña.

Sin embargo, supongamos que tiene acceso al correo web fuera del sitio, ahora es posible que los usuarios escriban sus credenciales en "cualquier PC vieja" e IMO que aumente el riesgo para los datos de su empresa que representan el spyware / malware / troyanos, etc., que pueden oler / robar esas contraseñas .

flooble
fuente
Muy buena idea gracias! Me pregunto cómo podemos protegernos de eso. Aplicaremos Firefox / chrome y bloquearemos IE6-7-8, así que eso es todo.
Iznogood
-1

Si las personas escriben contraseñas simples, lo que te hace pensar que no escribirán una gran frase de contraseña o una contraseña súper complicada. Lo que logran los cambios de contraseña incrementales es una purga de ID de usuario que ya no se usa automáticamente, y permite que el usuario individual tenga cierta responsabilidad en todo esto. Las personas van a ser personas, buscando el camino fácil para lograr algo; se pueden detectar y denegar contraseñas repetidas y contraseñas modificadas de forma incremental. Se pueden informar los requisitos de complejidad, los cambios forzados de contraseña también pueden abrir los ojos de los usuarios que no son de TI a su responsabilidad en todo esto. La mayoría de los usuarios que se quejan del cambio de contraseña son los flojos que fingen cambiar su contraseña es como una cirugía a corazón abierto. Deja de quejarte, sé responsable y deja de intentar encontrar una calle fácil,

Tai
fuente
Encuentro una "frase de contraseña enorme" mucho, mucho más fácil de recordar que una "contraseña simple". Incluso hay un famoso cómic xkcd sobre esto, así que estoy bastante seguro de que no estoy solo.
Michael Hampton