主体、用户和主体的含义和区别是什么?

在安全框架的上下文中,一些术语通常出现在主题用户主体中,我无法找到明确的定义以及它们之间的区别。

那么,这些术语到底是什么意思,为什么需要这些主题主体的区别呢?


答案 1

这些是分层的,就像属,种和个体是分层的一样。

  • 主体 - 在安全上下文中,主体是请求访问对象的任何实体。这些是通用术语,用于表示请求访问的事物以及针对该事物发出请求的事物。当您登录到应用程序时,您是主体,应用程序是对象。当有人敲你的门时,访客是请求访问的对象,你的家是请求访问的对象。
  • 主体 - 由帐户、角色或其他唯一标识符表示的主题子集。当我们达到实现细节的级别时,主体是我们在访问控制列表中使用的唯一键。它们可以代表人类用户,自动化,应用程序,连接等。
  • User - 主体的子集,通常指人工操作员。随着时间的推移,这种区别越来越模糊,因为“用户”或“用户ID”这两个词通常与“帐户”互换。但是,当您需要区分作为主体的广泛类别的事物和这些以非确定性方式驱动交易的交互式运算符的子集时,“用户”是正确的词。

主语/宾语继承自语法中使用的相同术语。在一句话中,主体是演员,客体是行动的东西。从这个意义上说,这种使用早在计算机发明之前就已经存在了。在安全上下文中,主体是可以发出请求的任何内容。如上所述,这不一定仅限于IT安全,因此是一个非常广泛的分类。有趣的是,主体意味着客体。没有客体,就没有主体。

主体是主体所决定的。当您出示信用卡时,您是主体,帐号是委托人。在其他上下文中,您的用户 ID 或国家颁发的标识是您的委托人。但主体可以与许多不是人的主题类型相关联。当应用程序对系统级函数发出请求时,主体可能是已签名的可执行代码模块的签名者,但即使在这种情况下,驱动请求的用户仍然是主体。

用户比主体或主体更具体,因为它通常是指交互式运算符。这就是为什么我们有一个图形用户界面,而不是一个图形主体界面。用户是解析为主体主体的主体集的实例。单个用户可以解析为任意数量的主体,但任何主体都应解析为单个用户(假设人们遵守不共享 ID 的要求)。在上面的示例中,可执行代码模块的签名者肯定不是用户,但它有效的主体。尝试加载模块的交互式操作员是用户。

正如评论中所指出的,即使是权威人士也不同意这些条款。在准备此响应时,我搜索了NIST,SANS,IEEE,MITRE和几个“准权威”来源,例如安全考试指南。我找到的至少是准权威的单一来源涵盖了所有三个术语,并且在它们的用法上都有很大的不同。这是我对如何使用这些术语的看法,但从实际的角度来看,当你在半夜仔细阅读手册时,定义往往是供应商或作者所说的任何东西。希望这里的回复能提供足够的洞察力来导航水域,并使用这些术语解析任何安全文档。


答案 2

看看我的身份验证概念图

enter image description here