安全标识符(SID Security Identifiers)

SID是用来标识安全主体。就是给安全主体一个唯一的ID。用户层面通过用户账户名识别,程序和资源之间通过SID识别。

什么是安全标识符?

SID (安全) 用于唯一标识安全主体或安全组。 安全主体可以表示任何可通过操作系统进行身份验证的实体,例如用户帐户、计算机帐户或在用户或计算机帐户的安全上下文中运行的线程或进程。

每个帐户或组,或在帐户的安全上下文中运行的进程都有一个由颁发机构颁发的唯一 SID,Windows域控制器。 它存储在安全数据库中。 系统生成 SID,该 SID 标识创建帐户或组时的特定帐户或组。 当 SID 用作用户或组的唯一标识符时,它永远不能再次用于标识其他用户或组。

用户每次登录时,系统会为该用户创建访问令牌。 访问令牌包含用户所属的任何组的 SID、用户权限和 SID。 此令牌为用户在此计算机上执行的任何操作提供安全上下文。

除了分配给特定用户和组且唯一创建的特定于域的 SID 之外,还有可标识通用组和通用用户的已知 SID。 例如,Everyone 和 World SID 标识包含所有用户的组。 众所周知的 SID 的值在所有操作系统中保持不变。

SID 是安全模型的基本Windows构建基块。 它们在 Windows Server 操作系统的安全基础结构中处理授权和访问控制技术的特定组件。 这有助于保护对网络资源的访问,并提供更安全的计算环境。

本主题中的内容适用于运行受支持版本的 Windows 操作系统的计算机,如本主题开头的"适用范围"列表中所指定。 ****

安全标识符如何工作

用户通过使用帐户名称来引用帐户,但操作系统内部指使用其安全标识符或 SID 在帐户安全上下文中运行的帐户 (进程) 。 对于域帐户,安全主体的 SID 创建方法为:将域的 SID 与帐户的相对标识符相连接 (,) 的 SID。 SID 在其作用域内是唯一 (或本地) ,并且永远不会重复使用。

创建帐户或组时,操作系统将生成标识特定帐户或组的 SID。 本地帐户或组的 SID 由计算机上本地安全机构 (LSA) 生成,并与其他帐户信息一起存储在注册表的安全区域中。 域帐户或组的 SID 由域安全机构生成,并作为 User 或 Group 对象的属性存储在 Active Directory 域服务中。

对于每个本地帐户和组,SID 对于创建它的计算机是唯一的。 计算机上没有两个帐户或组共享同一 SID。 同样,对于每个域帐户和组,SID 在企业中都是唯一的。 这意味着,在一个域中创建的帐户或组的 SID 将永远不会与在企业内任何其他域中创建的帐户或组的 SID 匹配。

SID 始终保持唯一。 安全机构从不发出两次相同的 SID,并且从不对已删除的帐户重复使用 SID。 例如,如果某个用户在域中拥有用户帐户Windows她的工作,则管理员会删除其 Active Directory 帐户,包括标识该帐户的 SID。 如果稍后她回到同一公司的不同工作,管理员将创建一个新帐户,并且 Windows Server 操作系统将生成一个新的 SID。 新 SID 与旧 SID 不匹配;因此,用户不会从旧帐户访问任何帐户转移到新帐户。 她的两个帐户代表两个完全不同的安全主体。

SID的结构

1、本地SID结构

由于本地不存在域服务器,所以就把一系列子身份验证值全部省略了,留下内置域标识符(32)和RID( 544)。

2、域中SID结构

标识符颁发机构有:

Authority

1 – World Authority

2 – Local Authority

3 – Creator Authority

4 – Non-unique Authority

5 – NT Authority

9 – Resource Manager Authority

如何获取SID

1、获取windows 10操作系统的 SID,已经测试过,是有些的

1.简单点的:
System.Security.Principal.WindowsIdentity currentUser = System.Security.Principal.WindowsIdentity.GetCurrent();
string sid = currentUser.User.ToString();

2、cmd 命令行获取SID

查看计算机名字:whoami
      查看登入账户名字的SID:whoami /user
   查看本地组的SID:whoami /groups
     查看你本地计算机用户SID: WMIC useraccount get name,sid
     枚举本地出组SID:wmic group get Caption, InstallDate, LocalAccount, Domain, SID, Status

安全主体(security principal)?

安全主体是任何可通过操作系统进行身份验证的实体,例如用户帐户、计算机帐户、在用户或计算机帐户的安全上下文中运行的线程或进程,或者这些帐户的安全组。 安全主体一直是控制对计算机中安全资源Windows的基础。 每个安全主体在操作系统中由 SID (唯一) 。

来源:docs.microsoft.com

个人理解:不管是从本地还是远程 登入操作系统的的账户或程序都是安全主体

身份验证

身份验证是验证对象或人员身份的过程。 当你对某个对象进行身份验证时,目的就在于验证该对象是否为正版。 当你对某个用户进行身份验证时,其目标是验证该用户是否不是冒名顶替者。  因此,身份验证不能保证对资源的访问权限,也不能授权使用资源。

在网络环境中,身份验证是向网络应用程序或资源证明身份的行为。

来源:docs.microsoft.com

个人理解:登入操纵系统、服务器、应用软件的过程就是身份验证的过程,登入成功就是验证成功。

计算机帐户:加入域服务器的计算机,在域服务器中会生成一个账户就叫计算机帐户

用户帐户:每个安全主体都分配有一个唯一标识符,它将在其整个生命周期内保留。 本地用户帐户和安全组是在本地计算机上创建的,它们可用于管理对该计算机上资源的访问权限。 本地用户帐户和安全组由本地计算机上安全帐户管理器 (SAM) 管理。

window内置的安全主体:

虽然内置安全主体有很多,但正常能在权限设置中使用到的并不多,所以下面仅说明其中几个较重要的:
①Anonymous Logon:任何没有经过Windows XP验证程序(Authentication),而以匿名方式登录域的用户均属于此组;
②Authenticated Users:与前项相反,所有经过Windows XP验证程序登录的用户均属于此组。设置权限和用户权力时,可考虑用此项代替Everyone组;
③BATCH:这个组包含任何访问这台计算机批处理程序(Batch Process);
④DIALUP:任何通过拨号网络登录的用户;
⑤Everyone:指所有经验证登录的用户及来宾(Guest);
⑥Network:任何通过网络登录的用户;
⑦Interactive:指任何直接登录本机的用户;
⑧Terminal server user:指任何通过终端服务登录的用户。

来源:百度百科

【windows 访问控制】六、安全标识符(SID Security Identifiers)的更多相关文章

  1. [转]在 Windows 操作系统中的已知安全标识符(Sid security identifiers)

    安全标识符 (SID) 是用于标识安全主体或安全组在 Windows 操作系统中的可变长度的唯一值.常用 Sid 的 Sid 标识普通用户的一组或通用组.跨所有操作系统,它们的值保持不变. 此信息可用 ...

  2. VBS脚本获取安全标识符SID(Security Identifiers)的方法

    一.SID简介       SID也就是安全标识符(Security Identifiers),是标识用户.组和计算机帐户的唯一的号码.在第一次创建该帐户时,将给网络上的每一个帐户发布一个唯一的 SI ...

  3. [转载]ACM(访问控制模型),Security Identifiers(SID),Security Descriptors(安全描述符),ACL(访问控制列表),Access Tokens(访问令牌)

    对于<windows核心编程>中的只言片语无法驱散心中的疑惑.就让MSDN中的解释给我们一盏明灯吧.如果要很详细的介绍,还是到MSDN仔细的看吧,我只是大体用容易理解的语言描述一下. wi ...

  4. 安全标识符SID技术介绍及查看技巧

    说到安全标识符SID就要先说说安全主体(Security Principals),安全主体是一个能够对它分配权限的对象,例如,用户.组和计算机: 对于每一个Windows 200x域中的安全主体都有一 ...

  5. 【windows 访问控制】一、访问令牌

    访问令牌(Access tokens) 访问令牌是描述进程或线程的安全上下文的对象.令牌中的信息包括与进程或线程关联的用户帐户的标识和特权信息.当用户登录时,系统通过将用户密码与安全数据库(如域认证中 ...

  6. 【Windows 访问控制】九、AccessCheck 的工作原理

    授权和访问控制组件 下图说明了授权Windows访问控制过程. 在此图中,主题 (由用户启动) 访问对象(如共享文件夹)的过程. 将用户的访问令牌中的信息与对象的安全描述 (AES) 中的访问控制项进 ...

  7. Windows Server 2008更改SID

    参考:Windows Server 2012 克隆修改SID 前言 克隆(软克隆,硬克隆)虚拟机后,虚拟机不光名称一样,IP一样(设置静态IP情况下),连SID也一样 什么是SID SID 安全标识符 ...

  8. 【windows 访问控制】二、安全描述符(Security Descriptors,SD)

    安全描述符(Security Descriptors,SD) 定义 安全描述符是与安全对象的安全信息,它含有这个对象所有者的SID,以及一个访问控制列表(ACL,Access Control List ...

  9. 【windows 访问控制】十一、C# 实操 对象 System.Security.AccessControl 命名空间

    AccessControl 命名空间 结构图 解说: DirectorySecurity=目录ACLFileSecurity=文件ACLFileSystemAuditRule=目录和文件中SACL中的 ...

随机推荐

  1. 单例模式的各种实现方式(Java)

    单例模式的基础实现方式 手写普通的单例模式要点有三个: 将构造函数私有化 利用静态变量来保存全局唯一的单例对象 使用静态方法 getInstance() 获取单例对象 懒汉模式 懒汉模式指的是单例对象 ...

  2. eslint规则详解

    { // 环境定义了预定义的全局变量. "env": { //环境定义了预定义的全局变量.更多在官网查看 "browser":true, "node& ...

  3. 通过json动态创建控制器

    通过字符串来创建控制器 如果通过字符串来创建控制器 不可以直接通过类型来获取对应的类 因为Swift有命名空间,类前需要加上命名空间的名称 获取命名空间的名称 let executable = NSB ...

  4. js 计算中英文混合字符串长度

    转载请注明来源:https://www.cnblogs.com/hookjc/ function isChinese(str) {    var lst = /[u00-uFF]/;          ...

  5. CheckStyle使用手册(一)

    介绍 CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发人员遵守某些编码规范的工具.它能够自动化代码规范检查过程,从 而使得开发人员从这项重要,但是枯燥的任务中解脱出 ...

  6. GRC: 个人信息保护法, 个人隐私, 企业风险合规治理

    声明 个人原创, 转载需注明来源 https://www.cnblogs.com/milton/p/15885344.html 个人信息保护的历史和现状 个人信息保护的立法可追溯至德国黑森州1970年 ...

  7. 简单RSA攻击方式

    RSA攻击方式总结 1.模数分解 1).解题思路 ​ a).找到RSA算法中的公钥(e,n) ​ b).通过n来找到对应的p和q,然后求得φ(n) ​ c).通过gmpy2.invert或者gmpy2 ...

  8. springBoot工程解决跨域问题

    更新:通过一个 @CrossOrigin  注解就可以完美解决跨域问题. 创建一个配置类 package com.miaoshaProject.configuration; import org.sp ...

  9. YOLOv5模型训练及检测

    一.为什么使用YOLOv5 二.软件工具 2.1 Anaconda https://www.anaconda.com/products/individual 2.2 PyCharm https://w ...

  10. VScode git无法使用,Error: command 'git.push' not found 源代码管理无法使用的问题及解决方法

    正常条件下,只要电脑中安装了Git,VScode就可以直接使用. 在开始界面有下图所示的功能: 在源代码管理栏目中: 如果没能正常工作,就看不到这些功能. 可能在用某些与git相关的功能时,如安装了G ...