теневые пароли

Вопросы программного кода и архитектуры Linux

Модератор: Olej

Аватара пользователя
Olej
Писатель
Сообщения: 12655
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: теневые пароли

Непрочитанное сообщение Olej » 15 сен 2019, 18:25

Olej писал(а): И, наконец, 3-е поле - это хешированное значение, с которым и сверяется хеш (с salt) вводимого вами пароля. Обратная задача: зная salt и результирующее хешированное значение - не решаемая, таким образом пароль не хранится нигде в системе и не восстанавливаем!
Далее...
Если одну и ту же команду mkpasswd повторять несколько раз последовательно, то, естественно, повторяется результат:

Код: Выделить всё

olej@astra:~$ mkpasswd -m sha-512 --salt=zxc12345vbnm 123
$6$zxc12345vbnm$/MRL9KqNdzy1xEKNvtW/o5kSxXcJ8yQ551OyuW8R.XwOHTQXE.qJSKJdhumG/XWOVfaeKFaJCznZ//4iZrait0

olej@astra:~$ mkpasswd -m sha-512 --salt=zxc12345vbnm 123
$6$zxc12345vbnm$/MRL9KqNdzy1xEKNvtW/o5kSxXcJ8yQ551OyuW8R.XwOHTQXE.qJSKJdhumG/XWOVfaeKFaJCznZ//4iZrait0
Но реально mkpasswd вызывается без предопределённого --salt= , и тогда при каждом последовательном вызове берётся случайное значение строки salt (и даже длина её от раза к разу - случайная).
Тогда последовательные, друг за другом, вызовы mkpasswd будут выглядеть так:

Код: Выделить всё

olej@astra:~$ mkpasswd -m sha-512 123
$6$OyH3td/5X$WLXAoa2pUbql4A1jXQqt2G8nFlzKVNq30ADuZasEh.tMEIUNS.UGTPtuu4Up.soxNdPnfU8zrDpWrkU.opmLF/

olej@astra:~$ mkpasswd -m sha-512 123
$6$sXWxZTMDbmho9Z$UUy87d1DKWO6yLRMnUB09YhF97DG8/uhSd91N2XxC4h4Dak0nCqEtuuo8JL7dRXVE4pfigA7BO3XEpNp3fZHF1

olej@astra:~$ mkpasswd -m sha-512 123
$6$hnZEgRiW5$jyQTLVCMIoRy6zdu5Bj5UIeH8.MZE5wyoIGhriA/.GM.MIX23n5adMFhdQslCdFh.nV/8qIyDHoFkQ8DqSYog0
Результат каждый раз отличается!

P.S. Понятно, почему требуется хорошая энтропия генератора случайных значений... Но в Linux, с его новыми генераторами, с этим - очень неплохо.
См. по этому поводу: генератор случайных чисел.

Аватара пользователя
Olej
Писатель
Сообщения: 12655
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: теневые пароли

Непрочитанное сообщение Olej » 15 сен 2019, 18:54

В некоторых дистрибутивах ... RHEL, защищённых Astra Linux SE и др. - просто нет такой утилиты:

Код: Выделить всё

olej@astra:/bin$ sudo find / -name mkpasswd
olej@astra:/bin$
Но это не принципиально важно - у них хоть и нет утилиты mkpasswd, но всё то же можно получить скриптом Perl, который и обеспечивает работу утилиты mkpasswd (обрабатываем пароль 123):

Код: Выделить всё

olej@astra:~$ perl -e 'print crypt(q/123/, q/$6$zxc12345vbnm$/), "\n"'
$6$zxc12345vbnm$/MRL9KqNdzy1xEKNvtW/o5kSxXcJ8yQ551OyuW8R.XwOHTQXE.qJSKJdhumG/XWOVfaeKFaJCznZ//4iZrait0

olej@astra:~$ perl -e 'print crypt(q/123/, q/$6$zxc12345vbnm$/), "\n"'
$6$zxc12345vbnm$/MRL9KqNdzy1xEKNvtW/o5kSxXcJ8yQ551OyuW8R.XwOHTQXE.qJSKJdhumG/XWOVfaeKFaJCznZ//4iZrait0

olej@astra:~$ perl -e 'print crypt(q/123/, q/$6$zxc12345vbnm$/), "\n"'
$6$zxc12345vbnm$/MRL9KqNdzy1xEKNvtW/o5kSxXcJ8yQ551OyuW8R.XwOHTQXE.qJSKJdhumG/XWOVfaeKFaJCznZ//4iZrait0
Сравните с тем результатом, что был получен раньше утилитой mkpasswd в Astra Linua CE.

Код: Выделить всё

olej@astra:~$ mkpasswd -m sha-512 --salt=zxc12345vbnm 123
$6$zxc12345vbnm$/MRL9KqNdzy1xEKNvtW/o5kSxXcJ8yQ551OyuW8R.XwOHTQXE.qJSKJdhumG/XWOVfaeKFaJCznZ//4iZrait0

Аватара пользователя
Olej
Писатель
Сообщения: 12655
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: теневые пароли

Непрочитанное сообщение Olej » 24 окт 2019, 01:21

Olej писал(а):
11 июн 2019, 17:55
Как легко видеть, здесь во 2-м поле (поле пароля) root стоит '!' - вход с таким паролем заблокирован. В отличие от '*' в этой позиции - вход с таким именем запрещён - '!' похоже (IMHO) нововведение нескольких последних лет ... потому что в публикациях порядка 2006 года он нигде не упоминается.
А заблокированный пароль/имя можно разблокировать.
Пришлось по случаю ещё раз покопаться с блокированием пароля ('!') - можно в любой записи /etc/shadow (с паролем) вписать '!' (текстовым редактором) после 1-го ':', и логин будет заблокирован.
Смотрим:

Код: Выделить всё

olej@ACER:/home/watbiz$ sudo cat /etc/shadow | grep watbiz
watbiz:$6$nWvb0qiZE.MQrkKM$PCYQ5tca6wkUk1IoAyas7vFxDTKo9VINAtokxhZHpALXqZoWuK5I9vcy8h48Jih/B47.50UfDC.BlCWTQNrXt1:18192:0:99999:7:::

olej@ACER:/home/watbiz$ sudo watbiz -
sudo: watbiz: command not found

olej@ACER:/home/watbiz$ su watbiz -
Пароль: 

watbiz@ACER:~$ whoami
watbiz

watbiz@ACER:~$ exit
exit
Здесь я логинюсь с паролем как пользователь watbiz.
Теперь я его заблокирую (текстовым редактором впишу 1 символ):

Код: Выделить всё

olej@ACER:/home/watbiz$ sudo cat /etc/shadow | grep watbiz
watbiz:!$6$nWvb0qiZE.MQrkKM$PCYQ5tca6wkUk1IoAyas7vFxDTKo9VINAtokxhZHpALXqZoWuK5I9vcy8h48Jih/B47.50UfDC.BlCWTQNrXt1:18192:0:99999:7:::

olej@ACER:/home/watbiz$ su watbiz -
Пароль: 
su: Сбой при проверке подлинности
Всё ... отлуп - пользователь блокирован.
Возвращаю всё назад (вытираю символ '!'):

Код: Выделить всё

olej@ACER:/home/watbiz$ sudo cat /etc/shadow | grep watbiz
watbiz:$6$nWvb0qiZE.MQrkKM$PCYQ5tca6wkUk1IoAyas7vFxDTKo9VINAtokxhZHpALXqZoWuK5I9vcy8h48Jih/B47.50UfDC.BlCWTQNrXt1:18192:0:99999:7:::

olej@ACER:/home/watbiz$ su watbiz -
Пароль: 

watbiz@ACER:~$ whoami
watbiz

watbiz@ACER:~$ exit
exit
Всё опять с пользователем ОК.

Ответить

Вернуться в «Linux изнутри»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость