Answers:
这些是按照属,种和个体是分级的方式进行分级的。
主语/宾语继承自与语法相同的术语。句子中的主语是演员,物是被表演的东西。从这个意义上讲,自发明计算机以来就一直在使用。在安全上下文中,主题是可以发出请求的任何内容。如上所述,这不必限于IT安全性,因此是非常广泛的分类。有趣的是,主题暗示对象。没有物体,就没有主体。
校长是学科要解决的问题。出示信用卡时,您是主题,而帐号是本金。在其他情况下,您的用户ID或国家签发的身份证明是您的主体。但是,校长可以与不是人的许多类型的学科相关联。当应用程序请求系统级功能时,委托人可以是已签名的可执行代码模块的签名者,但即使在那种情况下,驱动请求的用户仍然是主题。
用户比主题或主体更具体,因为它通常指的是交互式操作员。这就是为什么我们有一个图形用户界面而不是图形主体界面的原因。用户是可以解析为主体的主题的实例。单个用户可以解析为任何数量的委托人,但是任何委托人都可以解析为单个用户(假设人们遵守不共享ID的要求)。在上面的例子中,可执行代码模块的签名者是绝对不用户,但它是一个有效的主体。尝试加载模块的交互式操作员是用户。
如评论中所述,即使权威人士也不同意这些条款。在准备此响应时,我搜索了NIST,SANS,IEEE,MITER和一些“准权威”资源,例如安全性考试指南。我发现没有一个至少是准权威的资料涵盖了这三个术语,并且在用法上都存在很大差异。这是我对条款内容应该被使用,但是从实际情况来看,当你凝视着一本手册在半夜,定义往往是任何厂商或作家说,他们是。希望尽管这里的答复能够提供足够的见识,以便使用这些术语来解决问题并解析任何安全文档。
John (human) SUBJECT > username_1 PRINCIPAL > password_1 USER
John (human) SUBJECT > username_1 PRINCIPAL > password_2 USER
John (human) SUBJECT > username_1 PRINCIPAL > smartcard_1 USER
John (human) SUBJECT > username_1 PRINCIPAL > cellphone_1 USER
我认为该术语取自JAAS。
当应用程序使用JAAS身份验证来验证用户(或其他实体,例如服务)时,将创建一个Subject。主题的目的是代表经过身份验证的用户。一个Subject由一组Principal组成,其中每个Principal代表该用户的身份。例如,一个主题可以有一个名字校长(“ Susan Smith”)和一个社会安全号码校长(“ 987-65-4321”),从而将该主题与其他主题区分开。
主体是请求服务的实体。它可以是用户或进程。也许这就是为什么选择名称Subject而不是user的原因。
当主题尝试访问服务时,必须首先对该主题进行身份验证。成功的身份验证以加载该主题的安全主体结束。例如,在基于角色的访问控制系统中,经过身份验证(登录)的用户通常将具有两个主体-userId和roleId。在这样的系统中,为角色和用户都指定了特权(即谁可以访问什么)。在授权期间(即检查是否应允许所请求的服务),安全系统将检查两个委托人的可访问性。
因此,从授权的角度来看,委托人是允许或禁止访问的实际实体。主题只是拥有某些主体的用户/线程/进程。
这是Oracle JAVA SE文档中以下说明的链接。
主题,主体,身份验证和凭据要授权对资源的访问,应用程序首先需要对请求源进行身份验证。JAAS框架定义了主题主题来表示请求的来源。主题可以是任何实体,例如个人或服务。主题由javax.security.auth.Subject类表示。
认证表示验证主体身份的过程,必须以安全的方式执行;否则,作恶者可能会冒充他人来访问系统。身份验证通常涉及对象展示某种形式的证据以证明其身份。此类证据可能是仅受试者可能知道或拥有的信息(例如密码或指纹),也可能是仅受试者可能产生的信息(例如使用私钥签名的数据)。
身份验证后,将在主题中填充关联的身份或主体(类型为java.security.Principal)。一个主题可能有很多校长。例如,一个人可能有一个名字校长(“ John Doe”)和一个SSN校长(“ 123-45-6789”),这与其他主题有所区别。
除了关联的主体外,主题还可以拥有与安全性相关的属性,这些属性称为凭据。凭证可能包含用于对主体进行新服务身份验证的信息。此类凭据包括密码,Kerberos票证和公共密钥证书。凭据可能还包含使主体能够执行某些活动的数据。例如,加密密钥代表使主体能够签名或加密数据的凭据。公共和私有凭证类不是核心J2SE API的一部分。因此,任何类别都可以代表一个凭证。