Чому максимальна довжина кореневого пароля 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 крипт (AKA 'descrypt') обрізає паролі в 8 байт і перевіряє лише перші 8 для перевірки пароля.

Це відповідь на ваше пряме запитання, але ось деякі загальні поради, що містяться у вашому контексті:

  • На щастя, з мого читання, MD5в /etc/login.defsнасправді є md5crypt ($ 1 $), який, хоч трохи застарілий і оголошений застарілим його автором , все ще значно перевершує крипту на основі DES (і, безумовно, набагато краще, ніж сирий, несолоний хеш, як звичайний MD5! Більшість несолоних хешів можна зламати на товарних графічних процесорах зі швидкістю мільярдів в секунду)

  • Схоже, що SHA256(насправді sha256crypt) і SHA512(насправді sha512crypt) також є. Я б вибрав один із них.

  • Якщо ви встановите свій пароль passwordабо щось під кожною схемою, ви зможете візуально перевірити, чи правильний мій висновок про те, що вони є -crypt-варіантами (приклади тут взяті з хеш-прикладів хеш-прикладів , усі 'hashcat', деякі обгорнуті для читабельність):

Не рекомендується - несолоні або застарілі типи хешів, занадто швидкі (швидкість злому) для зберігання паролів:

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

Гаразд - набагато краще, ніж несолоне, без усікання, але вже не достатньо стійкий до грубої сили на сучасному обладнанні:

md5crypt    - $1$28772684$iEwNOgGugqO9.bIz5sk8k/

Краще - відносно сучасні хеши з великою кількістю солі та робочих факторів:

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

З них лише розшифровується скорочення у 8. Останні два - найкраща ставка.

(Побічна примітка: солі, що містять лише цифри, у прикладах md5crypt та sha512crypt - це лише побічні ефекти того, як хешкет створює хеши для прикладу; реальні, здорові солі зазвичай виводяться з набагато більшого простору клавіш).

Зауважте також, що я перераховую лише типи хешів, які підтримує /etc/login.defs на цій платформі. Для загального використання навіть sha256crypt і sha512crypt були замінені - спочатку bcrypt, а потім пізніше справжніми хешами, стійкими до паралельних атак, як scrypt та сімейство Argon2. (Однак зауважте, що для інтерактивних входів, які повинні завершитись за одну секунду, bcrypt насправді стійкіший до атаки, ніж останні)


20

Я змінив це в /etc/login.defs:

PASS_MAX_LEN            8

Виправлена ​​проблема.


Важливі доповнення:

Після того як я змінив вищевказані параметри, хоча я можу встановити пароль, більший за 8 цифр, він все ще недійсний, оскільки справжнім паролем є лише перші вісім цифр. Я не знаю, чи це моя проблема.

Моє остаточне рішення - встановити

# ENCRYPT_METHOD DES

до

ENCRYPT_METHOD MD5

в /etc/login.defs.

Тепер я можу нарешті встановити кореневий пароль, який дійсно перевищує вісім.


16
Хороший виправлення, але поганий оригінальний вибір для системного дефолту, хоча ...
HBruijn

8
Я припускаю, що ви змінили свій пароль на щось довше, ніж 8 символів. Чи можете ви спробувати ввійти лише з першими 8 символами вашого довшого пароля? Тому що це просто може ...
marcelm

9
Ви можете розглянути можливість змінити його на SHA256 або SHA512 або вони підтримуються - MD5 вважається порушеним в ці дні.
PhilippNagel

8
дійсно sha256 і sha512 самі по собі не набагато кращі, ніж md5. вам потрібна сіль і використовувати криптичні версії цих алгоритмів.
SnakeDoc

4
@PhilippNagel З паролем з високою ентропією це не дуже погано. Хоча MD5, безумовно, слід вважати порушеним, відомі на даний момент слабкі місця не впливають на його хешування. Що є проблемою для хешування паролів є швидкістю; неітераційний MD5 настільки швидкий, що грубе форсування дуже можливе для багатьох паролів.
marcelm
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.