【windows 访问控制】六、安全标识符(SID Security Identifiers)
安全标识符(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 (唯一) 。
个人理解:不管是从本地还是远程 登入操作系统的的账户或程序都是安全主体
身份验证
身份验证是验证对象或人员身份的过程。 当你对某个对象进行身份验证时,目的就在于验证该对象是否为正版。 当你对某个用户进行身份验证时,其目标是验证该用户是否不是冒名顶替者。 因此,身份验证不能保证对资源的访问权限,也不能授权使用资源。
在网络环境中,身份验证是向网络应用程序或资源证明身份的行为。
个人理解:登入操纵系统、服务器、应用软件的过程就是身份验证的过程,登入成功就是验证成功。
计算机帐户:加入域服务器的计算机,在域服务器中会生成一个账户就叫计算机帐户
用户帐户:每个安全主体都分配有一个唯一标识符,它将在其整个生命周期内保留。 本地用户帐户和安全组是在本地计算机上创建的,它们可用于管理对该计算机上资源的访问权限。 本地用户帐户和安全组由本地计算机上安全帐户管理器 (SAM) 管理。
window内置的安全主体:
虽然内置安全主体有很多,但正常能在权限设置中使用到的并不多,所以下面仅说明其中几个较重要的:①Anonymous Logon:任何没有经过Windows XP验证程序(Authentication),而以匿名方式登录域的用户均属于此组;②Authenticated Users:与前项相反,所有经过Windows XP验证程序登录的用户均属于此组。设置权限和用户权力时,可考虑用此项代替Everyone组;④DIALUP:任何通过拨号网络登录的用户;⑤Everyone:指所有经验证登录的用户及来宾(Guest);⑥Network:任何通过网络登录的用户;⑦Interactive:指任何直接登录本机的用户;⑧Terminal server user:指任何通过终端服务登录的用户。
来源:百度百科
【windows 访问控制】六、安全标识符(SID Security Identifiers)的更多相关文章
- [转]在 Windows 操作系统中的已知安全标识符(Sid security identifiers)
安全标识符 (SID) 是用于标识安全主体或安全组在 Windows 操作系统中的可变长度的唯一值.常用 Sid 的 Sid 标识普通用户的一组或通用组.跨所有操作系统,它们的值保持不变. 此信息可用 ...
- VBS脚本获取安全标识符SID(Security Identifiers)的方法
一.SID简介 SID也就是安全标识符(Security Identifiers),是标识用户.组和计算机帐户的唯一的号码.在第一次创建该帐户时,将给网络上的每一个帐户发布一个唯一的 SI ...
- [转载]ACM(访问控制模型),Security Identifiers(SID),Security Descriptors(安全描述符),ACL(访问控制列表),Access Tokens(访问令牌)
对于<windows核心编程>中的只言片语无法驱散心中的疑惑.就让MSDN中的解释给我们一盏明灯吧.如果要很详细的介绍,还是到MSDN仔细的看吧,我只是大体用容易理解的语言描述一下. wi ...
- 安全标识符SID技术介绍及查看技巧
说到安全标识符SID就要先说说安全主体(Security Principals),安全主体是一个能够对它分配权限的对象,例如,用户.组和计算机: 对于每一个Windows 200x域中的安全主体都有一 ...
- 【windows 访问控制】一、访问令牌
访问令牌(Access tokens) 访问令牌是描述进程或线程的安全上下文的对象.令牌中的信息包括与进程或线程关联的用户帐户的标识和特权信息.当用户登录时,系统通过将用户密码与安全数据库(如域认证中 ...
- 【Windows 访问控制】九、AccessCheck 的工作原理
授权和访问控制组件 下图说明了授权Windows访问控制过程. 在此图中,主题 (由用户启动) 访问对象(如共享文件夹)的过程. 将用户的访问令牌中的信息与对象的安全描述 (AES) 中的访问控制项进 ...
- Windows Server 2008更改SID
参考:Windows Server 2012 克隆修改SID 前言 克隆(软克隆,硬克隆)虚拟机后,虚拟机不光名称一样,IP一样(设置静态IP情况下),连SID也一样 什么是SID SID 安全标识符 ...
- 【windows 访问控制】二、安全描述符(Security Descriptors,SD)
安全描述符(Security Descriptors,SD) 定义 安全描述符是与安全对象的安全信息,它含有这个对象所有者的SID,以及一个访问控制列表(ACL,Access Control List ...
- 【windows 访问控制】十一、C# 实操 对象 System.Security.AccessControl 命名空间
AccessControl 命名空间 结构图 解说: DirectorySecurity=目录ACLFileSecurity=文件ACLFileSystemAuditRule=目录和文件中SACL中的 ...
随机推荐
- gin中XML/JSON/YAML/ProtoBuf 渲染
package main import ( "github.com/gin-gonic/gin" "github.com/gin-gonic/gin/testdata/p ...
- ApacheCN Python 译文集 20211108 更新
Think Python 中文第二版 第一章 编程之路 第二章 变量,表达式,语句 第三章 函数 第四章 案例学习:交互设计 第五章 条件循环 第六章 有返回值的函数 第七章 迭代 第八章 字符串 第 ...
- Promise、Generator、Async有什么区别?
前言 我们知道Promise与Async/await函数都是用来解决JavaScript中的异步问题的,从最开始的回调函数处理异步,到Promise处理异步,到Generator处理异步,再到Asyn ...
- 阿里P8整理Mysql面试题答案,助你“脱颖而出”,吊打面试官!(建议收藏)
前言 作为一名开发人员,每天英高都在和数据库进行着斗智斗勇,尤其是互联网行业,对MySQL的使用是比较多的.同样的,因为mysql的重要性以及普及性,在面试的时候一定是一个面试的重点或者说常问问题,说 ...
- Centos8安装virtualbox
一.执行以下命令并启用 VirtualBox 和 EPEL 包仓库 dnf config-manager --add-repo=https://download.virtualbox.org/virt ...
- CSS3自定义滚动条样式-webkit内核
自定义滚动条实现 此部分针对webkit内核的浏览器,使用伪类来改变滚动条的默认样式,详情如下: 滚动条组成部分 1. ::-webkit-scrollbar 滚动条整体部分 2. ::-webkit ...
- 简述CGI与FASTCGI区别
CGI和FASTCGI都是服务器端与客户端进行交互的常见方式. CGI处理客户端请求,会生成一个子进程来专门调用外部程序来处理客户端请求,处理完成,子进程会随之关闭 FAST处理客户端请求时.服务器端 ...
- PTM人员(产品技术经理)
以下是一位PTM的工作总结: 责任感 作为PTM一定要有责任感,项目中的所有事情都要作为自己的事情,如果碰到有些项目中的工作没人负责,那么就是PTM的工作没有做到位. 全局观 作为PTM一定要比普 ...
- Pytest用例编写1
一.编写pytest测试样例非常简单,只需要按照下面的规则: 测试文件以test_开头(以_test结尾也可以) 测试类以Test开头,并且不能带有 __init__ 方法 测试函数以test_开 ...
- 一款免费在线转pdf的工具 和 window免费镜像
PDF爱好者的在线工具 完全免费的PDF文件在线管理工具,其功能包括:合并PDF文件.拆分PDF文件.压缩PDF文件.Office文件转换为PDF文件.PDF文件转换为JPG图片.JPG图片转换为PD ...