passwd - passwd

редактировать
Инструмент для изменения паролей в Unix-подобных ОС
passwd
Автор (ы) ATT Bell Laboratories
Разработчик (и) Различные разработчики с открытым исходным кодом и коммерческие разработчики
Операционная система Unix, Unix-подобная, Plan 9, Inferno
Platform Кросс-платформенный
Тип Команда

passwd - это команда на Unix, Plan 9, Inferno и большинство Unix-подобных операционных систем, используемых для смены пользователя пароль. Пароль, введенный пользователем, обрабатывается функцией создания ключа для создания хешированной версии нового пароля, которая сохраняется. Сохраняется только хешированная версия; введенный пароль не сохраняется в целях безопасности.

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

Команда passwd может использоваться для изменения паролей для локальных учетных записей, а в большинстве систем также может использоваться для изменения паролей, управляемых с помощью механизма распределенной аутентификации, такого как NIS, Kerberos или LDAP.

Содержание
  • 1 Файл паролей
  • 2 Теневой файл
  • 3 История
  • 4 См. Также
  • 5 Ссылки
  • 6 Внешние ссылки
Файл паролей

Файл / etc / passwdпредставляет собой текстовую базу данных с информацией о пользователях, которые могут войти в систему или другие идентификаторы пользователей операционной системы, которым принадлежат запущенные процессы.

Во многих операционных системах этот файл является лишь одним из многих возможных бэкэндов для более общей службы имен passwd.

Имя файла происходит от одной из его исходных функций, поскольку он содержит используемые данные для проверки паролей учетных записей пользователей. Однако в современных системах Unix конфиденциальная информация о паролях вместо этого часто хранится в другом файле с использованием теневых паролей или других реализаций баз данных.

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

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

Пример записи может быть:

jsmith: x: 1001: 1000: Джо Смит, комната 1007, (234) 555-8910, (234) 555-0044, электронная почта: / home / jsmith: / bin / sh

Поля в порядке слева направо:

  1. jsmith: Имя пользователя: строка, которую пользователь вводит при входе в операционную систему: имя журнала. Должен быть уникальным для всех пользователей, перечисленных в файле.
  2. x: информация, используемая для проверки пароля пользователя ; в большинстве современных применений это поле обычно устанавливается на «x» (или «*», или какой-либо другой индикатор), а фактическая информация о пароле сохраняется в отдельном файле теневого пароля. В системах Linux установка в этом поле звездочки («*») является обычным способом отключения прямого входа в учетную запись, сохраняя при этом ее имя, в то время как другое возможное значение - «* NP *», которое указывает использовать сервер NIS для получения пароля. Без эффекта дублирования пароля это поле обычно будет содержать криптографический хэш пароля пользователя (в сочетании с salt ).
  3. 1001: идентификатор пользователя номер, используемый операционной системой для внутренних целей. Он не обязательно должен быть уникальным.
  4. 1000: идентификатор группы номер, который определяет основную группу пользователя; все файлы, созданные этим пользователем, могут изначально быть доступны для эта группа.
  5. Комната 1007...: Поле Gecos, комментарий, описывающий человека или аккаунт. Как правило, это набор значений, разделенных запятыми, включая полное имя пользователя и контакт подробности.
  6. / home / jsmith: Путь к домашнему каталогу пользователя.
  7. / bin / sh: Программа, которая запускается каждый раз, когда пользователь входит в систему. Для интерактивного пользователя, обычно это один из системных интерпретаторов командной строки (shells ).
Shadow file

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

. Системные администраторы могут снизить вероятность атак методом грубой силы, сделав список хешированных паролей нечитаемым для непривилегированных пользователей. Очевидный способ сделать это - сделать саму базу данных passwdдоступной для чтения только пользователю root. Однако это ограничит доступ к другим данным в файле, таким как сопоставления имени пользователя и идентификатора пользователя, что нарушит работу многих существующих утилит и положений. Одним из решений является «теневой» файл паролей для хранения хэшей паролей отдельно от других данных во всем доступном для чтения файле passwd. Для локальных файлов это обычно / etc / shadowв Linux и системах Unix или /etc/master.passwdв BSD. системы; каждый доступен для чтения только root. (Доступ с правами root к данным считается приемлемым, поскольку в системах с традиционной моделью безопасности «всемогущий root» пользователь root в любом случае сможет получить информацию другими способами). Практически все последние Unix-подобные операционные системы используют теневые пароли.

Файл теневых паролей не решает полностью проблему доступа злоумышленника к хешированным паролям, поскольку некоторые схемы сетевой аутентификации работают путем передачи хешированного пароля по сети (иногда в открытом тексте, например, Telnet ), что делает его уязвимым для перехвата. Копии системных данных, таких как резервные копии системы, записанные на ленту или оптический носитель, также могут стать средством незаконного получения хешированных паролей. Кроме того, функции, используемые законными программами проверки паролей, должны быть написаны таким образом, чтобы вредоносные программы не могли выполнять большое количество проверок аутентификации с высокой скоростью.

Независимо от того, действует ли теневое копирование пароля в данной системе, файл passwd доступен для чтения всем пользователям, так что различные системные утилиты (например, ls ) могут работать (например, для обеспечения эти имена пользователей отображаются, когда пользователь перечисляет содержимое папки), в то время как только пользователь root может писать в нее. Без дублирования пароля это означает, что злоумышленник с непривилегированным доступом к системе может получить хешированную форму пароля любого пользователя. Эти значения можно использовать для проведения атаки грубой силой в автономном режиме, сравнительно быстро проверяя возможные пароли на соответствие хешированным паролям, не предупреждая меры безопасности системы, предназначенные для обнаружения ненормального количества неудачных попыток входа в систему. В частности, когда хэш не является соленым, эти хешированные пароли также можно найти в радужных таблицах, базах данных, специально созданных для возврата пароля для уникального хеша.

При использовании схемы теневого пароля в файле / etc / passwdобычно отображается такой символ, как «*» или «x <47.>'в поле пароля для каждого пользователя вместо хешированного пароля, а / etc / shadowобычно содержит следующую информацию о пользователе:

  • Имя пользователя для входа
  • salt и хешированный пароль ИЛИ значение исключения статуса, например:
    • «$ id $ salt $ hashed», печатаемая форма хеш-значения пароля, созданного crypt (C), где «$ id» - алгоритм используемый. Другие Unix-подобные системы могут иметь другие значения, например NetBSD. Расширение ключа используется для увеличения сложности взлома пароля, используя по умолчанию 1000 раундов модифицированного MD5, 64 раунда Blowfish, 5000 раундов SHA-256 или SHA-512. Количество раундов может быть изменено для Blowfish или для SHA-256 и SHA-512, используя «$ A $ rounds = X $», где «A» и «X» - идентификаторы алгоритмов, а количество раундов.
      • $ 1 $ - MD5
      • $ 2a $ - Blowfish
      • $ 2y $ - Eksblowfish
      • $ 5 $ - SHA-256
      • $ 6 $ - SHA-512
    • Пустая строка - нет пароля, учетная запись не имеет пароля (сообщает passwd в Solaris с помощью "NP").
    • "!", "*" - учетная запись является паролем заблокирован, пользователь не сможет войти в систему с помощью аутентификации по паролю, но другие методы (например, ключ ssh, вход в систему как root) все еще могут быть разрешены.
    • «* LK *» - сама учетная запись заблокирована, пользователь будет не может войти в систему.
    • "* NP *", "!!" - пароль никогда не устанавливался
  • дней с эпохи последнего изменения пароля
  • дней до разрешенного изменения
  • дней до требуемого изменения
  • дней предупреждение об истечении срока действия
  • Дней после отсутствия входа в систему до блокировки учетной записи
  • Дней с момента истечения срока действия учетной записи
  • Зарезервировано и не используется

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

История

До теневого копирования пароля хешированный пароль пользователя Unix хранился во втором поле их записи в файле / etc / passwd(в пределах семи формат поля, как указано выше).

Затенение паролей впервые появилось в системах Unix с разработкой SunOS в середине 1980-х, System V Release 3.2 в 1988 году и BSD 4.3 Reno в 1990 году. Но поставщики, которые выполняли перенос из более ранних выпусков UNIX, не всегда включали новые функции теневого копирования паролей в свои выпуски, оставляя пользователей этих систем уязвимыми для атак с помощью файлов паролей.

Системные администраторы могут также организовать хранение паролей в распределенных базах данных, таких как NIS и LDAP, а не в файлах в каждой подключенной системе. В случае NIS механизм теневого пароля по-прежнему часто используется на серверах NIS; в других распределенных механизмах проблема доступа к различным компонентам аутентификации пользователя решается механизмами безопасности базового репозитория данных.

В 1987 году автор оригинального Shadow Password Suite, Джули Хо, столкнулась с компьютерным взломом и написала первый выпуск Shadow Suite, содержащий логин , парольи su команды. Первоначальный выпуск, написанный для операционной системы SCO Xenix, быстро был перенесен на другие платформы. Shadow Suite был перенесен на Linux в 1992 году, через год после первоначального объявления о проекте Linux, и был включен во многие ранние дистрибутивы и продолжает быть включен во многие текущие дистрибутивы Linux..

Раньше для смены паролей в разных схемах аутентификации требовалось иметь разные команды. Например, команда для изменения пароля NIS была yppasswd. Это требовало, чтобы пользователи знали о различных методах изменения паролей для разных систем, а также приводило к бесполезному дублированию кода в различных программах, которые выполняли одни и те же функции с разными серверными приложениями. В большинстве реализаций теперь есть одна команда passwd, и контроль фактического изменения пароля осуществляется прозрачно для пользователя через подключаемые модули аутентификации (PAM). Например, тип используемого хеша определяется конфигурацией модуля pam_unix.so. По умолчанию используется хэш MD5, в то время как текущие модули также могут использовать более строгие хеши, такие как blowfish, SHA256 и SHA512.

См. Также
Ссылки
Внешние ссылки
Последняя правка сделана 2021-06-01 04:34:25
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте