C/C++教程

Windows中的SID(Security Identifiers)是什么

本文主要是介绍Windows中的SID(Security Identifiers)是什么,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

  SID也就是安全标识符(Security Identifiers),是标识用户、组和计算机帐户的唯一的号码。在第一次创建该帐户时,将给网络上的每一个帐户发布一个唯一的 SID。Windows 2000 中的内部进程将引用帐户的 SID 而不是帐户的用户或组名。如果创建帐户,再删除帐户,然后使用相同的用户名创建另一个帐户,则新帐户将不具有授权给前一个帐户的权力或权限,原因是该帐户具有不同的 SID 号。安全标识符也被称为安全 ID 或 SID。  


SID的作用

   用户通过验证后,登陆进程会给用户一个访问令牌,该令牌相当于用户访问系统资源的票证,当用户试图访问系统资源时,将访问令牌提供给 Windows NT,然后 Windows NT 检查用户试图访问对象上的访问控制列表。如果用户被允许访问该对象,Windows NT将会分配给用户适当的访问权限。访问令牌是用户在通过验证的时候有登陆进程所提供的,所以改变用户的权限需要注销后重新登陆,重新获取访问令牌。  


SID号码的组成 

     如果存在两个同样SID的用户,这两个帐户将被鉴别为同一个帐户,原理上如果帐户无限制增加的时候,会产生同样的SID,在通常的情况下SID是唯一的,他由计算机名、当前时间、当前用户态线程的CPU耗费时间的总和三个参数决定以保证它的唯一性。  
一个完整的SID包括:

 • 用户和组的安全描述

 • 48-bit的ID authority

 • 修订版本

 • 可变的验证值Variable sub-authority values 


例:S-1-5-21-310440588-250036847-580389505-500 

我们来先分析这个重要的SID。第一项S表示该字符串是SID;第二项是SID的版本号,对于2000来说,这个就是 
1;然后是标志符的颁发机构(identifier authority),对于2000内的帐户,颁发机构就是NT,值是5。然后表示一系列的子颁发机构,前面几项是标志域的,最后一个标志着域内的帐户和组。

vs2022 C# 10 .net6.0环境吓获取SID:

 

要引用命名空间 System.Security.Principal;
WindowsIdentity currentUser = WindowsIdentity.GetCurrent();
string sid = currentUser.User.ToString();
输出:S-1-5-21-1652012128-631332258-3476023946-1001

或者cmd 命令行输入 :whoami /user 

下面是SID末尾RID值的列表,括号内为16进制:

 Built-In Users 

DOMAINNAME\ADMINISTRATOR 

S-1-5-21-917267712-1342860078-1792151419-500 (=0x1F4) 

DOMAINNAME\GUEST 

S-1-5-21-917267712-1342860078-1792151419-501 (=0x1F5)

 

Built-In Global Groups,

DOMAINNAME\DOMAIN ADMINS
S-1-5-21-917267712-1342860078-1792151419-512 (=0x200)
 DOMAINNAME\DOMAIN USERS
S-1-5-21-917267712-1342860078-1792151419-513 (=0x201)
 DOMAINNAME\DOMAIN GUESTS
S-1-5-21-917267712-1342860078-1792151419-514 (=0x202)

 

Built-In Local Groups 

BUILTIN\ADMINISTRATORS 

S-1-5-32-544 (=0x220)

 BUILTIN\USERS 

S-1-5-32-545 (=0x221)

 BUILTIN\GUESTS 

S-1-5-32-546 (=0x222) 

BUILTIN\ACCOUNT OPERATORS 

S-1-5-32-548 (=0x224) 

BUILTIN\SERVER OPERATORS 

S-1-5-32-549 (=0x225)

 BUILTIN\PRINT OPERATORS 

S-1-5-32-550 (=0x226)

BUILTIN\BACKUP OPERATORS 

S-1-5-32-551 (=0x227) 

BUILTIN\REPLICATOR 

S-1-5-32-552 (=0x228)

 

Special Groups 

\CREATOR OWNER 

S-1-3-0+ A1 

 \EVERYONE 

S-1-1-0 

NT AUTHORITY\NETWORK 

S-1-5-2 

NT AUTHORITY\INTERACTIVE 

S-1-5-42

 NT AUTHORITY\SYSTEM 

S-1-5-185 

NT AUTHORITY\authenticated users 

S-1-5-11

 

 参考:https://rootclay.gitbook.io/windows-access-control/qi-an-quan-biao-shi-fu

这篇关于Windows中的SID(Security Identifiers)是什么的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!