¿Cómo puede Microsoft validar una contraseña más corta en las cuentas de Microsoft (MSDN)?

6

Recientemente me encontré con esto al iniciar sesión en MSDN. (Vi esta pantalla después de escribir mis credenciales iniciales).

Tengo una contraseña de más de 20 dígitos, sin embargo, aparentemente hay un nuevo requisito para que las cuentas de Microsoft para la contraseña no tengan más de 16 dígitos de longitud. Si escribo los primeros 16 dígitos de mi contraseña, puedo iniciar sesión.

Eso me hizo pensar: si las contraseñas se almacenan como hashes de una sola vía, un hash de una contraseña de 16 dígitos y uno de 20 dígitos no son remotamente similares. No puede validar un hash de 20 dígitos utilizando solo los primeros 16 dígitos.

Si Microsoft almacena correctamente las contraseñas (salt & hash), ¿cómo pueden validar una versión más corta de mi contraseña?

    
pregunta Paperjam 21.08.2012 - 21:33
fuente

3 respuestas

13

Tres posibilidades:

  1. Microsoft siempre lo truncaba y usted simplemente no estaba al tanto. ¿Puede usar el sistema antiguo con una contraseña de 16 caracteres y caracteres incorrectos al final?

  2. Estaban almacenando las contraseñas en texto simple (o cifrando de manera equivalente las contraseñas, permitiéndoles descifrar la contraseña para truncarla).

  3. la primera vez que migró cuentas (o en secreto anticipándose a la migración final), requirieron que ingresara la contraseña completa de 18 caracteres, verificó que era quien dijo que estaba en contra de eso, y luego creó y almacenó un nuevo hash de 16 caracteres de la contraseña truncada para el nuevo sistema. Esto es poco probable pero posible.

Independientemente, truncar contraseñas o forzar contraseñas cortas es una mala política de contraseña. Previene las frases de contraseña moderadamente fáciles de recordar ; por ejemplo, correct horse battery staple que tiene 28 caracteres de longitud. La longitud de la contraseña no debe truncarse hasta al menos ~ 50 caracteres más o menos. Si su base de datos requiere una longitud máxima fija, probablemente tenga sentido truncar alrededor de 100 caracteres aproximadamente, en cuyo punto se permiten frases de contraseña que probablemente tengan más entropía de la que caben en un hash de 128/256 bits que son perfectamente longitudes de hash fuertes.

    
respondido por el dr jimbob 21.08.2012 - 21:42
fuente
4

Esto es posible de dos maneras. Primero, si la contraseña se almacena utilizando algún tipo de cifrado reversible que permita una comparación de texto simple. Segundo, si el algoritmo de hash utilizado para almacenar la contraseña solo actúa en los primeros 16 caracteres.

    
respondido por el Tim Brigham 21.08.2012 - 21:42
fuente
4

Aunque no tengo conocimiento directo de la política de almacenamiento de contraseñas de Microsofts, sugeriría un par de escenarios posibles

  1. Lo más probable: están truncando la contraseña antes de hacerla. Por lo tanto, si su contraseña es 'iamaverylongpasspasswordandververcharcharcharcharcharcharcharcharcharcharcharcharcharcharcharcharchard', el sitio simplemente la corta a los primeros 16 caracteres antes de ejecutarla a través de la función de hashing. TBH no es una gran reducción en la seguridad, pero aún así no es deseable, ya que debilita las contraseñas de las personas
  2. menos probable: se están almacenando a la vista. Obvia mala práctica.
  3. incluso menos probable: están usando un HSM y almacenándolos allí con encriptación bidireccional, para que puedan recuperar el texto sin formato para comparar los primeros 16 caracteres.

Si fuera un apostador, mi dinero estaría en el número 1.

    
respondido por el Rоry McCune 21.08.2012 - 21:43
fuente

Lea otras preguntas en las etiquetas