web-dev-qa-db-ja.com

OpenWrtのルートパスワードの最大長が8文字であるのはなぜですか?

rootのパスワードを設定しようとすると:

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.

最大長は8文字のようです。8より長いパスワードを設定しようとすると、最初の8文字だけが有効になります。 rootに長いパスワードを設定するにはどうすればよいですか?

私のOpenWrtバージョン:

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

これは、DESベースの暗号化(別名 'descrypt')がパスワードを8バイトで切り捨て、パスワード検証の目的で最初の8バイトのみをチェックするためです。

それがあなたの直接的な質問への答えですが、ここにあなたの文脈によって暗示されるいくつかの一般的なアドバイスがあります:

  • 幸い、私の読書から、MD5/etc/login.defsは実際にはmd5crypt($ 1 $)ですが、少し古くなっています およびその作成者によって非推奨と宣言されています は、まだはるかに優れていますDESベースの暗号化(および間違いなくプレーンなMD5のような生の無塩ハッシュよりもはるかに優れています!ほとんどの無塩ハッシュは、のレートで商品GPUでクラックされる可能性があります数十億/秒)

  • SHA256(実際にはsha256crypt)とSHA512(実際にはsha512crypt)もあるようです。代わりにそのうちの1つを選びます。

  • 各スキームの下でパスワードをpasswordまたは何かに設定すると、それらが-cryptバリアントであるという私の結論が正しいかどうかを視覚的に確認できます(ここでの例は hashcatの例から取得したものです)ハッシュ 、すべて「hashcat」、一部は読みやすくするためにラップされています):

非推奨-無塩または従来のハッシュタイプ。パスワードの保存には「速すぎる」(クラッキングレート)。

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

OK-無塩よりもはるかに優れており、切り捨ては行われませんが、最新のハードウェアでのブルートフォースに対する耐性は十分ではありません。

md5crypt    - $1$28772684$iEwNOgGugqO9.bIz5sk8k/

より良い-大きな塩と仕事係数を持つ比較的現代的なハッシュ:

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

これらのうち、descryptでのみ8で切り捨てます。最後の2つが最善の策です。

(補足:上記のmd5cryptとsha512cryptの例の数字のみのソルトは、hashcatがサンプルハッシュを作成する方法の副作用にすぎません。通常、実際の健全なソルトは、はるかに大きなキースペースから取得されます)。

また、このプラットフォームでは/etc/login.defsでサポートされているハッシュタイプのみをリストしていることにも注意してください。一般的な用途では、sha256cryptとsha512cryptでさえも置き換えられました-最初にbcryptで、次にscryptやArgon2ファミリーのような真の並列攻撃耐性ハッシュで置き換えられました。 (ただし、1秒以内に完了するインタラクティブログインの場合、bcryptは実際には後者よりも攻撃に対する耐性が高いことに注意してください)

35
Royce Williams

私はこれを/etc/login.defs

PASS_MAX_LEN            8

問題が修正されました。


重要な追加:

上記のパラメーターを変更した後、8桁を超えるパスワードを設定できますが、実際のパスワードは最初の8桁しかないため、依然として無効です。これが私の問題かどうかはわかりません。

私の最終的な解決策は設定することです

# ENCRYPT_METHOD DES

ENCRYPT_METHOD MD5

/etc/login.defs

これで、本当に8より大きいrootパスワードを設定できます。

20
Alan42