Солярис впустил меня с другим паролем с теми же 8 первыми символами


42

Я не знаю, нормально ли это, но дело в том, скажем, у меня есть пользователь Solaris с именем gloaiza, и его пароль - password2getin

Я захожу на сервер с помощью PuTTY, я просто поставил 192.168.224.100, и он запрашивает окно, запрашивающее пользователя, поэтому я набираю gloaiza , затем запрашивает пароль и, скажем, я ввел password2geti по ошибке, и это сработало! Я на сервере!

Это нормально? Это также работает, если я поставлю что-то вроде password2getin2 .

Я не являюсь носителем английского языка, поэтому, если есть что-то, что вы не можете понять, пожалуйста, спросите меня

ОС: Oracle Solaris 10 1/13


4
Что происходит под восемь символов? Вас passworkзаводят?
thrig

@thrig Хорошо, мой фактический пароль является 9 символов длиной, так скажем , пароль pass2word, то он работает с pass2wor, pass2word1, pass2worr1и так далее ... Я думаю , что он работает со всем , как только вы наберете pass2wor я не думаю , что это большое проблема, но тоже не хорошо.
Gloaiza

3
Если вы правильно укажете первые 8 символов, это позволит вам войти. К сожалению, генерация пароля использовала шифрование в старых версиях Solaris, игнорируя символ 9 и более поздние.
MelBurslan

14
Намек для всех встроенных дэвов здесь мышления, «это никогда не могло произойти на моей системе:» busyboxбудет тихо падать обратно DES , если вы не имеете все права варианты крипто включена в его .config и вашей libc. Может занять минуту сегодня перепроверить ваши passwd/ shadowфайлы? ;)

11
@ drewbenn - кто, черт возьми, подумал, что тихая унизительная безопасность - хорошая идея? Иисус Христос.
Давор

Ответы:


65

Операционная система хранит хэш пароля в /etc/shadow(или, исторически, /etc/passwdили в другом месте в некоторых других вариантах Unix). Исторически, первый широко распространенный хэш пароля был схемой на основе DES, которая имела ограничение, которое учитывало только первые 8 символов пароля. Кроме того, алгоритм хеширования паролей должен быть медленным; Схема на основе DES была несколько медленной, когда она была изобретена, но недостаточна по сегодняшним стандартам.

С тех пор были разработаны лучшие алгоритмы. Но Solaris 10 по умолчанию использует историческую схему, основанную на DES. По умолчанию Solaris 11 использует алгоритм, основанный на итеративном SHA-256, который соответствует современным стандартам.

Если вам не нужна историческая совместимость с древними системами, переключитесь на итеративную схему SHA-256. Отредактируйте файл /etc/security/policy.confи измените CRYPT_DEFAULTнастройку на 5, что означает crypt_sha256. Вы также можете установить CRYPT_ALGORITHMS_ALLOWи CRYPT_ALGORITHMS_DEPRECATE.

Как только вы изменили конфигурацию, запустите, passwdчтобы изменить свой пароль. Это обновит хэш пароля с текущей настроенной схемой.


1
Спасибо за ответ. Когда вы сказали « Если вам не нужна историческая совместимость с древними системами », вы на самом деле имеете в виду это, что я имею в виду ... Возможно ли действительно нуждаться в схеме на основе DES и не иметь возможности перейти на SHA-256 для некоторых причина?
Gloaiza

11
@gloaiza Вы можете это сделать, если ваш хэш-файл пароля используется совместно с NIS или каким-либо другим способом на компьютере с действительно древней операционной системой (например, Solaris 2.x). В противном случае нет.
Жиль "ТАК - перестань быть злым"


21

Это ожидается, по крайней мере, для Solaris 10 и более ранних версий.

Ваша система использует устаревший crypt_unixалгоритм Unix , который действительно ограничивает количество используемых символов до восьми.

Это задокументировано на passwdстранице руководства :

Пароли должны быть составлены, чтобы соответствовать следующим требованиям:

  Каждый пароль должен иметь символы PASSLENGTH, где PASSLENGTH определяется в
  / etc / default / passwd и имеет значение 6. Установка PASSLENGTH более восьми
  Для символов требуется настроить policy.conf (4) с помощью алгоритма, который поддерживает
  больше восьми символов .

Поскольку этот алгоритм по сути устарел. Вы должны переключиться на что-то лучшее (доступные значения перечислены на crypt.confстранице руководства), установив CRYPT_ALGORITHMS_DEPRECATEи CRYPT_DEFAULTзаписав /etc/security/policy.confфайл.

См. Http://docs.oracle.com/cd/E19253-01/816-4557/concept-63/index.html.


1
Это не правда, что «чем выше, тем лучше». Алгоритм 2a(bcrypt) может быть лучшим .
Стоп Harm Моника

@OrangeDog Точка занята, совет удален
jlliagre

7

Смотрите эту ветку на форумах Oracle :

Описанное вами поведение ожидается при использовании схемы шифрования пароля по умолчанию «crypt_unix». Эта схема будет шифровать только первые восемь символов пароля, и, таким образом, только первые восемь символов должны совпадать при повторном вводе пароля. Это не «ошибка», а известное ограничение алгоритма - он в основном сохраняется для обратной совместимости и, к сожалению, устанавливается по умолчанию в системах Solaris при его установке.

Чтобы решить эту проблему, настройте свою ОС на использование алгоритмов MD5 или Blowfish вместо crypt_unix.

Это можно изменить в файле /etc/security/policy.conf. Вы можете разрешить алгоритмы шифрования, а также есть параметр, который запрещает (запрещает) использование алгоритма "crypt_unix" и меняет значение по умолчанию на более безопасное.

См. «Руководство по системному администрированию Solaris 10: службы безопасности» для получения дополнительной информации.

См. Также Изменение алгоритма пароля (Карта задач) и, в частности, Как указать алгоритм для шифрования пароля :

Укажите идентификатор для выбранного вами алгоритма шифрования.

...

Введите идентификатор в качестве значения переменной CRYPT_DEFAULT в файле /etc/security/policy.conf.

...

Для получения дополнительной информации о настройке параметров алгоритма см. policy.conf(4)Справочную страницу.


2

Просто к сведению, это также происходит в системах IBM AIX вплоть до версии 7.1.

Это забавно, потому что эта система, с которой я работал, имеет политику «не может использовать ни один из последних 10 паролей», которая учитывает всю длину пароля, но затем проверяет только первые 8 символов при входе в систему. Таким образом, вы можете установить свои пароли как easypass_%$xZ!01, easypass_%&ssY!02, easypass_%$33zoi@@, ... для каждого обязательного изменения пароля, эффективно сохраняя в easypassкачестве пароля в течение многих лет.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.