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