¿Es esta seguridad de inicio de sesión aceptable?

3

Estaba iniciando sesión en una máquina virtual en una computadora en el trabajo. La VM fue Linux Debian 2.30.2.
Descubrí que podía ingresar mi contraseña, seguida de la basura, y sería aceptada.
¿Cómo se considera esto como autenticación de contraseña aceptable?
Quiero decir, vaca y cowabunga no son la misma palabra.

¿Qué tan común es esto, una especie de autenticación a medias?

    
pregunta Michael 20.01.2013 - 07:32
fuente

1 respuesta

6

No hubo una versión 2.30.2 de Debian; hubo un Debian 2.0, 2.1 y 2.2 que se lanzó hace más de 10 años. Supongo que está hablando de la versión de GNOME (su entorno de escritorio) que no tiene nada que ver con la autenticación.

La mayoría de los sistemas Debian usan PAM para la autenticación. Su contraseña se compara con un hash reforzado con clave salada que se almacena en /etc/shadow junto a su nombre.

Normalmente verás una línea en ese archivo (esto no es una contraseña real; solo se creó dumbpass para una cuenta falsa que ya se eliminó):

fake:$6$qaPTEvGg$XCMFzng5TQotiK4Whr4a0F/87.h5KK3kTO1R4Ysr6G8Ej42JZaJynYSG1uBWikQwlWhOPNNHOQgMFd6Kt.1rx/:15725:0:99999:7:::

donde el nombre de cuenta es fake , seguido del hasted salted de la contraseña reforzada con clave en la forma $id$salt$encrypted codificada en una codificación similar a base64 (base64 usando los símbolos [a–zA–Z0–9./] ), seguida de dos puntos y luego, algunos números más (estos números se relacionan con la configuración sobre cuándo se cambió la contraseña por última vez / debe cambiarse / caducará / etc.) El id = 6 anterior significa que estoy usando SHA512-crypt, que básicamente hace 5000 rondas de SHA -512 salted-hashes antes de guardar mi contraseña. Consulte man 3 crypt y man shadow para obtener más detalles, así como esta página en SHA512-crypt .

La mayoría de los sistemas modernos (por ejemplo, cualquier cosa de este siglo) usan cosas similares a esto; posiblemente utilizando MD5-crypt (que aún se verificará con la contraseña completa).

Parece que, sin embargo, está utilizando un esquema de DES muy anticuado para verificar su contraseña, que se sabe que solo compara con los primeros 8 caracteres (bytes) de la contraseña. Desde man crypt :

  

En las implementaciones de MD5 y SHA, la clave completa es significativa (en lugar de solo los primeros 8 bytes en DES).

Tu hash salado debe comenzar con un $1$ (MD5-crypt), $2a$ (bcrypt), $5$ (sha256 crypt), o $6$ (sha512 crypt), y si no significa que tiene un hash de DES (que es un esquema que se remonta a finales de la década de 1970 y no debe utilizarse en ningún momento después de finales de la década de 1990 cuando se hizo posible romper el DES en días).

Puedes comenzar a usar una mejor solución modificando la configuración de la contraseña de PAM y luego actualizando tu contraseña con el comando passwd . Las configuraciones están en /etc/pam.conf o posiblemente en el directorio /etc/pam.d/ en un archivo llamado common-password (puede variar ligeramente según la distribución). La sección relevante de mi archivo se ve así:

password    [success=1 default=ignore]  pam_unix.so obscure sha512

Esto habilita pam_unix.so para la autenticación de contraseña, usando sha512-crypt como el algoritmo para verificar las contraseñas. ( obscure obliga a las contraseñas a pasar un par de cheques para rechazar contraseñas abiertamente simples, por ejemplo, palabras de un diccionario). Ahora bien, si pam_unix.so no se puede encontrar en su sistema, es posible que vuelva a usar las contraseñas de DES (es posible que tenga que instalar "libpam-modules" que tiene pam_unix.so, aunque cualquier distribución razonable vendrá con este ajuste preestablecido). Personalmente, creo que este error es enorme, ya que los sistemas modernos podrían configurarse para usar DES y aumentar las señales de debilidad después de cada inicio de sesión exitoso; similar a lo que sucede si intentas que ciertos archivos seguros sean legibles para todo el mundo.

Además, existe una posibilidad muy pequeña de que hayas encontrado un nuevo error en crypt / PAM; por ejemplo, posiblemente si su contraseña contenía ciertos caracteres Unicode en una codificación inesperada con bytes nulos. (Tenga en cuenta que las contraseñas de DES no son capaces de manejar unicode correctamente es una de sus fallas conocidas; pero nuevamente, un esquema moderno como sha512crypt las contraseñas de unicode deben manejarse de manera segura).

    
respondido por el dr jimbob 20.01.2013 - 08:29
fuente

Lea otras preguntas en las etiquetas