1. 程式人生 > >Windows下訪問控制管理

Windows下訪問控制管理

dac tps aud 線程 技術分享 訪問控制列表 title secure 分享

轉載自: https://blog.csdn.net/u011801161/article/details/45567289

Windows訪問控制概述:
Windows訪問控制中最主要的部分:訪問令牌(Access Token)和安全描述符(Security Descriptor),window通過查看訪問者AT與被訪問對象SD中的內容來確定訪問者是否能訪問對象。

Windows訪問控制概念介紹:
① SID:Secure Identifier(安全標識符),每個用戶和賬戶組都有一個唯一的SID(通常情況下唯一)。它是標識用戶、用戶組和計算機賬戶唯一的號碼,由計算機名、當前時間、當前用戶態線程的CPU耗費時間三個參數來確定。
② Access Token:與特定的windows賬戶關聯,賬戶環境下啟動的所有進程都會獲得該令牌的副本,進程中的線程默認獲得這個令牌。由關聯賬戶的SID、當前登錄賬戶所屬組的SID列表、受限制的SID列表、當前登錄賬戶與所屬組的Privilege列表組成。
③ Security Descriptor:安全描述符,與被訪問對象關聯。由對象所有者的SID、屬組SID、DACL、SACL組成。DACL(隨機訪問控制列表)是SD最重要的一部分,描述允許或拒絕特定用戶或組的某些訪問權限,它包含零個或多個訪問控制實體(ACE,Access Control Entry)。
④ ACE:訪問控制實體,用於指定特定用戶/組的訪問權限,由SID、SIZE、Type、Access Mask、Inheritance/Audit Flags組成。

Windows訪問控制流程圖:
當一個線程嘗試去訪問一個對象時,系統會檢查線程持有的令牌以及被訪問對象的安全描述符中的DACL。
如果安全描述符中不存在DACL,則系統會允許線程進行訪問。如果存在DACL,系統會順序遍歷DACL中的每個ACE,檢查ACE中的SID在線程的令牌中是否存在。以訪問者中的User SID或Group SID作為關鍵字查詢被訪問對象中的DACL。順序:先查詢類型為DENY的ACE,若命中且權限符合則訪問拒絕;未命中再在ALLOWED類型的ACE中查詢,若命中且類型符合則可以訪問;以上兩步後還沒命中那麽訪問拒絕。
技術分享圖片

這篇文章沒有介紹SACL, 看其他文章說, SACL主要用來對一些行為進行記錄操作

Windows下訪問控制管理