安全標識符(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:指任何通過 終端服務登錄的用戶。
來源:百度百科