Назад | Перейти на главную страницу

Сохранялись ли пароли (/ etc / passwd) в Linux / Debian в виде простого текста?

Кто-то мне так говорит, и у меня есть некоторые сомнения, но я не могу найти никакой информации в Интернете.

Из книги Роберта Морриса и Кена Томпсона «Безопасность паролей: история болезни» (1979) ( http://www.cs.yale.edu/homes/arvind/cs422/doc/unix-sec.pdf ), цитата из пролога:

Система UNIX была впервые реализована с файлом паролей, который содержал фактические пароли всех пользователей, и по этой причине файл паролей должен был быть сильно защищен от чтения или записи.

Итак, да, изначально файл паролей содержал настоящие пароли.

РЕДАКТИРОВАТЬ

Это было в UNIX. Даже к тому времени, когда вышла упомянутая выше статья, это считалось плохой идеей. Поскольку Debian выпущен после 1991 года, было бы нелепо предполагать или полагать, что дистрибутив Linux включал бы файлы паролей даже без защиты шифрования.

Гораздо более вероятно, что в первоначальных версиях пакета Debian passwd использовались не затененные пароли, в которых зашифрованные пароли хранились бы в самом / etc / passwd. В то время использовался механизм crypt, который математически проще вычислить, чем нынешняя практика использования md5 (хотя доступны и другие варианты).

Если у вас будет возможность, возьмите издание «Shell Handbook» журнала Linux Pro Magazine. У меня есть 4-страничная статья о манипуляциях с пользователем в командной строке, и я рассказываю об истории защиты паролей UNIX.

Я работаю системным администратором Unix с 1992 года, задолго до того, как у нас появился / etc / shadow.

Перед /etc/shadow, /etc/passwd записи выглядели примерно так:

user:XDjfiejfiejf:1001:1001:Joe User:/home/user:/bin/sh

Второе поле было зашифрованным (не хешированным) паролем для пользователя. Как и сегодня, /etc/passwd имел настройки разрешения 644, что означало, что каждый мог читать файл. /etc/passwd должен быть доступен для чтения всем, чтобы (например) программа могла преобразовать идентификатор пользователя в имя пользователя.

Но это также позволило атаке методом грубой силы определить пароль пользователя, фактически не пытаясь войти в систему - просто продолжайте шифровать разные строки, и когда зашифрованный результат программы атаки будет таким же, как строка, хранящаяся в / etc / passwd, bingo, у вас есть пароль пользователя.

Так родился /etc/shadow. Теперь второе поле файла / etc / passwd просто '*', а зашифрованный пароль хранится в / etc / shadow, для которого установлены разрешения 640 (а иногда и 600), что означает, что вам нужны привилегии даже для чтения. зашифрованная строка. Больше никаких брутфорс-атак.

Если вам действительно интересно узнать о Debian, все исходные пакеты можно найти здесь (http://archive.debian.org/debian/).

Из того, что я могу сказать, глядя на файл Packages, теневые инструменты добавлены в 1.3. Беглый взгляд на источник 1.1 для логин-утилиты который является одним из самых ранних выпусков, используется старая функция crypt (), которая, как мне кажется, использовала Тройной DES.

Я постоянно использую Linux, начиная со Slackware с ядром 1.0.13, и я никогда не видел паролей в открытом виде. Я сильно сомневаюсь, что это когда-либо произошло, но могу поручиться только за то, что я видел.

Да. Файлы теневых паролей были введены позже. Однажды мне пришлось обновить системы Slackware Linux для поддержки теневых паролей. Трудно вспомнить, какая версия. Однако я бы предположил, что около 2.0.

Есть Linux HOWTO1 с более подробной информацией.

редактировать

Сначала я неправильно прочитал. Пароли никогда не хранились в открытом виде в файле / etc / passwd Linux. Файлы теневых паролей не всегда использовались в Linux, как указывалось ранее.

Практически этот чей-то аргумент является верным, с сегодняшней точки зрения зашифрованный пароль DES и простой текст - одно и то же :) Чтобы взломать его, потребуются секунды (самое большее).

Кроме того, тень и шифрование - это не одно и то же, кажется, что многие ответы запутались в этом. Даже сейчас вы можете разместить зашифрованный пароль в / etc / password как доступный для чтения всем. Но ваш вопрос не совсем ясен в этой части.