¿Es una práctica aceptable incrementar solo un número al cambiar una contraseña?

36

Nota: no pregunto si este esquema de contraseña es el mejor o no (por supuesto que no); Estoy preguntando por su seguridad teórica o práctica en relación con el esquema de contraseña óptimo basado en los algoritmos utilizados comúnmente en la autenticación y el cifrado. Como ya dije en mi pregunta, matemáticamente este esquema (como lo he definido aquí) es tan seguro como lo que se le dice a la gente (pero rara vez lo hace; aunque es irrelevante aquí), pero no sé si hay cosas extrañas. aspectos de la autenticación o el cifrado que invalidan el análisis matemático basado solo en la entropía.

Bueno, así que tuve este pensamiento interesante. Dado que los sistemas protegidos con contraseña a menudo requieren que los usuarios cambien su contraseña con frecuencia, muchas personas simplemente incrementan un contador agregado a algún prefijo, como:

  

awefjio; 1

     

awefjio; 2

     

...

Me pregunto si el uso de tal familia de contraseñas es tan seguro como elegir una nueva contraseña completamente aleatoria cada vez, siempre que el prefijo se elija de manera uniforme y aleatoriamente y cada una de las nuevas contraseñas más 10 bits. Ignoré los bits adicionales del contador, ya que eso podría ser detectable dentro de un pequeño margen de error dada la frecuencia con la que los usuarios deben cambiar su contraseña. Matemáticamente, este esquema de contraseña es lo suficientemente bueno porque los 10 bits adicionales permiten que el atacante intente 1024 veces más tiempo para descifrar la contraseña en comparación con la completamente aleatoria, suponiendo que una no cambie una contraseña más de 1024 veces. (Aquí asumo que el atacante de alguna manera tiene un hash de la contraseña, incluido cualquier sal necesario).

Ahora conozco una desventaja evidente de esto, que es que un atacante que de alguna manera se adueña de la contraseña actual sabrá todas las contraseñas anteriores, sin embargo, esto parece completamente irrelevante en la mayoría de las situaciones prácticas, donde una vez que ha iniciado sesión, el usuario tiene acceso completo a su cuenta y nunca necesita las contraseñas antiguas.

De ahí mi pregunta; ¿Existe alguna razón concreta por la que los usuarios no deberían usar este esquema para cambiar las contraseñas? Supongo que si la respuesta es positiva, dependerá de los algoritmos de autenticación o de cifrado involucrados, en cuyo caso Estoy bien con restringir la pregunta a los algoritmos más utilizados.

Para ser claros, solo pregunto sobre la situación en la que:

  1. Los usuarios no tienen más remedio que cambiar sus contraseñas a una frecuencia fija, y no tienen la opción de usar un administrador de contraseñas (como en una computadora del lugar de trabajo). Por lo tanto, tienen que decidir sobre algún esquema. Esta pregunta es acerca de si un esquema en particular es mejor que otro.

  2. Elija una constante fija n. Tengo en mente n ≥ 64 como mínimo, si eso importa.

    a. El primer esquema es elegir una nueva cadena aleatoria independiente con entropía de n bits cada vez que sea necesario cambiar la contraseña.

    b. El segundo esquema es elegir una cadena aleatoria fija con entropía de (n + 10) bits y agregar un contador que se incremente cada vez que sea necesario cambiar la contraseña.

La pregunta es si (b) es al menos tan seguro como (a) para los tipos comunes de sistemas protegidos por contraseña.

    
pregunta user21820 12.05.2016 - 11:37
fuente

12 respuestas

70

Si un atacante ha descubierto su contraseña, puede acceder al sistema hasta que cambie la contraseña. Cambiar las contraseñas a menudo evita que los atacantes que ya tienen su contraseña tengan un acceso no detectado de forma indefinida.

Ahora, si su contraseña es secret-may16 y el atacante está bloqueado cuando cambia su contraseña, seguramente intentará con secret-june16 como la contraseña. Por lo tanto, cambiar la contraseña de manera predecible no es seguro.

    
respondido por el Sjoerd 12.05.2016 - 11:45
fuente
36

Debería no usar este esquema, porque una vez que un atacante conoce esta contraseña, puede obtener las contraseñas "posteriores".

Este podría ser el caso en estas situaciones:

  • La contraseña se comparte entre usted y algunas otras personas con trusos, y algún día usted decide no confiar más en una de ellas. En este caso, podrían adivinar fácilmente las siguientes contraseñas.
  • Un atacante obtiene la contraseña. Una vez que lo rompe (lo que puede llevar algo de tiempo) puede adivinar las derivaciones de la contraseña.

Al usar tales "contraseñas numeradas", destruye el (pequeño) beneficio de seguridad de cambiar las contraseñas regularmente.

Pregunta relacionada: ¿Cómo cambia su ¿La contraseña cada 90 días aumenta la seguridad?

    
respondido por el Lukas 12.05.2016 - 11:45
fuente
11

Cambiar solo una parte de la contraseña es [citación necesaria] muy común, y una muy mala práctica.

La entropía es una medida de cuán desconocido es algo. Por primera vez, elige una contraseña completamente nueva o aleatoriamente fija, ambas con la misma cantidad de entropía, ambas alternativas serán equivalentes. Ok.

Para el momento en que necesite cambiar su contraseña, si está completamente seguro de que no se descubrirá una contraseña anterior, también es bueno. Porque algo que no se conoce mantendrá la misma cantidad de entropía.

Pero ... y siempre hay un pero ... ¿qué pasa si se recupera una contraseña anterior? ¿O dos?

Eso puede suceder con sitios / sistemas que almacenan contraseñas anteriores en texto plano. También puede ocurrir con sitios / sistemas que almacenan contraseñas anteriores como hashes.

Porque el texto simple, bueno, mostrará fácilmente que su contraseña anterior era IamGod_april16. Y alguien intentará usar IamGod_may16 ... Solo cambiando una parte, de una manera predecible, expondrá fácilmente su nueva contraseña.

Incluso si se almacenó como un hash: será más difícil cuando se realiza correctamente, pero ¿qué sucede si alguien frena el hash y descubre cuál era tu contraseña? Entonces podrá probar IamGod_december18, y si no cambiaste tu esquema en el futuro ... ¡bang! Fue golpeado debido a una fuga que ocurrió 2 años antes.

Fíjate que no importa si la parte "IamGod_" es aleatoria, es legible para las personas, o lo que sea: lo que te molesta es que parte de si puede filtrar información: el mes, el número, la letra el final ... incluso si su esquema era "IamGodh", alguien podría probar "IamGodi", "IamGodj", y así sucesivamente.

Entonces, la primera parte de la respuesta a su pregunta específica sobre si el esquema (b) es menos, igual o más seguro que (a): no es más seguro. Porque si solo usa un número cambiante, mes cambiante, letra cambiante ... al final, es muy fácil probar nuevas combinaciones, ya sea sin conexión o en algún sistema en línea.

Y está la segunda parte: incluso si diseñas un muy buen esquema, y la parte cambiante está en el medio de la contraseña ... ¿qué pasa si alguien recupera 2 o más contraseñas antiguas? ¿Y descubre que eran "3VQ2NMkK", "3VQ3NMkK" y "3VQ4NMkK"? Bueno, ¿puedes ver algún patrón?

Entonces, (a) y (b) pueden ser igualmente seguros si su esquema no se detecta. Pero es una fuerte suposición de que uno puede diseñar un buen esquema, por lo que, en general, es muy seguro asumir que (b) será menos seguro para cualquier tipo de sistema.

Por supuesto, eso supone que el sistema se rompe de alguna manera: que la base de datos se filtra porque alguien invade un sitio, o porque algunas personas internas copian la base de datos, o alguien pierde la cinta de copia de seguridad, o la doncella ejecuta un manual -el ataque central dentro de la compañía, o porque alguna actualización en el sitio filtró la contraseña, o porque el ataque al corazón reveló algunas contraseñas, o porque la compañía permitió que una computadora vieja estuviera disponible en la red, o ...

Dado que esas situaciones (y muchas más) están fuera de su control, el consejo es elegir el lado seguro: simplemente no asuma que las contraseñas antiguas no se filtrarán.

    
respondido por el woliveirajr 12.05.2016 - 16:20
fuente
7

Mantener un esquema específico nunca es una buena idea, incluso si los entornos empresariales requieren actualizaciones / cambios frecuentes de contraseñas. Por ejemplo, si, como en su ejemplo, alguien mantuvo los mismos caracteres básicos y solo cambió la contraseña por un solo número entero, alguien que aprende una contraseña antigua podría usar el esquema para predecir los cambios. Tomemos, por ejemplo, la herramienta llamada "crujido". Usando el ejemplo que proporcionó, todas las posibles permutaciones del esquema podrían generarse y usarse en un ataque de diccionario.

#!/bin/bash

crunch 9 9 0123456789 -t awefjio@@

Crunch will now generate the following amount of data: 1000 bytes
0 MB
0 GB
0 TB
0 PB
Crunch will now generate the following number of lines: 100 
awefjio00
awefjio01
awefjio02
awefjio03
awefjio04
awefjio05
awefjio06
awefjio07
awefjio08
awefjio09
awefjio10
.........

Y así sucesivamente y así sucesivamente. Mantener un patrón de contraseña predecible hace que la piratería en foros de inicio de sesión en sitios web protegidos por credenciales sea muy fácil. Es una buena práctica crear una contraseña única y completamente nueva cada vez. Otra cosa que es una amenaza es la etapa de recopilación de información de la piratería. Cuanto más aprenda un pirata informático acerca de los hábitos, gustos, disgustos, aficiones, nombres de familia, fechas de nacimiento, eventos especiales de vida de un objetivo, más tendrán que continuar con la creación del diccionario / lista de palabras para descifrar un inicio de sesión.

Por lo tanto, para responder a su pregunta, no, nunca es una buena práctica, en ningún caso, una buena práctica usar incrementos de enteros simples con cambios de contraseña,

    
respondido por el Yokai 12.05.2016 - 15:55
fuente
5

Sí, lo es.

Requerir que los usuarios cambien sus contraseñas regularmente es un poco contraproducente de seguridad-teatro (vea Artículo CESG ), ya que obliga a los usuarios a escribir sus contraseñas. Si un atacante ha logrado obtener una contraseña, es posible que tengan varias semanas para instalar puertas traseras o sorber gigabytes de datos del sistema antes de cambiar la contraseña.

El uso de un esquema de numeración simple le permite elegir una contraseña que puede recordar sin escribirla, luego puede usar el sistema para permitirle seguir usando su contraseña memorable indefinidamente.

Si su contraseña existente tiene n bits de entropía, continuará teniendo tanta entropía como cualquier otra contraseña de entropía de n bits. Cambiar constantemente las contraseñas no cambia eso. Al agregar un solo dígito al final se agregan aproximadamente 2,3 bits ( ln (10) bits). Pero incluso si su esquema de numeración es tan fácil de adivinar que no agrega entropía, todavía tiene los bits n con los que comenzó.

Si el algoritmo de hash utilizado es bueno, entonces una contraseña a hará un hash a lo que parece ser una cadena aleatoria. Otra contraseña b proporcionará lo que parece ser una cadena completamente diferente (excepto en el caso extraordinariamente raro de una colisión de hash). No debería haber una forma posible, al observar los dos hashes, para determinar si las dos contraseñas son completamente diferentes, o varían solo por un carácter (quizás un dígito en el extremo). Si es posible saber si solo un personaje ha cambiado, entonces su algoritmo de hash está roto y necesita uno mejor.

El mismo argumento se aplica a cualquier sistema de cifrado utilizado para transferir contraseñas de un cliente a un host. Si dos contraseñas similares dan mensajes cifrados similares, entonces el cifrado ya es inútil.

    
respondido por el Simon B 12.05.2016 - 12:57
fuente
4

En su caso, la seguridad del esquema de secuenciación se reduce principalmente debido a factores no criptológicos. Considere el surf de hombro Si escribe la misma contraseña, día tras día, año tras año, sus compañeros de trabajo u otros observadores podrían notar los patrones. Puede escribir la misma contraseña en diferentes ubicaciones que tengan diferentes niveles de seguridad física, como una cafetería, donde una cámara normal podría recoger la contraseña.

Considere el caso en el que el atacante no usa el conocimiento al mismo tiempo que lo aprende. Puede que sea un compañero de trabajo que accidentalmente respetó tu contraseña el año pasado, pero este año somos rivales por la misma cuenta. Saber que una de sus contraseñas antiguas era qwerty1007 y otra qwerty1011 significa que tendré éxito con algunas conjeturas bastante simples.

Al emplear un patrón, aumenta el riesgo de pérdida durante un período de tiempo más largo.

[Su propuesta se parece superficialmente a un esquema común utilizado por los sistemas de autenticación de dos factores. Un usuario debe ingresar una contraseña recordada, además de ingresar un código que se muestra en su dispositivo de hardware.

Pero la razón por la que es seguro no es que la seguridad se mejore notablemente por el tamaño del código del token; es que el sistema limitará el número de contraseñas incorrectas + código a un número finito y luego bloqueará la identificación del usuario. ]

    
respondido por el John Deters 12.05.2016 - 16:03
fuente
3

Me gustaría elaborar algo sobre la explicación que Sjoerd da y abordarla desde un ángulo algo diferente.

Primero, uno debe preguntar qué objetivo de seguridad se está logrando con el cambio de contraseñas programado (en lugar de reactivo). ¿Por qué su división de seguridad o documento de mejores prácticas lo obliga a cambiar una contraseña cada dos meses?

Hay un par de razones:

  1. para complicar los ataques de fuerza bruta

    Cuando alguien obtiene acceso al hash de su contraseña, es probable que les lleve bastante tiempo antes de que logren romperla. Si la cantidad de tiempo para realizar un ataque de fuerza bruta es más larga que el período de validez de la contraseña, no pueden beneficiarse realmente al obtener la contraseña ya que ya la ha cambiado

  2. Para limitar la cantidad de tiempo que una contraseña comprometida puede ser útil

    Las personas no siempre descubren que su contraseña fue comprometida. Un cambio de contraseña regular se asegura de que la contraseña no permita que el atacante entre para siempre. (Por supuesto, en algunos casos, cuando se encuentran una vez, siempre se deben al malware, apt lo tienen, pero no siempre es así). Esto también se ocupa de situaciones en las que el atacante solo descubre el compromiso tarde debido a algunas circunstancias.

  3. Para frenar ligeramente la reutilización de contraseñas

    Las personas a menudo reutilizarán sus contraseñas en múltiples sistemas (trabajo y privado). La mayoría de los sistemas privados (gmail, la página web de registro del centro deportivo, etc.) no fuerzan los cambios regulares de contraseña, por lo que es probable que incluso si el usuario comienza con la misma contraseña en todas partes, los cambios de contraseña lo harán diferenciarlos.

  4. Para unir los ataques hash

    Si un atacante solo obtiene acceso al hash de su contraseña, a menudo puede usar ese hash para autenticarse contra los sistemas si es lo suficientemente sofisticado. Cambiar la contraseña subyacente cambiará el hash y, por lo tanto, volverá a detener al atacante.

Ahora podemos preguntarnos cómo se comparan los dos esquemas que propone con los objetivos que hemos delineado. En cualquier caso en el que el atacante obtenga acceso al texto sin formato de su contraseña (ciertamente 1,2), el primer esquema (incremental) es mucho más débil que el segundo. Cualquier atacante que no tenga muerte cerebral intentará la incrementación. En la tercera situación, es un poco más difícil de juzgar, ya que depende de si la contraseña del servicio externo contiene el contador y, en general, cuál es el impacto real de la regulación. Para el cuarto objetivo, el incremento está prácticamente a la par con el segundo esquema, suponiendo que la función hash utilizada se comporte lo suficientemente cerca como un oráculo aleatorio.

Todos juntos, solo incrementar el contador en una contraseña es ciertamente mucho más débil que elegir nuevas contraseñas arbitrarias, pero la cantidad depende de los tipos de ataques que esperas.

    
respondido por el DRF 12.05.2016 - 15:31
fuente
1

Deberías tirar una nueva contraseña completa.

Si no hay una infracción, no veo el valor de las contraseñas en rotación constante. Sin embargo, cuando rotas las contraseñas, esta es la clave:

Desea regenerar la contraseña utilizando un sistema con la misma restricción supuestamente segura con la que estableció la contraseña original. Es decir. NO es aceptable incrementar un número porque solo está haciendo un cambio de un byte ya que probablemente un generador le dio P3588swrOd4.

Entonces, si sus reglas de contraseña son 3 palabras aleatorias reales "BadgerYtterbiumLancet" Al elegir una nueva palabra no aleatoria, hace que su contraseña sea mucho más fácil de adivinar, "BadgerFoxSquirrel".

El otro gran problema con solo incrementar las contraseñas es que crea una situación: digamos que su compañía hace esto por 10 años ... la gente cambia las contraseñas cada mes. Estás creando hashes de las contraseñas que son peligrosamente similares entre sí. (es por eso que usa cualquier cosa 'aleatoria', 'escogiendo' las contraseñas - bueno, las personas tienden a usar una contraseña, una frase común, etc.) Desea tener tanta singularidad con cada contraseña en comparación con otra - quiere tratar la nueva Contraseñas para lo mismo que nuevas contraseñas. Es decir. Contraseña1, Contraseña2, 3,4,5, etc. Esto termina en un lugar realmente malo. Lo que es peor, si está comprometido y soluciona el problema, si sus datos son valiosos para el cracker, puede apostar a que intentarán variaciones cercanas de lo que funcionaron antes.

Además, debe tenerse en cuenta que es inseguro para las personas fuera de su organización (es decir, empleados despedidos / antiguos) conocer el método para la generación de contraseñas. De nuevo, esta es la razón por la que vuelvo al 'aleatorio': nadie debería saber cómo predecir la generación de su contraseña más allá de algo vago "escogieron 4 palabras al azar en el diccionario" o "usaron un generador de contraseñas aleatorio fuerte".

    
respondido por el Lilly 12.05.2016 - 21:51
fuente
1

Si se filtra su base de datos de contraseñas, una buena contraseña puede demorar un poco en descifrarla. En ese momento, es muy probable que se haya visto obligado a cambiar su contraseña. Ese concepto es una gran parte de la razón por la que existen estos restablecimientos forzados de contraseñas en el "teatro de seguridad".

SIN EMBARGO, el acceso a su cuenta generalmente se maneja mediante un script automatizado. Si la contraseña intentada falla, entonces el script todavía tiene algunos intentos más hasta el bloqueo. Si, el 12 de mayo de 2016, se rechazó una contraseña como "fredJune15", y se informó al script que los datos se adquirieron en julio de 2015, entonces el script podría probar fredApril15, fredApril12, fredApril16 antes del bloqueo: usted ha otorgado el script pistas para cosas que probar.

Si el script conoce el período de restablecimiento de la contraseña de su sistema, o puede adivinarlo, entonces puede adivinar con un número incremental simple, aproximadamente la cantidad de veces que se habrá incrementado el número. Así que "fred12", después de siete períodos de restablecimiento forzado de contraseñas, casi seguro será "fred19". Los períodos de restablecimiento de la contraseña son casi siempre de un mes, por lo que suponerlos casi siempre funcionará.

También vale la pena señalar: si usa la misma contraseña en varios sistemas, pero con números diferentes porque uno se incrementa a una tasa diferente, o porque creó sus cuentas en un momento diferente, entonces si un sistema está comprometido, ambos Los sistemas son.

En resumen: no, genera una nueva contraseña aleatoria cada vez. Utilice un administrador de contraseñas. Si puede usar la autenticación de dos factores, hágalo.

    
respondido por el Dewi Morgan 12.05.2016 - 16:37
fuente
0

Cuando estoy descifrando contraseñas, obtendré tu nueva contraseña en el mismo segundo si todo lo que haces es incrementar. Esto se debe a que estoy probando contraseñas anexadas y anexadas antes que nada y solo después de los esquemas relacionados con QWERTY y la lista básica de contraseñas descubiertas, ya que mi experiencia es lo que los humanos estamos dispuestos a hacer.

    
respondido por el sonofapharmacist 13.05.2016 - 14:53
fuente
0

Probablemente no sea la respuesta más segura, pero recientemente escuché consejos sobre qué usar para las contraseñas que cambian regularmente: ¿Cuál es su objetivo o algo más que espera hacer en los próximos X meses? Use eso para hacer una contraseña. Por lo tanto, si va a viajar a Disney World antes de que caduque su contraseña, ¡podría hacer algo como Looking4wrd2SpaceMtn!

En X meses, cuando la contraseña caduque, considera otra cosa, quizás una meta en la que estés trabajando: ¡Wrk-out-35mincard! o

Su contraseña no se puede deducir de las contraseñas anteriores (si es inteligente al respecto), tienen una longitud decente y le ayudan a recordar un objetivo en el que está trabajando o un evento que espera.

Si el truco está tratando de recordar la contraseña y cambia con frecuencia, creo que esta no es una opción terrible.

    
respondido por el Paul Pehrson 14.05.2016 - 01:50
fuente
0

Es posible que estés algo seguro si tu sufijo parece un año de nacimiento.

Si uso myname1977 , entonces hay menos, pero probablemente no sea cero, la posibilidad de que alguien que conoce esa contraseña adivine que la cambié a myname1978 .

¿Pero por qué arriesgarse? (haga lo que le digo, no lo que hago; me incremento, pero solo en el trabajo, porque ese es el único lugar que me pide que cambie mi contraseña y, en lo que a mí respecta, cualquier persona de la compañía es libre de ver todo en Mi PC de trabajo. Su kilometraje definitivamente variará).

Personalmente, encuentro que Edward Lear es una gran fuente de inspiración para las contraseñas :-)

Y el más simple y memorable, "marque todas las casillas" de un mínimo de 8 caracteres, un número, una mayúscula y amp; un carácter especial es seguramente cat plus one big dog AKA cat+1Dog

    
respondido por el Mawg 15.05.2016 - 15:57
fuente

Lea otras preguntas en las etiquetas