GNU/Linux >> Znalost Linux >  >> Linux

Proč je maximální délka rootova hesla OpenWrt 8 znaků?

Řešení 1:

Je to proto, že šifrování založené na DES (AKA 'descrypt') zkracuje hesla na 8 bajtů a kontroluje pouze prvních 8 pro účely ověření hesla.

To je odpověď na vaši přímou otázku, ale zde je několik obecných rad vyplývajících z vašeho kontextu:

  • Naštěstí z mého čtení MD5 v /etc/login.defs je ve skutečnosti md5crypt ($1$), který, i když je trochu zastaralý a jeho autor prohlásil za zastaralý, je stále mnohem lepší než krypta na bázi DES (a rozhodně mnohem lepší než syrový, neslaný hash jako obyčejný MD5! Většinu neslaných hashů lze prolomit na komoditních GPU rychlostí miliard za sekundu)

  • Vypadá to jako SHA256 (ve skutečnosti sha256crypt) a SHA512 (ve skutečnosti sha512crypt) jsou tam také. Místo toho bych si vybral jednu z nich.

  • Pokud nastavíte heslo na password nebo něco pod každým schématem, můžete vizuálně ověřit, zda je můj závěr, že se jedná o varianty -crypt správný, či nikoli (příklady zde jsou převzaty z příkladů hashů hashcat, všechny 'hashcat', některé zabalené kvůli čitelnosti):

Nedoporučuje se – neslané nebo starší typy hash, příliš „rychlé“ (rychlost prolomení) pro ukládání hesel:

MD5         - 8743b52063cd84097a65d1633f5c74f5
SHA256      - 127e6fbfe24a750e72930c220a8e138275656b8e5d8f48a98c3c92df2caba935
SHA512      - 82a9dda829eb7f8ffe9fbe49e45d47d2dad9664fbb7adf72492e3c81ebd3e2 \
              9134d9bc12212bf83c6840f10e8246b9db54a4859b7ccd0123d86e5872c1e5082f
descrypt    - 48c/R8JAv757A

OK - mnohem lepší než neslané, žádné ořezávání, ale už nedostatečně odolné proti hrubé síle na moderní hardware:

md5crypt    - $1$28772684$iEwNOgGugqO9.bIz5sk8k/

Lepší – relativně moderní hashe s velkými solemi a pracovními faktory:

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

Z nich pouze dešifrování zkrátí na 8. Poslední dva jsou vaše nejlepší sázka.

(Poznámka:soli obsahující pouze číslice v příkladech md5crypt a sha512crypt výše jsou jen vedlejší efekty toho, jak hashcat vytváří příklad hash; skutečné, zdravé soli jsou obvykle čerpány z mnohem většího prostoru klíčů).

Všimněte si také, že uvádím pouze typy hash, které jsou podporovány /etc/login.defs na této platformě. Pro obecné použití byly dokonce i sha256crypt a sha512crypt nahrazeny – nejprve bcrypt a později skutečně hašemi odolnými proti paralelním útokům, jako je scrypt a rodina Argon2. (Všimněte si však, že pro interaktivní přihlášení, která by měla být dokončena za méně než jednu sekundu, je bcrypt ve skutečnosti odolnější vůči útoku než druhý)

Řešení 2:

Upravil jsem to v /etc/login.defs :

PASS_MAX_LEN            8

problém vyřešen.

Důležité doplňky:

Poté, co jsem změnil výše uvedené parametry, i když mohu nastavit heslo větší než 8 číslic, je stále neplatné, protože skutečné heslo je pouze prvních osm číslic. Nevím, jestli je to můj problém.

Mým konečným řešením je nastavit

# ENCRYPT_METHOD DES

do

ENCRYPT_METHOD MD5

v /etc/login.defs .

Nyní mohu konečně nastavit heslo root, které je opravdu větší než osm.


Linux
  1. Linux – Jak změnit zapomenuté heslo roota?

  2. Proč potřebuje uživatel root oprávnění sudo?

  3. Linux – Proč je kořenový adresář označen A / Sign?

  1. Jak resetovat kořenové heslo MySQL?

  2. Obnovení hesla root

  3. Jaká je maximální délka uživatelského jména na současných systémech GNU/Linux

  1. Proč „sudo Su“ ve skriptu Shell nespustí zbytek skriptu jako kořen?

  2. Jak změnit heslo root mysql

  3. jaká je maximální délka hesla v systému unix/linux?