一、訪問控制的基本概念
1)基本目標:依據(jù)授權對提出的資源訪問請求進行控制,防止對任何資源進行未授權的訪問。
2)訪問控制模型基本組成:
3)三要素:
主體(subject):訪問的發(fā)起者,通常為進程或用戶。
客體(object):可供訪問的各種軟硬件資源。
策略(policy):定義了主體對客體的權限,是訪問控制的核心。
4)訪問控制框架:
二、自主訪問控制DAC
1)自主訪問控制(Discretionary Access Control, DAC):是一種最為普遍的訪問控制手段,是指對某個客體具有擁有權(或控制權)的主體能夠?qū)υ摽腕w的一種訪問權或多種訪問權自主地授予其它主體,并隨時可以將這些權限回收。
所謂自主就是指具有某種訪問權力的主體能夠自己決定是否將訪問權限授予其他主體。
2)特點:根據(jù)主體的身份和授權來決定訪問模式。
3)缺點:安全性差;用戶數(shù)量多時,訪問控制策略會很龐大;修改麻煩。
三、強制訪問控制MAC
1)強制訪問控制(Mandatory Access Control,MAC):系統(tǒng)對所有主體及其所控制的客體(進程、文件、段、設備等)指定敏感標記,系統(tǒng)根據(jù)主體和客體的敏感標記來決定訪問模式。敏感標記一般由密級和范疇組成。如:
所謂“強制”是指安全標簽由系統(tǒng)管理員人為設置或由操作系統(tǒng)設置,用戶和他們的進程不能修改。
MAC通過安全標簽實現(xiàn)單向信息流通模式。
2)BLP(Bell-LaPadula)模型——保護機密性
- 每個主體和客體都劃分一個密級 A;
- 每個主體和客體都劃分一個業(yè)務范圍 C;
- 設SC為全體安全級別<A,C>的集合:
????????SC= <A,C>
- 定義二元關系≤如下,并稱關系≤為支配 :
????????SC= <A,C> ,?SC’=<A’,C’>,
? ? ? ? 若 A≤A’ and?C?C’
? ? ? ??則?SC ≤ SC’,稱為SC‘支配SC。
- 在[SC, ≤]中定義運算⊕、⊙如下:
<A,C> ⊕?<A’,C’>? =? <max(A,A’),C ∪ C’> ,
<A,C> ⊙ <A’,C’>? =? <min(A,A’),C ∩ C’> 。?????
- 向下讀:主體s對客體o具有讀訪問權-->當且僅當s支配o,即<As,Cs> ≥?<Ao,Co>。
?? ? ? ?例如:設軍官A和文件F1的安全級別為
????????F1:< secret ,NATO 、NUCLEAR >,
????????A:< topsecret ,NATO 、NUCLEAR 、NMD>,
????????則軍官A可以閱讀文件F1。?
- 向上寫:主體s對客體o具有寫訪問權-->當且僅當o支配s,即<As,Cs> ≤ <Ao,Co>。
例如,設軍官B和文件F2的安全級別為
F2:< secret ,NATO 、NUCLEAR >,
B:< topsecret ,NATO 、NUCLEAR 、NMD>,
則軍官B不可以寫文件F2。
- 優(yōu)點:更安全,可以阻止某些類型的木馬攻擊。
- 缺點:對用戶限制較多,靈活性較差;主要保護機密性,缺乏對完整性的保護。
3)BIBA完整性模型 ——保護完整性
設I是表示主客體完整性等級的一個函數(shù),則訪問規(guī)則是:
- 寫規(guī)則(不能向上寫):對任意的主體s和客體o,當且僅當l(s) ≥?l(o),允許寫操作。
這一規(guī)則不允許一個主體向更高等級的可信任客體進行寫入,以防止不正確的或者是偽造的信息。
- 讀規(guī)則(不能向下讀):對任意的主體s和客體o,當且僅當l(s) ≤?l(o),允許讀操作。
?這一規(guī)則不允許一個主體讀更低層次的數(shù)據(jù),防止低級數(shù)據(jù)“污染”主體,降低其完整性級別。
- 優(yōu)點:簡單性;容易與BLP模型結合(在標記中增加完整性標記)。
- 缺點:完整性標簽確定的困難性;實施的復雜性。
4)DAC和MAC的應用
- 在C級操作系統(tǒng)中應用DAC訪問控制模型。
- 在B級以上操作系統(tǒng)中應用MAC,或?qū)AC和DAC聯(lián)合應用。
四、基于角色的訪問控制RBAC
基于角色的訪問控制(Role-Based Access Control,RBAC)的基本思想是:根據(jù)用戶擔任的角色來確定用戶在系統(tǒng)中的訪問權限。一個用戶必須扮演某種角色,還必須激活這一角色,才能對一個客體進行訪問或執(zhí)行某種操作。如圖所示:
1)RBAC的基本概念?:
- 用戶(User):訪問計算機資源的主體。用戶集合為 U。
- 角色(Role):代表一種資格。角色集合為 R.
- 權限(Permission):對客體的操作權力。權限集合為 P.
- 用戶分配(User Assignment):將用戶與角色關聯(lián)。用戶分配集合為UA={(u,r)|u∈U, r∈R} 。用戶u與角色r關聯(lián)后,將擁有r的權限。
- 權限分配(Permission Assignm):將角色與權限關聯(lián)。權限分配集合為PA={(p,r)|p∈P, r∈R} 。權限 p與角色 r關聯(lián)后,角色 r將擁有權限 p。
- 激活角色(Active?Role):角色只有激活才能起作用。通過會話激活角色。角色激活要滿足安全約束。
- 會話(Session):用戶要訪問系統(tǒng)資源時,必須先建立一個會話。一次會話只對應一個用戶,一次會話可激活多個角色。
2)RBAC的基本機制:
- 授權機制:
? ? ? ? a.分為兩步:將權限分配給角色(權限分配)-->將角色分配給用戶(用戶分配)。
? ? ? ? b.授權要滿足安全約束條件。
? ? ? ? c.角色分級,高級角色可繼承低級角色的訪問權限。
- 用戶與角色的關系(多對多)
? ? ? ? a.一個用戶可擔任多個角色
? ? ? ? b.一個角色可分配給多個用戶
- 角色和權限的關系(多對多)
? ? ? ? a.一個角色可擁有多個權限
? ? ? ? b.一個權限可分配給多個角色
- 角色和角色的關系(分級關系)
? ? ? ? a.直接繼承:相鄰角色之間的繼承
????????b.間接繼承:非相鄰角色之間的繼承
- 安全約束
? ? ? ? a.職責分離約束:合理劃分任務和相關權限,以保證多用戶協(xié)同工作的安全性。
? ? ? ? b.角色互斥約束:如果一組角色是互斥的,那么一個用戶或同一個訪問權限只能被分配給其中的一個角色。利用角色互斥約束可實現(xiàn)職責分離。
? ? ? ? c.最小特權約束:只給角色分配完成某工作所需的最小權力。
? ? ? ? d.角色激活約束:
????????激活數(shù)約束:限制一個角色同時授權和激活的數(shù)量。
????????激活時間約束:限制一個角色激活的時間。
3)RBAC96模型:包括4個層次
- RBAC0:基礎模型
- RBAC1:在RBAC0的基礎上增加了角色分級
- RBAC2:在RBAC0的基礎上增加了角色和權限約束
- RBAC3:集成了RBAC1和RBAC2
4)優(yōu)缺點:
- 優(yōu)點:便于授權管理;增強了安全性;便于工作分級;便于任務分擔。
- 缺點:復雜的權限校驗,對性能有一定影響。
五、訪問控制機制
0)訪問控制矩陣:
矩陣的每一行對應一個主體,每一列對應一個客體。行與列交叉點上的元素???表示主體對客體所擁有的所有權力的集合。
1)訪問控制列表(Access Control List, ACL):
通常將訪問控制矩陣表示為存在于計算機中的一張表(ACL),表示用戶對特定對象的訪問權限。一般的訪問權限包括讀文件、寫文件和執(zhí)行文件。
2)能力表
?保護能力表的幾種方法:
- 標簽:標簽有兩種狀態(tài)——set、unset。如果是set,則普通進程能夠讀這個字但不能修改。否則,普通進程能夠讀和修改這個字。只有特權模式下的處理器才能夠修改標簽。
- 受保護內(nèi)存:能力表被存儲在一個內(nèi)存頁中,進程能夠讀取但不能改變這些內(nèi)存。
- 密碼學方法: 為保證能力表的完整性,每一個能力表都有一個與之相關的密碼校驗和,該校驗和加密保存,密鑰由操作系統(tǒng)掌管。
3)鎖與鑰匙:客體由一個密鑰加密(鎖),主體擁有解密密鑰(鑰匙)。例如:
- O’=(E1(o),…… ,En(o))
???????客體O的副本被n個密鑰加密,每個主體一個密鑰。n個主體可同時訪問數(shù)據(jù)。
- O’=E1(…… En(o) …… )
???????客體O被n個密鑰迭代加密,每個主體一個密鑰。只有當n個主體的訪問請求同時發(fā)生時,數(shù)據(jù)才能夠被訪問。
4)保護環(huán):
保護環(huán)是一種層次結構的特權方式。最內(nèi)層具有最小環(huán)號的環(huán)具有最高的特權,而在最外層的具有最大環(huán)號的具有最小特權。
五、Chinese Wall模型
1)基本思想:將可能會產(chǎn)生訪問沖突的數(shù)據(jù)分成不同的數(shù)據(jù)集,任何主體同一時刻只能訪問一個數(shù)據(jù)集。
2)屬性:
- 用戶只能訪問那些與已經(jīng)擁有的信息不沖突的信息
- 主體能夠?qū)σ粋€客體寫訪問的前提,是主體未對其他數(shù)據(jù)集的客體進行讀訪問
3)清潔信息:
- 清除敏感信息
- 清潔信息可在系統(tǒng)中自由流動
六、Windows安全模型和訪問控制機制
Windows采用的是微內(nèi)核 (microkernel) 結構和模塊化的系統(tǒng)設計,安全子系統(tǒng)位于內(nèi)核模式,主要任務是身份認證和訪問控制。
1)Windows安全模型的構成
①??登錄過程 (logon process,?LP) 。接受本地用戶或者遠程用戶的登錄請求,處理用戶信息,為用戶做一些初始化工作。
②??本地安全授權機構 (local security authority,?LSA)。管理本地安全策略和審計策略,為用戶生成SID和訪問令牌,是整個安全子系統(tǒng)的核心。
③??安全賬號管理器 (security account manager,?SAM) 。維護SAM數(shù)據(jù)庫。
④??安全引用監(jiān)視器 (security reference monitor,?SRM) 。檢查存取合法性,防止非法存取和修改。
2)Windows的安全概念
①??安全標識 (security identifier,SID) 。安全標識和賬號唯一對應,在賬號創(chuàng)建時創(chuàng)建,賬號刪除時刪除,而且永不再用。安全標識與對應用戶和組的賬號信息一同存儲在SAM數(shù)據(jù)庫里。
②??訪問令牌 (access token) 。當用戶登錄時,本地安全授權機構(LSA)為用戶創(chuàng)建一個訪問令牌,包括用戶名、所在組、SID等信息。以后,用戶的所有程序都將擁有訪問令牌的拷貝。
③??主體。用戶登錄后便擁有了一個訪問令牌,用戶進行的操作和訪問令牌一同構成一個主體。
④??對象、資源、共享資源。對象的實質(zhì)是封裝了數(shù)據(jù)和處理過程的一系列信息集合體;資源是用于網(wǎng)絡環(huán)境的對象;共享資源是在網(wǎng)絡上共享的對象。
⑤??安全描述符 (security descriptor,SD)?。Windows系統(tǒng)為共享資源創(chuàng)建的安全描述符包含了該對象的一組安全屬性,分為4個部分:
- 擁有者SID
- 對象所在組SID
- 自主訪問控制表 (DACL),該對象的訪問控制表,由對象的所有者控制。
- 系統(tǒng)訪問控制表 (SACL),定義操作系統(tǒng)將產(chǎn)生何種審計信息,由系統(tǒng)的安全管理員控制。
其中,安全描述符中的每一個訪問控制表 (ACL) 都由訪問控制項 (ACEs) 組成,用來描述用戶或者組對某對象的訪問或?qū)徲嫏嘞?/span>。
ACEs權限包含:讀、修改、執(zhí)行、完全控制等。
ACEs授權類型:Access Allowed、Access Denied和System Audit。前兩種用于自主訪問控制;后一種用于記錄安全日志。
⑥? 安全標識SID?VS 安全描述符
安全標識SID——與訪問主體(賬號)一一對應。
安全描述符——包含訪問客體(對象/資源)的安全屬性。
3)Windows的訪問控制過程
①??當一個賬號被創(chuàng)建時,Windows為它分配一個SID,并與其他賬號信息一起存入SAM數(shù)據(jù)庫。
②??每次用戶登錄時,登錄主機 (通常為工作站) 的系統(tǒng)首先把用戶輸入的用戶名、口令和用戶希望登錄的服務器域信息送給安全賬號管理器,安全賬號管理器將這些信息與SAM數(shù)據(jù)庫中的信息進行比較。
③? 若比較結果匹配,服務器發(fā)給工作站允許訪問的信息,并返回用戶的SID和用戶所在組的SID,工作站系統(tǒng)為用戶生成一個進程。
④??然后,本地安全授權機構(LSA)為用戶創(chuàng)建訪問令牌,訪問令牌中有當前用戶的SID,用戶所在組的SID以及一些權限標志(Privilege)。 此后,用戶每新建一個進程,都將訪問令牌復制作為該進程的訪問令牌。
⑤??當用戶或者用戶的進程要訪問某個對象時,安全引用監(jiān)視器(SRM)將用戶/進程的訪問令牌中的SID與對象安全描述符中的自主訪問控制表進行比較,從而決定用戶是否有權訪問對象。
⑥? SID VS 訪問令牌
SID對應賬號的整個有效期,在賬號創(chuàng)建時創(chuàng)建,賬號刪除時刪除。
訪問令牌只對應某一次賬號登錄(系統(tǒng)出問題后重啟)。
七、Linux基本訪問控制機制
1)Linux與Windows的異同
相同點:自主訪問控制
不同點:
Windos的訪問控制是通過ACL實現(xiàn)的。
Linux的訪問控制策略一般通過文件系統(tǒng)實現(xiàn)。文件系統(tǒng)提供了三種基本權限:讀(r)、寫(w)和執(zhí)行(x)。每個文件對應三種特定的用戶或用戶組,分別是擁有者,組成員,其他用戶。用戶組體現(xiàn)了一點角色的概念。
2)用戶和組
- /etc/passwd? ??/etc/gpasswd是系統(tǒng)用戶(組)配置文件,存儲了系統(tǒng)中所有用戶(組)的基本信息
- /etc/shadow? ? /etc/gshadow文件用于存儲Linux系統(tǒng)中用戶的密碼信息,又稱為“影子文件”
3)文件權限
- 屬主、屬組、其他
- 讀、寫、執(zhí)行
- 兩種表示形式:數(shù)字(0~7)、字母(rwx)
4)Umask掩碼:設置用戶創(chuàng)建目錄和文件時的默認權限。
例如:Umask022,對應的目錄權限是777-022=755,文件權限是666-022=644。
5)SUID (Set User ID)?/ SGID (Set Group?ID):使文件在執(zhí)行時具有文件所有者或?qū)俳M的權限。
八、SELinux
1)基本概念:SELinux是Security-Enhanced Linux的簡稱,是一種基于 域-類型 模型(domain-type)的強制訪問控制(MAC)安全系統(tǒng)。
2)傳統(tǒng)Linux的不足:
- 存在特權用戶root:任何人只要得到root的權限,對于整個系統(tǒng)都可以為所欲為。這一點Windows也一樣。
- 對于文件的訪問權劃分不夠細:在Linux系統(tǒng)里,對于文件的操作,只有「所有者」,「所有組」,「其他」這3類的劃分。
- SUID程序的權限升級:如果設置了SUID權限的程序有了漏洞的話,很容易被攻擊者所利用。
- DAC(Discretionary Access Control)問題:文件目錄的所有者可以對文件進行所有的操作,這給系統(tǒng)整體的管理帶來不便。
3)SELinux的優(yōu)點:
- 更嚴格和細粒度的訪問控制
- 對進程和用戶只賦予最小的權限
- 防止權限升級
4)SELinux安全策略的分類——MAC、TE
TE(Type Enforcement):對所有的文件都賦予一個叫type的文件類型標簽,對于所有的進程也賦予一個叫domain的標簽。訪問控制授權的依據(jù)主要是域?qū)︻愋退鶕碛械脑L問權限。
5)SELinux的安全上下文:在SELinux當中,所有操作系統(tǒng)訪問控制都是以關聯(lián)的客體和主體的某種訪問控制屬性為基礎。文章來源:http://www.zghlxwxcb.cn/news/detail-640460.html
- 這種訪問控制屬性叫做安全上下文
- 所有的客體以及主體都有與其有關聯(lián)的安全上下文
- 一個安全上下文由三部分組成:用戶、角色和類型標識符
6)SELinux的三種狀態(tài):文章來源地址http://www.zghlxwxcb.cn/news/detail-640460.html
- Enforcing:強制模式,只要是違反安全策略的行動都會被禁止,并作為內(nèi)核信息記錄。
- Permissive:寬容模式,違反策略的行動不會被禁止,但是會提示警告信息。
- Disabled:禁用SELinux。
到了這里,關于信息安全系統(tǒng)導論第四章訪問控制的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!