2010-02-01 8 views
19

Hace años solía ser que las contraseñas de Unix estaban limitadas a 8 caracteres, o que si hacía una contraseña de más de 8 caracteres, el extra no suponía ninguna diferencia.¿Las contraseñas en los sistemas modernos de Unix/Linux aún están limitadas a 8 caracteres?

¿Sigue siendo así en la mayoría de los sistemas Unix/Linux modernos?

En caso afirmativo, ¿cuándo se hicieron posibles las contraseñas en la mayoría de los sistemas?

¿Hay una forma fácil de saber si un sistema dado admite contraseñas más largas y, de ser así, cuál sería el máximo efectivo (si lo hubiera)?

He hecho algunas búsquedas en la web sobre este tema y no he podido encontrar nada definitivo; gran parte de lo que surgió fue a partir de la década de 2000 cuando creo que el límite de 8 caracteres todavía era común (o lo suficientemente común como para justificar el cumplimiento de ese límite).

Respuesta

12

En glibc2 (cualquier distribución moderna de Linux) la función de cifrado de la contraseña puede usar MD5/SHA-xxx (provocada por un prefijo sal mágica) que luego se trata como significativa todos los caracteres de entrada (ver man 3 crypt). Para una prueba sencilla en su sistema, usted podría intentar algo como:

#!/bin/perl -w 
my $oldsalt = '@@'; 
my $md5salt = '[email protected]@$'; 
print crypt("12345678", $oldsalt) . "\n"; 
print crypt("123456789", $oldsalt) . "\n"; 
print crypt("12345678", $md5salt) . "\n"; 
print crypt("12345678extend-this-as-long-as-you-like-0", $md5salt) . "\n"; 
print crypt("12345678extend-this-as-long-as-you-like-1", $md5salt) . "\n"; 

(lo que en mi sistema da)

@@nDzfhV1wWVg 
@@nDzfhV1wWVg 
[email protected]@$PrkF53HP.ZP4NXNyBr/kF. 
[email protected]@$4fnlt5pOxTblqQm3M1HK10 
[email protected]@$D3J3hluAY8pf2.AssyXzn0 

Otras variantes * ix apoyo similar - por ejemplo, crypt(3) since at least Solaris 10. Sin embargo, es una extensión no estándar: POSIX does not define it.

+1

El hash md5 con '$ 1 $' tiene ** 22 ** años. Solía ​​ser el valor predeterminado para hash la 'sombra' durante bastante tiempo, pero es inseguro por ahora. Nadie lo usó seriamente en 2010. La antigua cripta usaba des, y no todos los personajes eran significativos. No fue realmente tan roto ~ 1995, con una buena contraseña. –

+0

@AnttiHaapala ¡Ciertamente lo es! Este es solo el ejemplo más simple: la página de manual (vinculada) para crypt da otros valores para el algoritmo, como $ 5 $ para SHA-256 y $ 6 $ para SHA-512. – jmb

1

Encontrará este article de interés. Hay algo llamado PAM (Password Authentication Module) que ejecuta su contraseña a través de una serie de módulos (configurados en /etc/pam.d/passwd o /etc/pam.conf) para determinar si la contraseña es válida o no.

4

No es para Linux. Es solo 8 si desactiva MD5 Hashing.

http://www.redhat.com/docs/manuals/linux/RHL-8.0-Manual/security-guide/s1-wstation-pass.html

Puede administrar las políticas ya hacer cumplir y contraseñas más complejas así.

Las longitudes completos se discuten aquí:

http://www.ratliff.net/blog/2007/09/20/password-length/

+1

¿Linux todavía usa MD5 en estos días? Lo pregunto porque se considera roto. –

+0

@Steven: IIRC, sí, todavía usa MD5 por defecto. Sin embargo, utiliza una sal razonablemente buena, por lo que es algo seguro de los ataques de tabla arco iris, pero no tan seguro como podría ser. – rmeador

+1

Interesante. Recuerdo vagamente que algunas variantes de Unix admiten más de un algoritmo hash. –

0

pienso en todo el tiempo en que las contraseñas reales fueron trasladados desde/etc/passwd a la sombra, en Linux. Supongo que alrededor de 2000, Red Hat 6.x tenía contraseñas largas IIRC. Alrededor del año 2000 todavía había mucho SUN antiguo, y tenían límites de contraseña y nombre de usuario.

5

¿Está preguntando sobre el algoritmo crypt?

http://linux.die.net/man/3/crypt

"Al tomar los 7 bits más bajos de cada uno de los ocho primeros caracteres de la clave ..."

"La versión glibc2 de esta función tiene las siguientes características adicionales. ... La clave completa es significativa aquí (en lugar de solo los primeros 8 bytes) ".

Aquí hay un indicio de cuánto tiempo ha pasado este cambio.

Glibc 2 HOWTO 
    Eric Green, [email protected] 
    v1.6, 22 June 1998 
12

Aunque el original DES-based algorithm sólo se utilizan los primeros 8 caracteres de la contraseña, Linux, Solaris y otros sistemas más nuevos ahora, además, apoyar a otros algoritmos hash de la contraseña como MD5 que no tienen este límite. Algunas veces es necesario continuar usando el algoritmo anterior si su red contiene sistemas más antiguos y si se usa NIS. Se puede decir que el antiguo algoritmo basado en DES todavía se está utilizando si el sistema iniciará sesión cuando ingrese solo los primeros 8 caracteres de su contraseña de> 8 caracteres.

Como es un algoritmo hash, MD5 no tiene un límite intrínseco. Sin embargo, varias interfaces generalmente imponen some limit of at least 72 characters.

Aunque en un principio la contraseña cifrada se almacena en un archivo legible por todos (/etc/passwd), ahora se suele almacenar en una base de datos separada sombra (por ejemplo /etc/shadow) que sólo es legible por root. Por lo tanto, la fortaleza del algoritmo ya no es tan importante como lo era antes. Sin embargo, si MD5 es inadecuado, Blowfish o SHA se pueden usar en cambio en algunos sistemas. Y Solaris admite módulos de encriptación de contraseñas conectables, lo que le permite usar any crazy scheme. Por supuesto, si está utilizando LDAP o alguna otra base de datos de usuarios compartidos, deberá seleccionar un algoritmo que sea compatible con todos sus sistemas.

+0

Información y enlaces geniales - ¡gracias por responder! Hubo muchas buenas respuestas, así que terminé "aceptando" la que me dio el código para determinar si era seguro usar contraseñas> 8, pero califiqué todas las buenas respuestas, incluida la suya. ¡Gracias! – Chirael

+0

No hay problema. Por cierto, siempre es * seguro * usar contraseñas de más de 8 caracteres, solo que si tu contraseña es stackoverflow también puede aceptar stackoverload. Agregar los caracteres adicionales puede hacer que sea más fácil de recordar y no disminuirá la seguridad. También tenga en cuenta que todos los algoritmos pueden tener colisiones hash y aceptarán más de una contraseña, especialmente si son largas. – mark4o

Cuestiones relacionadas