訪問(wèn)控制是信息安全中重要的一個(gè)技術(shù)領(lǐng)域,。它定義了在信息系統(tǒng)中,,主體對(duì)于客體能夠進(jìn)行哪些操作和動(dòng)作。這里的主體,,包括用戶,、賬戶、程序,、進(jìn)程等,,而客體是指數(shù)據(jù)、文件,、程序,、功能等;操作和動(dòng)作則包括讀取,、寫入,、刪除、執(zhí)行等,。說(shuō)白了,,訪問(wèn)控制就是規(guī)定在信息系統(tǒng)中,每個(gè)用戶對(duì)不同的資源分別能做哪些操作,。由此可見(jiàn),,訪問(wèn)控制只有好不好的問(wèn)題,,而不存在有沒(méi)有的問(wèn)題。只要是信息系統(tǒng),,必定有自己的訪問(wèn)控制機(jī)制,。哪怕一個(gè)完全不設(shè)置控制的系統(tǒng),也有它的訪問(wèn)控制策略:即所有的用戶可以對(duì)所有的資源進(jìn)行所有的操作,。 目前常用的訪問(wèn)控制類型有三種: 1.自主訪問(wèn)控制模型(DAC,,Discretionary Access Control) 自主訪問(wèn)控制機(jī)制中客體的擁有者可以任意修改或授予此客體相應(yīng)的權(quán)限。我們常用的操作系統(tǒng)都采用這種機(jī)制,,比如某用戶對(duì)于其所有的文件或目錄可以隨意設(shè)定其用戶/組/其他所有者的讀/寫/執(zhí)行權(quán)限,。這一點(diǎn)我們應(yīng)該都很熟悉,比如在Windows里,,可以在文件的屬性對(duì)話框里對(duì)文件的讀寫權(quán)限進(jìn)行設(shè)置,。 自主訪問(wèn)控制最大特點(diǎn)是客體的所有者可以將權(quán)限賦予任何其他用戶,讓其他用戶也稱為客體的所有者,,并可以繼續(xù)向其他用戶授權(quán),。這種機(jī)制的好處就是靈活;缺點(diǎn)就是不夠安全,,權(quán)限的可以不受控制的傳播,,因此容易被木馬利用。 2.強(qiáng)制訪問(wèn)控制模型(MAC,,Mandatory Access Control) 強(qiáng)制訪問(wèn)控制機(jī)制中不允許客體的擁有者隨意修改或授予客體相應(yīng)的權(quán)限,,而是通過(guò)強(qiáng)制的方式為每個(gè)客體分別授予權(quán)限。而授予權(quán)限主要是依據(jù)主體和客體的安全級(jí)別,,以及具體的策略來(lái)進(jìn)行,。以強(qiáng)制訪問(wèn)控制中的BLP模型為例,它賦予每個(gè)主體和客體一個(gè)安全級(jí)別,,級(jí)別按從下到上的順序包括:無(wú)密級(jí)(Unclassified),、機(jī)密級(jí)(Confidential)、秘密級(jí)(Secret),、絕密級(jí)(Top Secret),。同時(shí)遵循“下讀/上寫”的訪問(wèn)控制模式,即對(duì)于讀操作,,主體只能讀取級(jí)別比它低的客體:秘密級(jí)(S)的主體禁止讀取絕密級(jí)(TS)客體中的內(nèi)容,,允許讀取秘密級(jí)(S)、機(jī)密級(jí)(C)和無(wú)密級(jí)(U)客體中的內(nèi)容,;對(duì)于寫操作,,主體只能往級(jí)別與它相同或比它高的客體里寫:秘密級(jí)(S)的主體禁止向機(jī)密級(jí)(C)和無(wú)密級(jí)(U)客體中進(jìn)行寫入,允許向秘密級(jí)(S)、絕密級(jí)(TS)客體中進(jìn)行寫入,。因此信息將只能沿著(U)→(C)→(S)→(TS)的方向進(jìn)行單向的流通,,從而確保系統(tǒng)保持安全的狀態(tài)。SELinux就是采用了這種機(jī)制,。 強(qiáng)制訪問(wèn)控制的優(yōu)點(diǎn)是管理集中,,根據(jù)事先定義好的安全級(jí)別實(shí)現(xiàn)嚴(yán)格的權(quán)限管理,因此,,適用于對(duì)安全性要求高的應(yīng)用環(huán)境,,是國(guó)防領(lǐng)域和政府機(jī)構(gòu)安全系統(tǒng)中最為重要的訪問(wèn)控制模型。另外,,強(qiáng)制訪問(wèn)控制通過(guò)信息的單向流動(dòng)來(lái)防止信息擴(kuò)散,,可以有效抵御帶有特洛伊木馬的應(yīng)用程序?qū)ο到y(tǒng)保密性的攻擊。強(qiáng)制訪問(wèn)控制的缺點(diǎn)在于安全級(jí)別間強(qiáng)制性太強(qiáng),,權(quán)限的變更非常不方便,,很多情況下主體或客體安全級(jí)別的劃分與現(xiàn)實(shí)要求無(wú)法一致,造成系統(tǒng)管理不便,,因此,,應(yīng)用領(lǐng)域比較窄,使用不靈活,,一般只適合政府機(jī)構(gòu)和軍事領(lǐng)域等具有嚴(yán)格機(jī)密性要求的行業(yè)或領(lǐng)域,。 3.基于角色的訪問(wèn)控制模型(Role-Based Access Control,RBAC) 我個(gè)人認(rèn)為這種訪問(wèn)控制機(jī)制才是我們開(kāi)發(fā)工程師最應(yīng)該關(guān)注的,。此模型中對(duì)系統(tǒng)操作的各種權(quán)限不是直接授予具體的用戶,而是在用戶集合與權(quán)限集合之間建立一個(gè)角色集合,,每一種角色對(duì)應(yīng)一組相應(yīng)的權(quán)限,。一旦用戶被分配了適當(dāng)?shù)慕巧螅撚脩艟蛽碛写私巧乃胁僮鳈?quán)限,。這樣做的好處是,,不必在每次創(chuàng)建用戶時(shí)都進(jìn)行分配權(quán)限的操作,只要分配用戶相應(yīng)的角色即可,,而且角色的權(quán)限變更比用戶的權(quán)限變更要少得多,,這樣將簡(jiǎn)化用戶的權(quán)限管理,減少系統(tǒng)的開(kāi)銷,。經(jīng)過(guò)發(fā)展,,RBAC模型也加入了角色之間權(quán)限繼承及相互約束的機(jī)制,越來(lái)越契合復(fù)雜的業(yè)務(wù)系統(tǒng)實(shí)際控制需要,,做到了安全性與靈活性的統(tǒng)一,。大部分成熟的應(yīng)用系統(tǒng)都采用了基于角色的訪問(wèn)控制模型。通過(guò)設(shè)置用戶,角色,,權(quán)限三層,,可以使控制粒度做到很細(xì),又能減少控制工作的繁復(fù)程度,,并且可以根據(jù)實(shí)際情況的變化靈活設(shè)置不同的控制策略,。 除了上面三個(gè)常用控制類型模型外,實(shí)踐中還有基于任務(wù)的訪問(wèn)控制模型(Task-based Access Control Model,,TBAC),,基于角色的訪問(wèn)控制模型(Role-based Access Model,RBAC),??偟膩?lái)說(shuō),訪問(wèn)控制也是一門復(fù)雜嚴(yán)謹(jǐn)?shù)膶W(xué)科,。這篇文章只能是個(gè)簡(jiǎn)要介紹,,如果想認(rèn)真鉆研,那還有無(wú)數(shù)概念,、模型,、理論在等著你。 |
|
來(lái)自: 吳雨虹2kzpi83a > 《密碼學(xué)》