Авторизация
|
Иннокентий на кухне, он пьет молоко
Таракана завидев во мраке
На душе его чисто, светло и легко
Он не хочет впускать Полтораки
Б. Гребенщиков |
Механизмы авторизации в различных ОС и прикладных системах
различны, но их трудно назвать разнообразными. Два основных подхода к
авторизации — это ACL (Access Control List, список управления доступом)
или список контроля доступа и полномочия (capability).
Список контроля доступа ассоциируется с объектом или группой объектов
и представлет собой таблицу, строки которой соответствуют учетным записям
пользователей, а столбцы — отдельным операциям, которые можно осуществить
над объектом. Перед выполнением операции система ищет идентификатор пользователя
в таблице и проверяет, указана ли выполняемая операция в списке его прав.
Реализация списков управления доступом вполне прямолинейна и не представляет
непреодолимых сложностей. Разработчики системы безопасности, впрочем,
могут (и часто бывают вынуждены) предпринимать достаточно сложные меры
для сокращения ACL, предлагая те или иные явные и неявные способы объединения
пользователей и защищаемых объектов в группы.
Полномочие представляет собой абстрактный объект,
наличие которого в контексте доступа задачи позволяет выполнять ту или иную
операцию над защищаемым объектом или классом объектов, а отсутствие — соответственно,
не позволяет. При реализации такой системы разработчик должен гарантировать,
что пользователь не сможет самостоятельно сформировать полномочие.
Например, полномочие может быть реализовано в виде ключа шифрования или
электронной подписи. Невозможность формирования таких полномочий обеспечивается
непомерными вычислительными затратами, которые нужны для подбора ключа.