Почему разрешение файла для / etc / shadow установлено на 600?

Разрешения для /etc/shadow равны 600, что означает, что он не доступен для чтения никому, кроме root.

Однако, поскольку все пароли внутри него не сохраняются в ясном тексте, а как хеш (это означает, что это невозможно вычислить исходный пароль из хэша), почему он не может быть прочитан всеми?

1
задан 20 September 2016 в 23:36

3 ответа

На самом деле, была создана / etc / shadow, чтобы можно было отказаться от общедоступного списка имен пользователей и паролей.

Повесьте туда, это будет немного урок истории, прежде чем мы получите фактический ответ. Если вы не заботитесь об истории, просто прокрутите вниз.

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

Даже тогда люди поняли, что наличие паролей в текстовом виде в файле в известном месте, где любой, кто мог бы войти в систему, мог свободно читать, это была плохая идея. Поэтому пароли были хэшированы, в некотором смысле. Это старый механизм шифрования паролей «crypt», который почти никогда не используется в современных системах, но часто поддерживается для устаревших целей.

Взгляните на / etc / passwd в вашей системе. См. Это второе поле, в котором говорится x повсюду? Он использовал хэшированный пароль для рассматриваемой учетной записи.

Проблема заключалась в том, что люди могли загружать / etc / passwd или даже не загружать их, а также работать над взломом паролей. Это была не большая проблема, в то время как компьютеры не были особенно мощными (Clifford Stoll, в вдали от , дает, насколько я помню, время для хэширования одного пароля в системе класса IBM PC в середине -1980s примерно через секунду), но это стало проблемой по мере увеличения вычислительной мощности. В какой-то момент, с приличным списком слов, взломать эти пароли стало слишком легко. По техническим причинам эта схема также не могла поддерживать пароли длиной более восьми байтов.

Для решения этой проблемы были выполнены две вещи:

Переход к более сильным хеш-функциям. Старый crypt () изжил свою полезную жизнь, и были разработаны более современные схемы, которые были бы как в будущем, так и в вычислительной степени более сильными. Переместите хешированные пароли в файл, который не был доступен для чтения кем угодно. Таким образом, даже если функция хэша паролей оказалась слабее, чем ожидалось, или если у кого-то был слабый пароль для начала, было другое препятствие для злоумышленника получить доступ к значениям хэша для начала. Он больше не был свободен для всех.

Этот файл является /etc/shadow.

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

Итак, у вас есть: Разрешения на / etc / shadow являются ограничивающими (хотя, как уже указывалось, не столь ограничительными, как вы заявляете), поскольку вся цель этого файла заключается в ограничении доступа к конфиденциальным данным.

Предполагается, что хеш-пароль должен быть сильным, но если ваш пароль находится на , в то время как обычные пользователи не могут просмотреть этот файл. Списки , любой, у кого есть доступ к хэшу, все равно сможет быстро найти пароль. Защита хеша предотвращает эту простую атаку и повышает планку успешной атаки от простого подглядывания, требуя, чтобы один из них либо был системным администратором на хосте, либо сначала прошел эскалацию привилегий. Особенно в правильно управляемой многопользовательской системе, обе из них значительно сложнее, чем просто смотреть на читаемый мир файл.

12
ответ дан 23 May 2018 в 05:56
  • 1
    мне очень нравится, как вы описываете каждую вещь :) (y) – Shubhanshu Vishwakarma 21 September 2016 в 23:39
  • 2
    Терминология / этимология: /etc/shadow не содержит «теневых паролей». (потому что это не вещь). Весь файл - тень /etc/passwd. Посмотрите, как терминология используется в Linux Shadow Password HOWTO : Почему тень вашего файла passwd? . В отличие от некоторых других применений термина «Тень» в вычислениях это не тень copy , хотя (например, как клонирование кода BIOS в ОЗУ вместо работы с ПЗУ). Поле в / etc / passwd является заполнителем, содержащим специальный символ, который означает «реальный хэш пароля в / etc / shadow». – Peter Cordes 22 September 2016 в 05:41
  • 3
    Хорошая история, но 1 сек. за пароль вряд ли ограничивался даже в 1980-х годах, а не когда верхние пароли использовались более чем 1% людей в каждом. – Warren Dew 22 September 2016 в 15:16
  • 4
    @WarrenDew Не уверен, что вы делаете заявление о факте или мнение. crypt () имеет 12-битную соль и 12 + 64-разрядный выход для восьмибайтового пароля (тогда обычно кодируется base64). Для обычных паролей, да, вы могли бы напасть на них с помощью грубой силы, но не потребовалось , что большая часть пароля, чтобы сделать взлом грубой силы неосуществимой, если каждая проверка пароля заняла секунду. Предварительная вычисление соленой таблицы за один пароль потребовало бы порядка часа со скоростью одного шифрования в секунду, плюс вам пришлось бороться с ограниченным хранилищем (в эти дни было много 40-80 МБ). – Michael Kjörling 23 September 2016 в 21:17
  • 5
    @PeterCordes Хорошая точка. Я удаляю этот отрывок, потому что это действительно не имеет особого значения для ответа на вопрос OP. – Michael Kjörling 23 September 2016 в 21:17
Почему разрешение для файла / etc / shadow установлено равным 600?

Кто вам сказал, что

$ls -l /etc/shadow
-rw-r----- 1 root shadow 1407 mei 18 10:05 /etc/shadow
- 640.

Простой ответ: разрешения в Linux воспринимаются серьезно. Нет причин для «других» делать что-либо с /etc/shadow. И нет никаких оснований для того, чтобы группа «тень» писала ему.

Почему разрешение для файла / etc / shadow установлено равным 600?

Однако, поскольку все пароли внутри него не сохраняются в ясном тексте, но как хэши (что означает, что невозможно вычислить исходный пароль из хэша), почему он не может быть прочитан всеми?

Поскольку нет никакой причины так.

Хеши односторонние. Предоставление кому-то доступа к чтению позволяет использовать сценарий для злоупотребления этим способом: просто перечислите любое слово, которое вы можете себе представить, и создайте хеш. В какой-то момент он может совпадать с паролем. Может потребоваться некоторое время.

10
ответ дан 23 May 2018 в 05:56
  • 1
    640 для обычного пользователя? пользователь группы может читать теневой файл? – Shubhanshu Vishwakarma 20 September 2016 в 23:46
  • 2
    Сожалею? Файл 640. Так что прочитайте, напишите для пользователя «root». и читать для группы «тень». & Quot; теневая & Quot; является группой, созданной привилегированной системой для этой конкретной цели. – Rinzwind 20 September 2016 в 23:48

Важный фон: /etc/shadow существует исключительно для хранения скрытых хэшей паролей. В ранние дни Unix хеши паролей хранились в /etc/passwd. По мере того, как компьютеры стали более мощными, сетевые соединения стали более устойчивыми, а безопасность более изощренными, люди поняли, что хранение хэшей паролей, читаемых по словам, вызывает проблемы. (Я не буду подробно описывать эксплойты, об этом уже есть достаточно.)

Но /etc/passwd не может быть защищен от чтения: он используется всеми видами программ для сопоставления числовых идентификаторов пользователей к именам пользователей, а также искать домашние каталоги, оболочки по умолчанию, полное имя пользователя (и номер офиса и т. д.) - проверить man finger). Поэтому чувствительная часть, хэши паролей, была перенесена на /etc/shadow, а остальная часть осталась такой, какая была. Вот почему /etc/passwd, despide name, содержит все, кроме пароля (hashed).

2
ответ дан 23 May 2018 в 05:56
  • 1
    спасибо за ваш ответ по моему вопросу, теперь я получил полное представление о файле / etc / passwd и / etc / shadow. – Shubhanshu Vishwakarma 21 September 2016 в 23:25

Другие вопросы по тегам:

Похожие вопросы: