Они иерархичны в том смысле, что род, вид и особь иерархичны.
- Субъект - в контексте безопасности субъект - это любой объект, который запрашивает доступ к объекту . Это общие термины, используемые для обозначения объекта, запрашивающего доступ, и объекта, против которого сделан запрос. Когда вы входите в приложение, вы являетесь субъектом, а приложение - объектом. Когда кто-то стучит в вашу дверь, посетитель является субъектом, запрашивающим доступ, а ваш дом - объектом запроса.
- Принципал - Подмножество субъекта , которое представлено учетной записью, ролью или другим уникальным идентификатором. Когда мы дойдем до уровня детализации реализации, принципалы - это уникальные ключи, которые мы используем в списках контроля доступа. Они могут представлять пользователей, автоматизацию, приложения, соединения и т. Д.
- Пользователь - Подмножество принципала, обычно ссылающегося на человека-оператора. Различие со временем стирается, потому что слова «пользователь» или «идентификатор пользователя» обычно взаимозаменяемы с «аккаунтом». Однако, когда вам необходимо провести различие между широким классом вещей, которые являются принципалами, и их подмножеством, которые являются интерактивными операторами, управляющими транзакциями недетерминированным образом, «пользователь» - правильное слово.
Предмет / Объект наследуется от тех же терминов, что и в грамматике. В предложении субъект - это субъект, а объект - это то, над чем действовал. В этом смысле использование было вокруг еще до того, как были изобретены компьютеры. В контексте безопасности субъект - это все, что может сделать запрос. Как отмечалось выше, это не обязательно должно быть ограничено информационной безопасностью и поэтому является очень широкой классификацией. Интересно то, что субъект подразумевает объект. Без объекта нет субъекта.
Принципы - это то, к чему решают субъекты. Когда вы представляете свою кредитную карту, вы - субъект, а номер счета - основной. В других случаях ваш основной идентификатор пользователя или удостоверение личности, выданное штатом. Но принципы могут быть связаны со многими типами субъектов, которые не являются людьми. Когда приложения выполняют запросы на функции системного уровня, принципал может подписать подписанный модуль исполняемого кода, но даже в этом случае пользователь, управляющий запросом, все еще является субъектом.
Пользователь более конкретен, чем субъект или принципал в том смысле, что он обычно относится к интерактивному оператору. Вот почему у нас есть графический интерфейс пользователя, а не основной графический интерфейс. Пользователь - это экземпляр субъекта, который превращается в принципала . Один пользователь может разрешить любое количество участников, но ожидается, что любой участник разрешит одному пользователю (при условии, что люди соблюдают требование не предоставлять идентификаторы). В приведенном выше примере подписавшая сторона модуля исполняемого кода определенно не является пользователем, но она является действительным принципалом. Интерактивный оператор, пытающийся загрузить модуль, является пользователем.
Как отмечается в комментариях, даже авторитетные источники не согласны с этими условиями. Во время подготовки этого ответа я искал NIST, SANS, IEEE, MITER и несколько «квазиавторизированных» источников, таких как руководства по проверке безопасности. Ни один источник, который я нашел, который был бы, по крайней мере, квази-авторитетным, не охватывал все три термина, и все они значительно различались в их использовании. Это мое мнение о том, как следует использовать термины , но с практической точки зрения, когда вы просматриваете руководство в середине ночи, определения, как правило, соответствуют тому, что говорят продавцы или авторы. Хотелось бы надеяться, что ответы здесь предоставят достаточно информации для навигации по водам и анализа любого защищенного документа с использованием этих терминов.