Perché la lunghezza massima della password di root di OpenWrt è di 8 caratteri?


29

Quando provo a impostare rootla password:

root@OpenWrt:~# passwd
Changing password for root
Enter the new password (minimum of 5, maximum of 8 characters)
Please use a combination of upper and lower case letters and numbers.

Sembra che la lunghezza massima sia 8. Se provo a impostare una password più lunga di 8, sono validi solo i primi 8 caratteri. Come posso impostare una password più lunga per root?

La mia versione di OpenWrt:

Linux OpenWrt 4.14.108 #0 SMP Wed Mar 27 21:59:03 2019 x86_64 GNU/Linux

Risposte:


35

Questo perché la crittografia basata su DES (AKA '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 implicati nel tuo contesto:

  • Fortunatamente, dalla mia lettura, MD5in /etc/login.defsè in realtà md5crypt ($ 1 $), che, sebbene un po 'obsoleto e dichiarato deprecato dal suo autore , è ancora molto superiore alla cripta basata su DES (e sicuramente molto meglio di un hash grezzo, non salato come la pianura MD5! La maggior parte degli hash non salati può essere violata su GPU di materie prime a tassi di miliardi al secondo)

  • Sembra che SHA256(in realtà sha256crypt) e SHA512(in realtà sha512crypt) ci siano anche. Vorrei scegliere uno di quelli invece.

  • Se imposti la tua password su passwordo qualcosa sotto ogni schema, puoi verificare visivamente se la mia conclusione che sono le varianti -crypt è corretta (gli esempi qui sono presi dagli hash di esempio hashcat , tutti gli 'hashcat', alcuni racchiusi per la leggibilità):

Non consigliato - tipi di hash non salati o legacy, troppo "veloci" (velocità 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 su hardware moderno:

md5crypt    - $1$28772684$iEwNOgGugqO9.bIz5sk8k/

Meglio - hash relativamente moderni con grandi sali e fattori di lavoro:

sha256crypt - $5$rounds=5000$GX7BopJZJxPc/KEK$le16UF8I2Anb.rOrn22AUPWvzUETDGefUmAV8AZkGcD
sha512crypt - $6$52450745$k5ka2p8bFuSmoVT1tzOyyuaREkkKBcCNqoDKzYiJL9RaE8yMnPgh2XzzF0NDrUhgrcLwg78xs1w5pJiypEdFX/

Di questi, descrypt solo 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 esempi di hash; i sali reali e sani sono di solito estratti da uno spazio chiave molto più grande).

Nota anche che sto elencando solo 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 poi 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 di quest'ultimo)


20

Ho modificato questo in /etc/login.defs:

PASS_MAX_LEN            8

problema risolto.


Aggiunte importanti:

Dopo aver modificato i parametri precedenti, sebbene sia possibile impostare una password di dimensioni superiori a 8 cifre, non è ancora valido poiché la password reale è 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 è davvero più grande di otto.


16
Buona soluzione, ma pessima scelta originale per un sistema predefinito però ...
HBruijn

8
Presumo che tu abbia cambiato la tua password in qualcosa di più lungo di 8 caratteri ora. Puoi provare se il login con solo i primi 8 caratteri della tua password più lunga funziona? Perché potrebbe ...
Marcelm

9
Potresti considerare di cambiarlo in SHA256 o SHA512 o sono supportati - MD5 è considerato rotto in questi giorni.
PhilippNagel

8
davvero sha256 e sha512 da soli non sono molto meglio di md5. hai bisogno di un sale e usa le versioni crypt di questi algoritmi.
SnakeDoc

4
@PhilippNagel Con una password ad alta entropia, non è poi così male. Sebbene MD5 debba certamente essere considerato risolto, i punti deboli attualmente noti non incidono sull'hash delle password. Qual è un problema per l'hash della password è la velocità; MD5 non iterato è così veloce che la forza bruta è molto fattibile per molte password.
marzo
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.