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


29

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

回答:


35

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

それはあなたの直接の質問への答えですが、あなたのコンテキストによって暗示されるいくつかの一般的なアドバイスがあります

  • 幸い、私の読書から、MD5中には/etc/login.defs少し時代遅れながら、md5crypt($ 1 $)、実際には、その作者で非推奨宣言、DESベースの暗号にはまだはるかに優れている(そして間違いなく無地などの生、無塩ハッシュよりもはるかに優れMD5!ほとんどの無塩ハッシュは、1秒あたり数十億のレートで汎用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/

これらのうち、8で切り捨てるのは復号化のみです。最後の2つが最善策です。

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

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


20

私はこれを修正しました/etc/login.defs

PASS_MAX_LEN            8

問題が修正されました。


重要な追加:

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

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

# ENCRYPT_METHOD DES

ENCRYPT_METHOD MD5

/etc/login.defs

これで、実際に8を超えるルートパスワードを設定できます。


16
しかし、システムのデフォルトのために良い修正、悪い元の選択...
HBruijn

8
今、パスワードを8文字より長いものに変更したと思います。長いパスワードの最初の8文字だけでログインできる場合、試してみてください。それはただかもしれないので...
marcelm

9
あなたはそれをSHA256またはSHA512に変更することを検討するかもしれません、またはそれらはサポートされています-MD5は最近壊れていると考えられています。
PhilippNagel

8
本当にsha256とsha512自体は、md5よりもはるかに優れているわけではありません。ソルトが必要で、これらのアルゴリズムの暗号化バージョンを使用します。
SnakeDoc

4
@PhilippNagel高エントロピーのパスワードを使用すれば、それほど悪くはありません。MD5は確かに壊れていると見なされるべきですが、現在知られている弱点はパスワードハッシュに関しては影響しません。何パスワードハッシュのための問題は速度です。非反復MD5は非常に高速であるため、ブルートフォースは多くのパスワードに対して非常に適しています。
marcelm
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.