пароль
Эта статья нуждается в дополнительных цитатах для проверки . ( февраль 2008 г. ) |
Оригинальный автор(ы) | AT&T Bell Laboratories |
---|---|
Разработчик(и) | Различные с открытым исходным кодом и коммерческие разработчики разработчики |
Операционная система | Unix , Unix-подобные , Plan 9 , Inferno |
Платформа | Кросс-платформенный |
Тип | Команда |
passwd — это команда в Unix , Plan 9 , Inferno и большинстве Unix-подобных операционных систем пользователя , используемая для изменения пароля . Пароль, введенный пользователем, проходит через функцию получения ключа для создания хешированной версии нового пароля, которая сохраняется. Сохраняется только хешированная версия; введенный пароль не сохраняется по соображениям безопасности.
Когда пользователь входит в систему, пароль, введенный пользователем во время процесса входа в систему, проходит через ту же функцию получения ключа, и полученная хешированная версия сравнивается с сохраненной версией. Если хэши идентичны, введенный пароль считается правильным, и пользователь аутентифицируется. Теоретически два разных пароля могут создать один и тот же хэш . Однако криптографические хэш-функции устроены таким образом, что найти любой пароль, который создает тот же хэш, очень сложно и практически невозможно, поэтому, если созданный хэш соответствует сохраненному, пользователь может быть аутентифицирован.
Команда passwd может использоваться для изменения паролей для локальных учетных записей, а в большинстве систем ее также можно использовать для изменения паролей, управляемых с помощью механизма распределенной аутентификации, такого как NIS , Kerberos или LDAP .
Файл паролей
[ редактировать ]The /etc/passwd
Файл представляет собой текстовую базу данных с информацией о пользователях , которые могут входить в систему, или других пользователях операционной системы, которым принадлежат запущенные процессы.
Во многих операционных системах этот файл является лишь одним из многих возможных серверных компонентов для более общей службы имен passwd .
Название файла происходит от одной из его первоначальных функций, поскольку он содержал данные, используемые для проверки паролей учетных записей пользователей. Однако в современных системах Unix чувствительная к безопасности информация о паролях часто хранится в другом файле с использованием теневых паролей или других реализаций базы данных.
The /etc/passwd
Файл обычно имеет разрешения файловой системы , которые позволяют его читать всем пользователям системы ( все пользователи могут его читать ), хотя он может быть изменен только суперпользователем или с помощью нескольких привилегированных команд специального назначения.
The /etc/passwd
Файл представляет собой текстовый файл с одной записью в строке , каждая из которых описывает учетную запись пользователя .
Каждая запись состоит из семи полей, разделенных двоеточиями . Порядок записей в файле обычно неважен.
Пример записи может быть:
jsmith:x:1001:1000:Joe Smith,Room 1007,(234)555-8910,(234)555-0044,email:/home/jsmith:/bin/sh
Поля в порядке слева направо: [ 1 ]
jsmith
: Имя пользователя: строка, которую пользователь должен ввести при входе в операционную систему: имя журнала . Должно быть уникальным для всех пользователей, перечисленных в файле.x
пользователя : Информация, используемая для проверки пароля . Формат такой же, как у аналогичного поля в файле теневого пароля , с дополнительным соглашением, согласно которому установка значения «x» означает, что фактический пароль находится в теневом файле, что является обычным явлением в современных системах. [ 2 ]1001
: идентификационный номер пользователя , используемый операционной системой для внутренних целей. Он должен быть уникальным, поскольку однозначно идентифицирует пользователей.1000
: номер идентификатора группы , который идентифицирует основную группу пользователя; все файлы, созданные этим пользователем, изначально могут быть доступны этой группе.Joe Smith,Room 1007...
: поле Gecos , комментарий, описывающий человека или учетную запись. Обычно это набор значений, разделенных запятыми, включая полное имя пользователя и контактные данные. [ 3 ]/home/jsmith
пользователя : Путь к домашнему каталогу ./bin/sh
: Программа, которая запускается каждый раз, когда пользователь входит в систему. системы Для интерактивного пользователя это обычно один из интерпретаторов командной строки ( оболочек ).
Теневой файл
[ редактировать ]/etc/shadow
используется для повышения уровня безопасности паролей путем ограничения доступа всех пользователей, кроме пользователей с высокими привилегиями, к хешированным данным паролей. Обычно эти данные хранятся в файлах, принадлежащих и доступных только суперпользователю .
Системные администраторы могут снизить вероятность атак методом перебора, сделав список хешированных паролей нечитаемым для непривилегированных пользователей. Очевидный способ сделать это — сделать passwd
сама база данных доступна для чтения только пользователю root. Однако это ограничит доступ к другим данным в файле, таким как сопоставления имени пользователя с идентификатором пользователя, что нарушит работу многих существующих утилит и положений. Одним из решений является «теневой» файл паролей, в котором хэши паролей хранятся отдельно от других данных в общедоступном файле passwd . Для локальных файлов это обычно /etc/shadow
в системах Linux и Unix или /etc/master.passwd
в системах BSD ; каждый доступен для чтения только пользователю root . (Корневой доступ к данным считается приемлемым, поскольку в системах с традиционной моделью безопасности «всемогущий root» пользователь root в любом случае сможет получить информацию другими способами). Практически все последние Unix-подобные операционные системы используют скрытые пароли.
Файл теневых паролей не полностью решает проблему доступа злоумышленника к хешированным паролям, поскольку некоторые схемы сетевой аутентификации работают путем передачи хешированного пароля по сети (иногда в открытом виде , например, Telnet) . [ 4 ] ), что делает его уязвимым для перехвата. Копии системных данных, например резервные копии системы, записанные на ленту или оптический носитель, также могут стать средством незаконного получения хешированных паролей. Кроме того, функции, используемые законными программами проверки паролей, должны быть написаны таким образом, чтобы вредоносные программы не могли выполнять быструю проверку подлинности.
Независимо от того, действует ли в данной системе скрытие паролей, файл passwd доступен для чтения всем пользователям, поэтому различные системные утилиты (например, grep ) могут работать (например, чтобы гарантировать, что имена пользователей, существующие в системе, можно найти внутри файла). файл), при этом запись в него может писать только пользователь root. Без скрытия паролей это означает, что злоумышленник с непривилегированным доступом к системе может получить хешированную форму пароля каждого пользователя. Эти значения можно использовать для организации атаки методом перебора в автономном режиме, сравнительно быстро проверяя возможные пароли на соответствие хешированным паролям, не предупреждая механизмы безопасности системы, предназначенные для обнаружения аномального количества неудачных попыток входа в систему . Особенно, когда хеш не содержит соли, эти хешированные пароли также можно найти в радужных таблицах , базах данных, специально созданных для возврата пароля для уникального хеша.
При использовании схемы скрытого пароля /etc/passwd
файл обычно содержит такой символ, как ' *
', или ' x
' в поле пароля для каждого пользователя вместо хешированного пароля и /etc/shadow
обычно содержит следующую информацию о пользователе:
- Имя пользователя для входа
- соль и хешированный пароль ИЛИ значение исключения статуса, например:
$id$salt$hashed
, печатная форма хеша пароля, созданная crypt (C) , где$id
используемый алгоритм. Другие Unix-подобные системы могут иметь другие значения, например NetBSD . Растяжение ключей используется для увеличения сложности взлома пароля , по умолчанию используется 1000 раундов модифицированного MD5. [ 5 ] 64 патрона Blowfish, 5000 патронов SHA-256 или SHA-512. [ 6 ] Количество раундов можно изменить для Blowfish или для SHA-256 и SHA-512 с помощью$A$rounds=X$
, где «A» и «X» — идентификаторы алгоритма и количество раундов. Общие значения идентификатора включают: [ 7 ]$1$
– МД5$2$
,$2a$
,$2b$
– шифрование$5$
- ША-256$6$
- ША-512$y$
- дакрипт
- Пустая строка — нет пароля, у учетной записи нет пароля (сообщается passwd в Solaris с «NP»). [ 8 ]
- «!», «*» — учетная запись заблокирована паролем, пользователь не сможет войти в систему с помощью аутентификации по паролю, но другие методы (например, ключ ssh, вход в систему как root) могут быть разрешены.
- «*LK*» — сама учетная запись заблокирована, пользователь не сможет войти в нее.
- "*НП*", "!!" – пароль никогда не устанавливался [ 9 ]
- Количество дней с момента последней смены пароля
- Дни до разрешения изменения
- Дней до требуемых изменений
- Предупреждение об истечении срока действия в днях
- Дни после отсутствия входов в систему до блокировки учетной записи
- Дни с момента истечения срока действия учетной записи
- Зарезервировано и не используется
Формат теневого файла прост и в основном идентичен формату файла паролей, а именно: одна строка для каждого пользователя, упорядоченные поля в каждой строке и поля, разделенные двоеточиями. Много [ количественно ] системы требуют, чтобы порядок строк пользователей в теневом файле был идентичен порядку соответствующих пользователей в файле паролей.
История
[ редактировать ]До дублирования пароля хешированный пароль пользователя Unix хранился во втором поле его записи в /etc/passwd
файл (в формате семи полей, как описано выше).
Скрытие паролей впервые появилось в системах Unix с развитием SunOS в середине 1980-х годов. [ 10 ] System V Release 3.2 в 1988 году и BSD 4.3 Reno в 1990 году. Но поставщики, которые выполняли портирование из более ранних выпусков UNIX, не всегда включали новые функции скрытия паролей в свои выпуски, в результате чего пользователи этих систем подвергались атакам файлов паролей.
Системные администраторы также могут организовать хранение паролей в распределенных базах данных, таких как NIS и LDAP , а не в файлах в каждой подключенной системе. В случае NIS на серверах NIS часто до сих пор используется механизм теневого пароля; в других распределенных механизмах проблема доступа к различным компонентам аутентификации пользователей решается механизмами безопасности базового хранилища данных.
В 1987 году Джули Хо, автор оригинального пакета Shadow Password Suite , подверглась взлому компьютера и написала первую версию Shadow Suite, содержащую login
, passwd
и su
команды. Оригинальная версия, написанная для операционной системы SCO Xenix , была быстро перенесена на другие платформы. Shadow Suite был портирован на Linux в 1992 году, через год после первоначального анонса проекта Linux, был включен во многие ранние дистрибутивы и продолжает включаться во многие текущие Linux дистрибутивы .
Раньше для изменения паролей в разных схемах аутентификации необходимо было иметь разные команды. Например, команда для изменения пароля NIS была yppasswd . Это требовало от пользователей знания различных методов смены паролей для разных систем, а также приводило к расточительному дублированию кода в различных программах, выполнявших одни и те же функции с разными серверными концами . В большинстве реализаций теперь используется одна команда passwd, а контроль над тем, где фактически изменяется пароль, осуществляется прозрачно для пользователя через подключаемые модули аутентификации (PAM). Например, тип используемого хеша определяется конфигурацией pam_unix.so
модуль. По умолчанию MD5 используется хэш , хотя текущие модули также поддерживают более сильные хэши, такие как Blowfish , SHA256 и SHA512 .
См. также
[ редактировать ]- чш
- Crypt (C) (библиотечная функция) и Crypt (Unix) (утилита)
- палаточный
- Диспетчер учетных записей безопасности ( Microsoft Windows ) эквивалент файла паролей
- Безопасность Unix
- vipw
Ссылки
[ редактировать ]- ^ Понимание
/etc/passwd
Формат файла - ^ «passwd(5) — страница руководства Linux» . Man7.org . Проверено 25 августа 2014 г.
- ^ Адамс, Дэвид. «Как просмотреть и понять файл /etc/passwd в Linux» .
- ^ RFC 2877: 5250 усовершенствований Telnet
- ^ «Хеширование паролей с помощью MD5-крипты применительно к MD5 — Блог Видара» .
- ^ «Реализация SHA512-крипты против MD5-крипты — Блог Видара» .
- ^ «Модульный формат склепа» . Архивировано из оригинала 07 января 2022 г. Проверено 29 января 2022 г.
- ^ «Солярис — пароль (1)» . cs.bgu.ac.il. Архивировано из оригинала 17 декабря 2013 г.
- ^ «6.3. Информация о Red Hat Enterprise Linux» . Access.redhat.com . Проверено 25 августа 2014 г.
- ^ "passwd.adjunt(5) в SunOS-4.1.3" . Modman.unixdev.net . Проверено 03 января 2016 г.
Внешние ссылки
[ редактировать ]- Страница руководства из Unix First Edition, описывающая /etc/passwd
- FreeBSD по основным командам Руководство : обновить токен(ы) аутентификации пользователя –
- Plan 9 , том 1 Руководство программиста –
- Inferno по общим командам Руководство –
- authconfig — инструмент командной строки для управления использованием теневых паролей.