Несколько лет назад это раньше имело место, что пароли UNIX были ограничены 8 символами, или что при создании пароля дольше, чем 8 символами, дополнительное не имело бы никакого значения.
Что все еще имеет место в большинстве современных систем Unix/Linux?
Если так, вокруг того когда более длительные пароли становились возможными в большинстве систем?
Существует ли простой способ сказать, поддерживает ли данная система более длительные пароли и если так, каков эффективный максимум (если таковые имеются) был бы?
Я сделал некоторый веб-поиск по этой теме и ничто не мог действительно найти категоричным; большая часть того, что подошло, была с начала 2000-х, когда я думаю, что 8 символьных пределов были все еще распространены (или достаточно характерны для ордера, придерживающегося того предела).
В glibc2 (любой современный дистрибутив Linux) функция шифрования пароля может использовать MD5 / SHA-xxx (вызывается префиксом волшебной соли ), который затем рассматривает как значимые все входные символы (см. man 3 crypt ). Для простого теста в вашей системе вы можете попробовать что-то вроде:
#!/bin/perl -w
my $oldsalt = '@@';
my $md5salt = '$1$@@$';
print crypt("12345678", $oldsalt) . "\n";
print crypt("123456789", $oldsalt) . "\n";
print crypt("12345678", $md5salt) . "\n";
print crypt("12345678extend-this-as-long-as-you-like-0", $md5salt) . "\n";
print crypt("12345678extend-this-as-long-as-you-like-1", $md5salt) . "\n";
(что в моей системе дает)
@@nDzfhV1wWVg
@@nDzfhV1wWVg
$1$@@$PrkF53HP.ZP4NXNyBr/kF.
$1$@@$4fnlt5pOxTblqQm3M1HK10
$1$@@$D3J3hluAY8pf2.AssyXzn0
Другие варианты * ix поддерживают аналогичные - например, crypt (3), по крайней мере, начиная с Solaris 10 . Однако это нестандартное расширение - POSIX не определяет его .
Не для Linux. Всего 8, если отключить хэширование MD5.
http://www.redhat.com/docs/manuals/linux/RHL-8.0-Manual/security-guide/s1-wstation-pass.html
Вы можете администрировать политики, применяющие более длинные и сложные пароли.
Полная длина обсуждается здесь:
Вы найдете эту статью интересной. Существует нечто под названием PAM (Password Authentication Module), которое запускает ваш пароль через ряд модулей (настроенных в /etc/pam.d/passwd
или /etc/pam.conf
), чтобы определить, является ли пароль действительным или нет.
Вы спрашиваете о скрипте
Algorithm?
http://linux.die.net/man/3/crypt
, принимая самые низкие 7 битов каждого из первых Восемь символов ключа ... »
« Версия этой функции Glibc2 имеет следующие дополнительные функции. ... Весь ключ здесь значительна (вместо только первых 8 байтов) ».
Вот Подсказка как к тому времени произошло это изменение.
Glibc 2 HOWTO
Eric Green, ejg3@cornell.edu
v1.6, 22 June 1998
Хотя исходный алгоритм на основе DES использовал только первые 8 символов пароля, Linux, Solaris и другие новые системы теперь дополнительно поддерживают другие алгоритмы хеширования паролей, такие как MD5 , которые не имеют этого ограничения. Иногда необходимо продолжать использовать старый алгоритм, если ваша сеть содержит старые системы и если используется NIS. Вы можете сказать, что старый алгоритм на основе DES все еще используется, если система войдет в систему, когда вы введете только первые 8 символов вашего> 8-значного пароля.
Поскольку это хэш-алгоритм, MD5 не имеет внутреннего ограничения. Однако различные интерфейсы, как правило, накладывают ограничение не менее 72 символов .
Хотя изначально зашифрованный пароль хранился в файле, доступном для чтения всем ( / etc / passwd
), теперь он обычно хранится в отдельной теневой базе данных (например, / etc / shadow
]), который доступен для чтения только root.Следовательно, сила алгоритма уже не так важна, как раньше. Однако, если MD5 неадекватен, в некоторых системах можно использовать Blowfish или SHA. А Solaris поддерживает подключаемые модули шифрования паролей, позволяя использовать любую безумную схему .Конечно, если вы используете LDAP или какую-либо другую общую базу данных пользователей, вам нужно будет выбрать алгоритм, который поддерживается во всех ваших системах.
Я думаю, это было примерно в то время, когда фактические пароли были перемещены из / etc / passwd в теневую среду в Linux. Я предполагаю, что около 2000 года в Red Hat 6.x были длинные пароли IIRC. Около 2000 года все еще было много старых SUN, и у них были ограничения по паролю и имени пользователя.