【Windows 访问控制】八、安全主体和安全对象-security principal和Securable Objects
安全主体(security principal)?
安全主体是任何可通过操作系统进行身份验证的实体,例如用户帐户、计算机帐户、在用户或计算机帐户的安全上下文中运行的线程或进程,或者这些帐户的安全组。 安全主体一直是控制对计算机中安全资源Windows的基础。 每个安全主体在操作系统中由 SID (唯一) 。
个人理解:就用户登入后,系统分配给线程一个权限。这个权限(principal:政策)用与访问系统资源。简单地将安全主体表示成:身份(登入验证成功后获得一个sid) + 角色(sid所在组的权限)。
C#代码 Thread.CurrentPrincipal = new GenericPrincipal(new GenericIdentity(UserName),null);
身份验证 |认证(Authentication)
身份验证是验证对象或人员身份的过程。 当你对某个对象进行身份验证时,目的就在于验证该对象是否为正版。 当你对某个用户进行身份验证时,其目标是验证该用户是否不是冒名顶替者。 因此,身份验证不能保证对资源的访问权限,也不能授权使用资源。
在网络环境中,身份验证是向网络应用程序或资源证明身份的行为。
个人理解:登入操纵系统、服务器、应用软件的过程就是身份验证的过程,登入成功就是验证成功。
计算机帐户:加入域服务器的计算机,在域服务器中会生成一个账户就叫计算机帐户
用户帐户:每个安全主体都分配有一个唯一标识符,它将在其整个生命周期内保留。 本地用户帐户和安全组是在本地计算机上创建的,它们可用于管理对该计算机上资源的访问权限。 本地用户帐户和安全组由本地计算机上安全帐户管理器 (SAM) 管理。
window内置的安全主体:
虽然内置安全主体有很多,但正常能在权限设置中使用到的并不多,所以下面仅说明其中几个较重要的:①Anonymous Logon:任何没有经过Windows XP验证程序(Authentication),而以匿名方式登录域的用户均属于此组;②Authenticated Users:与前项相反,所有经过Windows XP验证程序登录的用户均属于此组。设置权限和用户权力时,可考虑用此项代替Everyone组;④DIALUP:任何通过拨号网络登录的用户;⑤Everyone:指所有经验证登录的用户及来宾(Guest);⑥Network:任何通过网络登录的用户;⑦Interactive:指任何直接登录本机的用户;⑧Terminal server user:指任何通过终端服务登录的用户。
安全对象(Securable Objects)
具有安全描述符的对象就是安全对象。window上的安全对象有:NTFS 文件系统上的文件或目录\命名管道 匿名管道\进程 线程\文件映射对象\本地或远程打印机\网络共享
知识点:https://docs.microsoft.com/zh-cn/windows/win32/secauthz/securable-objects
Windows具体有哪些安全对象?
- 进程
- 线程
- 文件
- 服务
- 计划任务
- 互斥体
- 管道
- 油槽
- 文件共享
- 访问令牌
- 注册表
- 打印机
- 作业