Подтвердить что ты не робот

Являются ли пароли для современных систем Unix/Linux по-прежнему ограничены 8 символами?

Несколько лет назад это было так, что пароли Unix были ограничены 8 символами или что, если вы сделали пароль длиннее 8 символов, дополнительный размер не изменится.

Это все еще имеет место на большинстве современных систем Unix/Linux?

Если это так, когда появились более длинные пароли в большинстве систем?

Есть ли простой способ сказать, поддерживает ли данная система более длинные пароли, и если да, то какой эффективный максимум (если есть)?

Я сделал несколько веб-поиска по этой теме и не мог найти ничего окончательного; многое из того, что появилось, было с начала 2000-х годов, когда я думаю, что ограничение 8 символов было все еще распространено (или достаточно распространено, чтобы гарантировать, что он придерживается этого предела).

4b9b3361

Ответ 1

В glibc2 (любой современный дистрибутив Linux) функция шифрования паролей может использовать MD5/SHA-xxx (спровоцированную префиксом магической соли), который затем обрабатывает как значимые все входные символы (см. man 3 crypt). Для простого теста в вашей системе вы можете попробовать что-то вроде:

#!/bin/perl -w
my $oldsalt = '@@';
my $md5salt = '[email protected]@$';
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
[email protected]@$PrkF53HP.ZP4NXNyBr/kF.
[email protected]@$4fnlt5pOxTblqQm3M1HK10
[email protected]@$D3J3hluAY8pf2.AssyXzn0

Другие * ix варианты поддерживают аналогичные - например. crypt (3), поскольку, по крайней мере, Solaris 10. Однако это нестандартное расширение - POSIX не определяет его.

Ответ 2

Хотя оригинальный алгоритм на основе DES использовал только первые 8 символов пароля, Linux, Solaris и других более новых систем поддерживают другие алгоритмы хеша пароля, такие как MD5, которые не имеют этого ограничения. Иногда необходимо продолжать использовать старый алгоритм, если ваша сеть содержит старые системы и используется NIS. Вы можете сказать, что старый алгоритм на основе DES все еще используется, если система войдет в систему, когда вы вводите только первые 8 символов вашего пароля с 8 символами.

Поскольку это хэш-алгоритм, MD5 не имеет собственного предела. Однако различные интерфейсы обычно накладывают некоторый предел не менее 72 символов.

Хотя первоначально зашифрованный пароль был сохранен в файле, читаемом во всем мире (/etc/passwd), он теперь обычно хранится в отдельной базе данных теневой копии (например, /etc/shadow), которая доступна только для чтения от root. Следовательно, сила алгоритма уже не столь важна, как когда-то была. Однако, если MD5 неадекватен, Blowfish или SHA могут использоваться вместо некоторых систем. И Solaris поддерживает подключаемые модули шифрования паролей, позволяя использовать любую сумасшедшую схему. Конечно, если вы используете LDAP или какую-либо другую общую базу данных пользователей, вам нужно будет выбрать алгоритм, поддерживаемый всеми вашими системами.

Ответ 3

Вы спрашиваете о алгоритме crypt?

http://linux.die.net/man/3/crypt

"Принимая самые младшие 7 бит каждого из первых восьми символов ключа..."

"Версия этой функции glibc2 имеет следующие дополнительные функции.... Весь ключ здесь значителен (вместо первых 8 байтов).

Здесь намек на то, как давно это изменение произошло.

Glibc 2 HOWTO
  Eric Green, [email protected]
  v1.6, 22 June 1998

Ответ 5

Вы найдете этот article. Существует что-то, называемое PAM (модуль аутентификации паролей), который запускает ваш пароль через ряд модулей (настроенных в /etc/pam.d/passwd или /etc/pam.conf), чтобы определить, действительно ли пароль действителен или нет.

Ответ 6

Я думаю, что в то время, когда фактические пароли были перенесены из /etc/passwd в тень, на Linux. Я предполагаю, что около 2000 года у Red Hat 6.x были длинные пароли IIRC. Примерно в 2000 году было еще много старого SUN, и у них были ограничения на пароль и имя пользователя.