Вопрос: В Linux / Debian пароли (/ etc / passwd) были сохранены как обычный текст?


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


6
2018-02-24 15:35


Источник


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


Ответы:


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

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

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

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

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

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

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


10
2018-02-24 15:56



В Linux были не затененные пароли, потому что я помню в паутинных углах моего воспоминания, когда был сделан переключатель, и задавался вопросом, почему поля в / etc / passwd изменились. - Bart Silverstrim
@Bart: Да, похоже, что пакет Shadow был портирован на Linux в 2002 году, что означает, что он, вероятно, не ударил бы большинство дистрибутивов на некоторое время - Matt Simmons
Кроме того, похоже, что Slackware пошла без Shadow, по крайней мере, до 3.0 (slackware.osuosl.org/slackware-3.3/docs/Shadow-Password-HOWTO) - Matt Simmons
@Matt: Это давно было портировано? Я думал, что это близко к '94 или около того, что я вспомнил, как это произошло. Но это тоже может быть. В то время дистрибутивы немного отличались по своей природе. Я помню некоторые из арканов, которые заставили X работать, и большую часть времени оставаясь в виртуальных консолях. Я чувствую себя старым, хотя, мол, я не ... вау ... - Bart Silverstrim
@Matt: Чтобы FVWM или не использовать FVWM ... это был большой вопрос :-) - Bart Silverstrim


Я был Unix SysAdmin с 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), что означает, что вам нужны привилегии даже для чтения зашифрованную строку. Нет более грубой атаки.


2
2018-02-25 00:19



Вы уверены, что это действительно «шифрование»? НАСКОЛЬКО МНЕ ИЗВЕСТНО, crypt() никогда не использовал обратимые водоросли ... - grawity
Шифрование не означает обратимость. crypt () использует блок шифрования DES (en.wikipedia.org/wiki/Data_Encryption_Standard), чтобы превратить пароль с открытым текстом в зашифрованную строку в / etc / passwd. - Jeff Leyser
Это все еще должным образом называется хешем, даже если он реализован с использованием cypher. - Blaisorblade


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

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


1
2018-02-24 17:08





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


0
2018-02-24 15:43





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

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

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

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


0
2018-02-24 15:56





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

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


0
2018-02-25 00:39