Ключевые слова:security, des, crypt, (найти похожие документы)
_ RU.LINUX (2:5077/15.22) ___________________________________________ RU.LINUX _
From : Dmitri Beloslioudtsev 2:5020/400 10 Jul 97 14:59:06
Subj : Re: PASSWD in Linux !!!!
________________________________________________________________________________
From: Dmitri Beloslioudtsev <[email protected]>
Привет!
Mike Pechkin <[email protected]> wrote:
MP> Hello All!
MP> Читаю тут много о всяких CRACKJACK'ах, котоpые подбиpают паpоли в UNIX'e
MP> И pешил я ОДИH паpоль для pазных пользователей пpописать.
MP> И что выдумаете получилось 8-О.......
MP> "ОHИ РАЗHЫЕ"
MP> Hу и вот не понятка, как пpога будет свеpять паpоли если один и тот же
MP> паpоль pазный для двух userов ?
MP> Или логин игpает pоль ?
MP> Кто нибудь pазбиpался в этом деле ?
Всё очень просто. Почитайте описание библиотечной функции crypt(3).
В случае шифрации по DES (любой традиционный Unix),
она берёт два аргумента - key (традиционно - 8 символов) и salt - 2 символа.
В ответ выдаёт зашифрованную строку из 11 символов, первые два из которых
совпадают с salt.
При генерации нового пароля salt генерится случайным образом.
Когда необходимо сравнить на правильность введённый пользователем пароль,
то берётся его зашифрованный пароль (из /etc/passwd или /etc/shadow), из
его двух первых символов формируется salt. Вызывается функция crypt
с аргументами: crypt(введённый_пароль, salt) и результат сравнивается
с зашифрованным паролем из /etc/passwd (/etc/shadow).
Если они совпадают, значит введённый пароль был правильным.
Hапример: crypt("foob","ar") возвращает "arlEKn0OzVJn."
^^ ^^
Такой алгоритм используется в любом традиционном Unix, в некоторых
используются нек.отличия типа другого метода шифрации (например MD5) или
более длинная строка пароля.
Если есть исходные тексты, то изучайте их и всё станет понятно. :-)
Успехов!
--
Dmitri Beloslioudtsev, Euro InterSoft East, Zelenograd, Russia
mailto:[email protected]http://www.inter-soft.com.ru/~dnb--- ifmail v.2.10dev * Origin: EuroInterSoft, Zelenograd, Russia (2:5020/400@fidonet)