2010-02-01 12 views
19

Anni fa era il caso che le password di Unix fossero limitate a 8 caratteri, o che se avessi fatto la password più lunga di 8 caratteri l'extra non avrebbe fatto alcuna differenza.Le password sui moderni sistemi Unix/Linux sono ancora limitate a 8 caratteri?

È ancora così nella maggior parte dei moderni sistemi Unix/Linux?

In tal caso, quando le password più lunghe diventano possibili sulla maggior parte dei sistemi?

C'è un modo semplice per dire se un determinato sistema supporta password più lunghe e, in tal caso, quale sarebbe il massimo effettivo (se presente)?

Ho effettuato alcune ricerche sul Web su questo argomento e non sono riuscito a trovare nulla di definitivo; gran parte di ciò che è venuto fuori è stato dai primi anni 2000, quando penso che il limite di 8 caratteri fosse ancora comune (o abbastanza comune da giustificare il rispetto di quel limite).

risposta

12

In glibc2 (ogni moderna distribuzione Linux) la funzione di crittografia della password è possibile utilizzare MD5/SHA-xxx (provocata da un prefisso di sale magico) che poi tratta come significativo tutte i caratteri di input (vedi man 3 crypt). Per un semplice test sul proprio sistema, si potrebbe provare qualcosa di simile:

#!/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"; 

(che sul mio sistema dà)

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

Altre varianti * ix supportano simili - per esempio crypt(3) since at least Solaris 10. Tuttavia, è un'estensione non standard - POSIX does not define it.

+1

L'hash md5 che usa $ 1 $ è ** 22 ** anni. Era usato per default per eseguire l'hashing di 'shadow' per un po 'di tempo, ma ora non è sicuro. Nessuno lo ha usato seriamente nel 2010. La vecchia cripta utilizzava des, e non tutti i personaggi erano significativi. Non era proprio così rotto nel 1995, con una buona password. –

+0

@AnttiHaapala Lo è sicuramente! Questo è solo l'esempio più semplice: la manpage (collegata) per crypt fornisce altri valori per l'algoritmo, ad esempio $ 5 $ per SHA-256 e $ 6 $ per SHA-512. – jmb

1

Troverete questo article di interesse. Esiste qualcosa chiamato PAM (Password Authentication Module) che esegue la password attraverso una serie di moduli (configurati in /etc/pam.d/passwd o /etc/pam.conf) per determinare se la password è valida o meno.

4

Non per Linux. È solo 8 se si disabilita l'hashing MD5.

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

È possibile amministrare le politiche far rispettare più e le password più complesse così.

Le lunghezze complete sono discussi qui:

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

+1

Linux usa ancora MD5 in questi giorni? Lo chiedo perché è considerato rotto. –

+0

@Steven: IIRC, sì usa ancora MD5 per impostazione predefinita. Usa comunque un sale abbastanza buono, quindi è un po 'al sicuro dagli attacchi dei tavoli arcobaleno, ma non è così sicuro come potrebbe essere. – rmeador

+1

Interessante. Ricordo vagamente che alcune varianti di Unix supportano più di un algoritmo di hashing. –

0

penso tutto il tempo in cui le password effettivi sono stati spostati da/etc/passwd per ombra, su Linux. Sto indovinando intorno al 2000, Red Hat 6.x aveva password lunghe IIRC. Intorno al 2000 c'erano ancora molti vecchi SUN e avevano limiti di password e username.

5

Stai chiedendo l'algoritmo crypt?

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

"Prendendo i più bassi 7 bit di ciascuno dei primi otto caratteri della chiave ..."

"La versione glibc2 di questa funzione ha le seguenti funzioni aggiuntive. ... L'intera chiave è significativa qui (anziché solo i primi 8 byte). "

Ecco un suggerimento su quanto tempo fa questo cambiamento è accaduto.

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

Anche se il original DES-based algorithm utilizzati solo i primi 8 caratteri della password, Linux, Solaris e altri sistemi più recenti ora inoltre sostenere altri algoritmi hash della password, come MD5 che non hanno questo limite. A volte è necessario continuare a utilizzare il vecchio algoritmo se la rete contiene sistemi meno recenti e se viene utilizzato NIS. Puoi dire che il vecchio algoritmo basato su DES è ancora in uso se il sistema ti loggerà quando inserisci solo i primi 8 caratteri della tua password> 8 caratteri.

Poiché si tratta di un algoritmo di hash, MD5 non ha un limite intrinseco. Tuttavia, varie interfacce generalmente impongono some limit of at least 72 characters.

Anche se in origine la password crittografata era memorizzata in un file leggibile a livello mondiale (/etc/passwd), ora viene solitamente memorizzata in un database shadow separato (ad esempio /etc/shadow) che è leggibile solo da root. Pertanto, la forza dell'algoritmo non è più così importante come una volta. Tuttavia, se MD5 è inadeguato, Blowfish o SHA possono essere utilizzati su alcuni sistemi. E Solaris supporta moduli di crittografia password collegabili, consentendo di utilizzare any crazy scheme. Ovviamente, se si utilizza LDAP o un altro database utente condiviso, sarà necessario selezionare un algoritmo supportato su tutti i sistemi.

+0

Ottime informazioni e collegamenti - grazie per aver risposto! Ci sono state molte buone risposte quindi ho finito per "accettare" quello che mi ha dato il codice per determinare se fosse sicuro usare le password> 8, ma ho aggiornato tutte le buone risposte, incluse le tue. Grazie! – Chirael

+0

Nessun problema. BTW è sempre * sicuro * usare password più lunghe di 8 caratteri, è solo che se la tua password è stackoverflow può anche accettare lo stackoverload. Aggiungere i caratteri in più potrebbe rendere più facile ricordare e non ridurre la sicurezza. Inoltre, tieni presente che tutti gli algoritmi possono avere conflitti di hash e accettano più di una password, soprattutto se sono lunghi. – mark4o

Problemi correlati