Soluzione 1:
Questo perché la crittografia basata su DES (alias "descrypt") tronca le password a 8 byte e controlla solo i primi 8 ai fini della verifica della password.
Questa è la risposta alla tua domanda diretta, ma ecco alcuni consigli generali impliciti nel tuo contesto:
-
Fortunatamente, dalla mia lettura,
MD5
in/etc/login.defs
è in realtà md5crypt ($1$), che, anche se un po' obsoleto e dichiarato obsoleto dal suo autore, è ancora di gran lunga superiore a DES-based crypt (e sicuramente molto meglio di un hash crudo e non salato come il semplice MD5! La maggior parte degli hash non salati può essere violata su GPU commodity a tassi di miliardi al secondo) -
Sembra
SHA256
(in realtà sha256crypt) eSHA512
(in realtà sha512crypt) ci sono anche. Sceglierei invece uno di quelli. -
Se imposti la tua password su
password
o qualcosa sotto ogni schema, puoi verificare visivamente se la mia conclusione che sono le varianti -crypt sia corretta o meno (gli esempi qui sono presi dagli hash di esempio hashcat, tutti 'hashcat', alcuni racchiusi per leggibilità):
Non consigliato:tipi di hash non salati o legacy, troppo "veloci" (tassi di cracking) per l'archiviazione delle password:
MD5 - 8743b52063cd84097a65d1633f5c74f5
SHA256 - 127e6fbfe24a750e72930c220a8e138275656b8e5d8f48a98c3c92df2caba935
SHA512 - 82a9dda829eb7f8ffe9fbe49e45d47d2dad9664fbb7adf72492e3c81ebd3e2 \
9134d9bc12212bf83c6840f10e8246b9db54a4859b7ccd0123d86e5872c1e5082f
descrypt - 48c/R8JAv757A
OK - molto meglio di non salato, nessun troncamento, ma non più sufficientemente resistente alla forza bruta sull'hardware moderno:
md5crypt - $1$28772684$iEwNOgGugqO9.bIz5sk8k/
Migliore:hash relativamente moderni con grandi sali e fattori di lavoro:
sha256crypt - $5$rounds=5000$GX7BopJZJxPc/KEK$le16UF8I2Anb.rOrn22AUPWvzUETDGefUmAV8AZkGcD
sha512crypt - $6$52450745$k5ka2p8bFuSmoVT1tzOyyuaREkkKBcCNqoDKzYiJL9RaE8yMnPgh2XzzF0NDrUhgrcLwg78xs1w5pJiypEdFX/
Di questi, solo decrypt tronca a 8. Gli ultimi due sono la soluzione migliore.
(Nota a margine:i sali di sole cifre negli esempi md5crypt e sha512crypt sopra sono solo effetti collaterali di come hashcat crea hash di esempio; i sali veri e sani sono solitamente estratti da uno spazio delle chiavi molto più grande).
Si noti inoltre che sto solo elencando i tipi di hash supportati da /etc/login.defs su questa piattaforma. Per uso generale, anche sha256crypt e sha512crypt sono stati sostituiti, prima da bcrypt e successivamente da hash veramente resistenti agli attacchi paralleli come scrypt e la famiglia Argon2. (Si noti, tuttavia, che per gli accessi interattivi che dovrebbero essere completati in meno di un secondo, bcrypt è in realtà più resistente agli attacchi rispetto a quest'ultimo)
Soluzione 2:
L'ho modificato in /etc/login.defs
:
PASS_MAX_LEN 8
problema risolto.
Aggiunte importanti:
Dopo aver modificato i parametri di cui sopra, anche se posso impostare una password più grande di 8 cifre, non è ancora valida perché la vera password è solo le prime otto cifre. Non so se questo è il mio problema.
La mia soluzione finale è impostare
# ENCRYPT_METHOD DES
a
ENCRYPT_METHOD MD5
in /etc/login.defs
.
Ora posso finalmente impostare una password di root che sia davvero più grande di otto.