安全标识符(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. 深度解读SSH免密登录

    深度解读SSH免密登录 我们都知道SSH是LINUX下很常用的命令,用来远程登陆其他的LINUX系统.如果只有一台,那也只是一个密码 ,也到还好.但如果是一个集群,每次都输入密码登录,难免会拉低效率. ...

  2. vue学习9-更新视图

    <!DOCTYPE html> <html lang='en'> <head>  <meta charset='UTF-8'>  <meta ht ...

  3. C++初始化列表各情况分析

    今天回顾了下C++初始化列表的知识,接下来我对这一知识作一总结. 我们在定义了一个类的时候,需要对类的成员进行初始化.关于初始化,有两种方法,一种在初始化列表中进行,另一种就是在构造函数中进行,对于这 ...

  4. java继承子父类构造函数-子类的实例化过程

    1 /* 2 * 子父类中的构造函数的特点. 3 * 在子类构造对象时,发现,访问子类构造函数时,父类也运行了. 4 * 为什么呢? 5 * 原因是:在子类的构造函数中第一行有一个默认的隐式语句.su ...

  5. 大厂面试:一个四年多经验程序员的BAT面经(字节、阿里、腾讯)

    前言 上次写了篇欢聚时代的面经,公众号后台有些读者反馈说看的意犹未尽,希望我尽快更新其他大厂的面经,这里先说声抱歉,不是我太懒,而是项目组刚好有个活动要赶在春节前上线,所以这几天经常加班,只能工作之余 ...

  6. HashMap相关

    final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { Node<K,V>[] ta ...

  7. C++读写图片文件

    1.C方式 string sourcefilename = "D:\\Logo.jpg"; string destfilename="D:\\Logo1.jpg" ...

  8. 计算机网络-5-9-TCP拥塞控制

    TCP拥塞控制 拥塞控制的一般原理 在计算机网络中的链路容量(带宽),交换节点中的缓存和处理机等,都是网络的资源,在某段时间,若对网络中某一资源的需求超过该资源所能提供的可用部分,网络性能就会变坏,这 ...

  9. CEH v8~v11 Module Slides 和 Lab Manual 下载

    课程内容 CEH v8 01 Introduction to Ethical Hacking CEH v8 02 Footprinting and Reconnaissance CEH v8 03 S ...

  10. 基于java 合并.doc和docx格式的Word文件

    注:摘录自 https://www.cnblogs.com/shenzhouyh/articles/7243805.html 之前用过jacob 合并.doc,但是是有jacob有弊端: 服务器必须是 ...