В чем смысл и разница между субъектом, пользователем и субъектом?

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

Итак, что же означают эти термины, и почему эти различия теме и основные нужен?

6 ответов


Они иерархичны таким образом, что род, вид и индивид иерархичны.

  • теме - в контексте безопасности a теме - это любая сущность, которая запрашивает доступ к объект. Это общие термины, используемые для обозначения вещи, запрашивающей доступ, и вещи, против которой сделан запрос. При входе в приложение вы являетесь субъектом, а приложение-объектом. Когда кто-то стучится в твою дверь посетитель-это субъект, запрашивающий доступ, и ваш дом-это объект, доступ к которому запрашивается.
  • основные - подмножество теме, представленного счета, роль, или другой уникальный идентификатор. Когда мы доходим до уровня деталей реализации, участники-это уникальные ключи, которые мы используем в списках управления доступом. Они могут представлять пользователей, автоматизации, применения, соединения и т. д.
  • пользователей - подмножество основные обычно ссылаясь на человека-оператора. Это различие со временем стирается, поскольку слова "пользователь" или "идентификатор пользователя"обычно заменяются словами "учетная запись". Однако, когда вам нужно сделать различие между широким классом вещей, которые субъекты и подмножество из них, которые являются интерактивными операторами, управляющими транзакциями недетерминированным образом," пользователь " - правильное слово.

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

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

пользователь специфический, чем субъект или Принципал, в том, что он обычно относится к интерактивному оператору. Вот почему у нас есть графический пользовательский интерфейс, а не графический основной интерфейс. Пользователь является экземпляром теме что соответствует основные. Один пользователь может разрешить любому числу участников, но ожидается, что любой участник разрешит одному пользователю (при условии, что люди соблюдают требование не делиться идентификаторами). В приведенном выше примере подписывающий исполняемый файл модуль кода определенно не пользователь, но это is действующий основные. Интерактивный оператор, пытающийся загрузить модуль, - это пользователь.

Как отмечается в комментариях, даже авторитетные источники не согласны с этими условиями. Я искал NIST, SANS, IEEE, MITRE и несколько "квази-авторитетных" источников, таких как руководства по экзаменам по безопасности, при подготовке этого ответа. Ни один источник, который я нашел, который был бы, по крайней мере, квази-авторитетным, не охватывал все три термина и все они существенно различались по своему употреблению. Это мой взгляд на то, как термины должны используется, но с практической точки зрения, когда вы корпите над руководством в середине ночи, определения, как правило, независимо от поставщика или писателя говорят, что они. Надеюсь, хотя ответы здесь предоставят достаточно информации для навигации по водам и анализа любого документа безопасности с использованием этих терминов.



Я думаю, что терминология взята из систему jaas.

когда приложение использует JAAS проверки подлинности для проверки подлинности пользователь (или другой объект, например service), a теме создается как результат. Цель предмета для представления аутентифицированного пользователя. A Предмет состоит из набора Директора!--7-->, где каждого участника представляет удостоверение для этого пользователя. Например, субъект может иметь имя Принципала ("Сьюзен Смит") и a Номер Социального Страхования Основные ("987-65-4321"), тем самым отличать этот предмет от других Предметы.


теме - это сущность, которая запрашивает службу. Это может быть пользователь или процесс. Вероятно, именно поэтому имя Subject было выбрано вместо user.

когда субъект пытается получить доступ к службе, субъект должен быть проверен в первую очередь. Успешная аутентификация заканчивается загрузкой Субъекты Безопасности на эту тему. Например, в системе управления доступом на основе ролей аутентифицированный (вошедший в систему) пользователь обычно имеет двух участников - userId и roleId. В таких системах привилегии (i.e кто может получить доступ к чему) указаны как для ролей, так и для пользователей. Во время авторизации (i.e проверка того, должна ли быть разрешена запрашиваемая услуга), система безопасности проверит доступность для обоих участников.

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


Как объяснил т. Роб, субъект-это любая сущность, которая запрашивает доступ к объекту. Начиная с этого момента я нашел комментарий к javax.безопасность.автор.Предметный код, который я нашел очень полезным и простым для понимания:

"субъекты потенциально могут иметь несколько идентификаторов. Каждая идентичность представлена как Принципал внутри субъекта. Участники просто привязывают имена к субъекту. Например, субъект, который оказывается человеком, Алиса, может иметь два принципа: один, который связывает "Алиса бар", имя на ее водительских правах, субъекту, и другое, которое связывает," 999-99-9999", номер на ее студенческом удостоверении, субъекту. Оба участника ссылаются на один и тот же предмет, хотя каждый имеет другое имя."

надеюсь, что это помогает.


Это ссылке Для ниже explation из документации Oracle Java на SE.

субъекты, участники, аутентификация и учетные данные Для авторизации доступа к ресурсам приложениям сначала необходимо аутентифицировать источник запроса. Структура JAAS определяет термин теме для представления источника запроса. Субъектом может быть любое лицо, например лицо или услуга. Субъект представлен javax.безопасность.автор.Тема класса.

проверка подлинности представляет собой процесс, с помощью которого проверяется личность субъекта, и должен выполняться безопасным образом; в противном случае исполнитель может выдавать себя за других, чтобы получить доступ к системе. Аутентификация обычно включает в себя субъект, демонстрирующий некоторую форму доказательств, чтобы доказать свою личность. Такие доказательства могут быть информацией, которую, скорее всего, знает или имеет только субъект (например, пароль или отпечатков пальцев), или это может быть информация, которую может производить только субъект (например, подписанные данные с использованием закрытого ключа).

после аутентификации субъект заполняется связанными идентификаторами или субъекты (типа java.безопасность.Директор!--2-->). Субъект может иметь много субъектов. Например, у человека может быть имя Principal ("Джон Доу") и SSN Principal ("123-45-6789"), которые отличают его от других предметов.

В дополнение для связанных субъектов субъект может иметь атрибуты, связанные с безопасностью, которые называются полномочия. Учетные данные могут содержать сведения, используемые для проверки подлинности субъекта новых служб. Такие учетные данные включают пароли, билеты Kerberos и сертификаты открытого ключа. Учетные данные могут также содержать данные, позволяющие субъекту выполнять определенные действия. Криптографические ключи, например, представляют учетные данные, позволяющие субъекту подписывать или шифровать данные. Открытые и частные классы учетных данных не являются частью основного API J2SE. Поэтому любой класс может представлять учетные данные.