權(quán)限管理技術(shù)小結(jié)

基礎(chǔ)技術(shù)簡介

對于計算機系統(tǒng)的訪問控制瘦穆,一般有以下幾種訪問機制和類型:

1. 自主訪問控制(DAC: Discretionary Access Control)

自主訪問控制 Wikipedia
根據(jù)主體(如用戶烦感、進程或 I/O 設(shè)備等)的身份和所屬組來限制對客體的訪問。所謂的自主,是因為擁有訪問權(quán)限的主體修肠,可以直接(或間接)地將訪問權(quán)限賦予其他主體(除非受到強制訪問控制的限制)

自主訪問控制可以讓用戶或管理員自主定義資源(如數(shù)據(jù)庫、操作系統(tǒng)文件等)的訪問權(quán)限,其中訪問權(quán)限通常由 ACL(Access Control List)訪問控制列表來定義谈截。DAC 的一個典型例子為 Windows 的文件權(quán)限管理,用戶可定義某一個文件的訪問控制列表如下:

Windows_DAC.png

同時自主訪問控制允許擁有客體權(quán)限的用戶將權(quán)限分配給其它用戶涧偷,這也是 自主 的主要含義簸喂。

但由于能夠自主傳遞權(quán)限,在傳遞的過程中燎潮,可能導(dǎo)致用戶間接獲得本不該具有的權(quán)限喻鳄,因此自主訪問控制也是一種比較寬松的訪問控制。

2. 強制訪問控制(MAC: Mandatory Access Control)

強制訪問控制 Wikipedia
主體和對象各自具有一組安全屬性确封。每當(dāng)主體嘗試訪問對象時除呵,都會由操作系統(tǒng)內(nèi)核強制施行授權(quán)規(guī)則——檢查安全屬性并決定是否可進行訪問。通過強制訪問控制爪喘,安全策略由安全策略管理員集中控制颜曾;用戶無權(quán)覆蓋策略,例如不能給被否決而受到限制的文件授予訪問權(quán)限秉剑。

在歷史上泛豪,MAC 強制訪問控制經(jīng)常用在專業(yè)的軍用系統(tǒng)中,因此 MAC 有著高度嚴(yán)格的權(quán)限約束侦鹏。MAC 強制訪問控制只可由系統(tǒng)定義權(quán)限規(guī)則且由系統(tǒng)強制執(zhí)行诡曙,用戶與他們的進程不可修改權(quán)限規(guī)則。

MAC 強制訪問控制的實現(xiàn)有 Linux 的 SELinuxAppArmor略水。

MAC 的權(quán)限控制嚴(yán)格价卤,但同時靈活性不高房维,對于一般的互聯(lián)網(wǎng)軟件的適用度不高浇衬。

3. 基于屬性的訪問控制(ABAC: Attribute-Based Access Control)

Attribute-based access control Wikipedia
ABAC 也被稱為 PBAC(Policy-Based Access Control)质帅,其定義了訪問控制范例,通過使用屬性組合的策略來向用戶授予訪問權(quán)限慷暂。

我們知道現(xiàn)實中存在著各種實體,不同實體可通過不同的實體特性進行區(qū)分亡蓉,這些實體特性并稱為屬性录豺。

在一個權(quán)限系統(tǒng)中,可能會涉及到主體盖文、客體嘱蛋、權(quán)限、環(huán)境等概念五续,而這些概念實際上均可視為實體洒敏,更為重要的是可以通過屬性來描述表達這些實體。即:使用屬性統(tǒng)一描述和表達權(quán)限控制所涉及到的各類實體(其中包括訪問策略也同樣使用屬性表達)疙驾。

ABAC 被視為權(quán)限控制的未來凶伙,與下文即將介紹的 RBAC 基于角色的訪問控制相比,ABAC 擁有更為靈活與更為強大的權(quán)限控制能力它碎。

尤其是在分布式的開放環(huán)境中函荣,系統(tǒng)可能分布在不同的安全域之內(nèi),相互之間只能知曉彼此的部分信息扳肛。此時基于角色的權(quán)限控制將會存在極大的局限性:不同系統(tǒng)之間角色模型不可能完全重合傻挂,建立關(guān)聯(lián)又將極其復(fù)雜。

但如果是以屬性為粒度挖息,那么系統(tǒng)之間則完全不需要了解彼此的“調(diào)用方”金拒,權(quán)限判斷完全基于“屬性”。這使得 ABAC 具有足夠的靈活性和可擴展性套腹,提高了系統(tǒng)之間的可交互性和安全性绪抛。

因此 ABAC 在分布式開發(fā)環(huán)境下,具有傳統(tǒng)訪問控制不具有的細(xì)粒度控制能力和大規(guī)模主體動態(tài)授權(quán)能力沉迹,同時擁有極強的靈活性和可擴展性睦疫。但基于屬性進行實體描述、策略表達鞭呕、權(quán)限判斷等需要較為復(fù)雜的模型設(shè)計與工程實現(xiàn)蛤育,固目前并沒有在工程上得到廣泛應(yīng)用(如 Kubernetes 曾使用 ABAC,但由于實現(xiàn)的復(fù)雜且難以理解葫松,之后轉(zhuǎn)而使用 RBAC)瓦糕。而 RBAC 依然是目前應(yīng)用最為廣泛和普遍的權(quán)限控制(RBAC 其實也只是 ABAC 的一種特例,角色 ID 可視為一個屬性)腋么。

4. 基于角色的訪問控制(RBAC: Role-Based Access Control)
基于角色的訪問控制是較為靈活也較為容易理解的一種訪問控制策略咕娄,其通過權(quán)限賦予角色,角色賦予用戶的方式將角色與用戶解耦珊擂,從而用戶與權(quán)限的靈活關(guān)聯(lián)圣勒。

基于角色的訪問控制是目前應(yīng)用最為廣泛的權(quán)限控制策略费变,固下文將單獨詳細(xì)的介紹該策略。

RBAC 訪問控制

RBAC 基于角色的訪問控制主要涉及到三種實體:

  • 權(quán)限:對資源的訪問權(quán)限圣贸,比如對某文件的讀挚歧、更新等權(quán)限。在一些系統(tǒng)實現(xiàn)中吁峻,喜歡將其劃分為頁面權(quán)限滑负、操作權(quán)限、數(shù)據(jù)權(quán)限等類型用含。但想到標(biāo)簽包含了分類矮慕,所以實際上是否可以不劃分為頁面權(quán)限、操作權(quán)限啄骇、數(shù)據(jù)權(quán)限痴鳄。而只是在資源上打上頁面、操作缸夹、數(shù)據(jù)等標(biāo)簽夏跷?
  • 角色:權(quán)限的集合
  • 用戶:可被授予不同的角色

其中用戶可以有 ”組“ 的概念,將用戶分配到某個用戶組明未,即可擁有該用戶組下的權(quán)限,從而省去每個權(quán)限單獨授予的步驟壹蔓。

同時權(quán)限也可有 “組” 的概念趟妥,可以將一些使用場景相對固定的一組功能或權(quán)限封裝成組。將其賦予某個角色佣蓉,該角色將擁有該組下的所有權(quán)限披摄。但是一般而言系統(tǒng)的權(quán)限是可控,所以實際情況中較少使用權(quán)限組勇凭。

RBAC 的實現(xiàn)模型

RBAC 在不同場景下會有一定的不同擴展疚膊,因此衍生出了幾種不同的實現(xiàn)模型:

1. RBAC0
最基礎(chǔ)、最原始的 RBAC 實現(xiàn)模型虾标,同時也是下文中其它實現(xiàn)模型的基礎(chǔ)寓盗。

RBAC0 模型如下圖所示:

RBAC0.png

其中用戶與角色,角色與權(quán)限為多對多的關(guān)系璧函,用戶可擁有不同角色傀蚌,角色可包含不同權(quán)限。

RBAC0 包含了 RBAC 最基本的要素蘸吓,通過角色實現(xiàn)了用戶與權(quán)限的解耦善炫,但除此之外也沒有其它多余的關(guān)系或約束。

2. RBAC1
在許多業(yè)務(wù)場景中库继,角色之間是具有上下級或繼承的關(guān)系的箩艺。例如在一家中大型企業(yè)里窜醉,通常有員工、組長艺谆、部門總經(jīng)理等角色榨惰,且角色之間存在著上下級關(guān)系。

RBAC1 在 RBAC0 的基礎(chǔ)上引入了角色的繼承關(guān)系擂涛,能夠使的角色之間層次更加分明读串,實現(xiàn)角色的分層分組。

RBAC1 模型如下圖所示:

RBAC1.png

3. RBAC2
角色之間除了簡單的繼承關(guān)系撒妈,有時還存在一些約束關(guān)系恢暖。例如某些角色不能同時存在或擁有,即角色之間是互斥的狰右。

RBAC2 在 RBAC0 的基礎(chǔ)上引入了對角色的約束和限制杰捂。這些限制可大體分為兩類:

  • 靜態(tài)職責(zé)分離 SSD
    • 互斥角色:不能同時擁有互斥角色
    • 基數(shù)約束:用戶擁有的角色數(shù)有一定限制,即一個用戶的角色數(shù)量是有限的棋蚌。
    • 先決條件角色:想要擁有某個角色嫁佳,需要事先擁有另一個先決角色(通常是低一級的角色)
  • 動態(tài)職責(zé)分離 DSD
    • 運行時互斥,靜態(tài)時可以有兩種角色谷暮,但運行時不能同時激活運行時互斥角色蒿往。

RBAC2 模型如下圖所示:

RBAC2.png

4. RBAC3

即 RBAC1 與 RBAC2 的合集,在對角色進行分層的同時湿弦,也對角色增加各種約束和限制瓤漏。

RBAC3 模型如下圖所示:

RBAC3.png

參考資料

有贊權(quán)限系統(tǒng)(SAM)
自主訪問控制 Wikipedia
強制訪問控制 Wikipedia
Trusted Extensions 提供自主訪問控制和強制訪問控制
ABAC Wikipedia
基于屬性的訪問控制研究進展 王小明,付紅颊埃,張立臣 - 電子學(xué)報
基于屬性的訪問控制模型 李曉峰蔬充,馮登國,陳朝武班利,房子河 - 通信學(xué)報, 2008
Ravi S. Sandhu... “Role-basedaccess control models,” IEEE Computer, 29(2):38-47, February 1996.
What is the difference between RBAC and DAC/ACL?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末饥漫,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子罗标,更是在濱河造成了極大的恐慌庸队,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件闯割,死亡現(xiàn)場離奇詭異皿哨,居然都是意外死亡,警方通過查閱死者的電腦和手機纽谒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進店門证膨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人鼓黔,你說我怎么就攤上這事央勒〔患” “怎么了?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵崔步,是天一觀的道長稳吮。 經(jīng)常有香客問我,道長井濒,這世上最難降的妖魔是什么灶似? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮瑞你,結(jié)果婚禮上酪惭,老公的妹妹穿的比我還像新娘。我一直安慰自己者甲,他們只是感情好春感,可當(dāng)我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著虏缸,像睡著了一般鲫懒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上刽辙,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天窥岩,我揣著相機與錄音,去河邊找鬼宰缤。 笑死谦秧,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的撵溃。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼锥累,長吁一口氣:“原來是場噩夢啊……” “哼缘挑!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起桶略,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤语淘,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后际歼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體惶翻,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年鹅心,在試婚紗的時候發(fā)現(xiàn)自己被綠了吕粗。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡旭愧,死狀恐怖颅筋,靈堂內(nèi)的尸體忽然破棺而出宙暇,到底是詐尸還是另有隱情,我是刑警寧澤议泵,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布占贫,位于F島的核電站,受9級特大地震影響先口,放射性物質(zhì)發(fā)生泄漏型奥。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一碉京、第九天 我趴在偏房一處隱蔽的房頂上張望厢汹。 院中可真熱鬧,春花似錦收夸、人聲如沸坑匠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽厘灼。三九已至,卻和暖如春咽瓷,著一層夾襖步出監(jiān)牢的瞬間设凹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工茅姜, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留闪朱,地道東北人。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓钻洒,卻偏偏與公主長得像奋姿,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子素标,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內(nèi)容