× К оглавлению На главную Об авторе

Дата и время публикации:

Процедуры "Аутентификации и авторизации" и их сравнение


1. Что это такое?

Рассмотрим простую схему процесса входа в систему (англ. login сокращенно от logging in), поэтому давайте взглянем на рисунок 1.1,

Рисунок 1.1

который иллюстрирует последовательность выполнения всех процедур внутри процесса login, состоящий из двух главных процедур – аутентификации(англ.authentication) и авторизации(англ.authorization). При этом задача последней состоит в том, чтобы выделить или назначить права доступа вновь созданным субъектам системы к её ресурсам(в данном случае – порождаемому процессу), а не подтверждать право пользоваться ими, что соответственно входит в задачу первой подсистемы.

2.Процедуры "Аутентификации и авторизации"

2.1 Процедура "Аутентификации"

После ввода пользователем своего имени (username) выполняется встроенная процедура "Идентификации" в виде поиска его учетной записи (struct passwd).

После того как она была найдена, производится такая же встроенная процедура "Проверки пароля", которая выполняется с использованием функции crypt(3): производит только сверку введеного пароля (password) и хэш-функции из учетной записи теневых паролей (struct shadow) и паравленной солью (англ.salt).

Выборка учетной записи из баз пользователей (passwd) и теневых паролей (shadow) службы преобразования имен (англ.Name Service Switch, NSS) производится обычно из локальных файлов /etc/passwd и /etc/shadow соответственно. Исключением является использование сервисов NIS, LDAP и т.п.

Процедура "Аутентификации" будет завершена с отказом (failure), если выборка учетных записей пользователей и проверка пароля завершаются с возвратом null-указателя, как показано на рисунке 1.1. В обратом случае, осуществляется переход к процедуре авторизации.

2.2 Процедура "Авторизации"

Как показано на рисунке 1.1, после успешного завершения процедуры аутентификации выполняется:

Следом производится порождение дочернего процесса, условием запуска которого является нулевое значение от системного вызова fork(2), и/или запуск системного вызова из семейства exec(3).

2.3 Управление сессией

Как таковое отсутствует. За исключением завершения сессии, которое может быть сделано только в ручную, например нажатием пользователем Ctrl+C или kill(3) из другой консоли, что несомненно является недостатком данной схемы входа в систему, но широко используется в системных программах, наподобие SU(1). Поэтому в *nix-системах для создания и управления сессией широко применяется подгружаемые программные модули аутентификации Linux-PAM, применение которых будет рассмотрено в дальнейшем...

2.4 Сравнение процедур аутентификации и авторизации

Различие между процедурами аутентификации и авторизации приведено в сравнительной таблице 2.4.1

Таблица 2.4.1
Что сравниваем Аутентификация Авторизация
Базис Проверка личности пользователя для предоставления доступа к систем Проверка привелегий или прав доступа пользователя к ресурсам
Включает в себя Подтверждение учетных данных пользователя Проверка достоверности прав доступа
Порядок использования Выполняется первой Выполняется после успешно проведенной процедуры
Пример использования При запуске SU(1) первой выполняется данная процедура, согласно введенным значениям в полях имени пользователя формы управления, показанной на рисунке 1.1 Во второй фазе запуска, после успешно проведенной аутентификации производится назначение привилегий или прав доступа, которые были назначены администратором системы (в *nix-системах суперпользователь root).

3. Библиография


3.1 Authenticating and authorizing Linux users kept in a MySQL database (libpam-mysql and libnss-mysql)

3.2 Difference Between Authentication and Authorization

3.3 Source file coreutils/src/su.c

3.4 System Databases and Name Service Switch

3.5 passwd(5) - Linux man page

3.6 shadow(5) - Linux man page