A Cooly Weblog

             ::  ::  ::  ::  :: 管理

          基于角色的訪問控制RBAC

          Posted on 2007-07-04 12:10 acooly 閱讀(2518) 評論(0)  編輯  收藏 所屬分類: 技術名詞解釋
          1.概述

            最近,隨著電子商務和電子政務的發展,網絡安全已成為研發的重點和熱點。信息的完整性、機密性、身份鑒別和不可否認性構成了信息安全的四要 素。非對稱加密算法從理論和實踐上都可以保證身份的有效性和不可否認性,而要保證軟件系統、數據庫和信息網絡的完整性、和機密性,至今還沒有一個行之有效 的解決方案。如公司資源的訛誤,信息的未授權泄漏或者失竊,以及被非法篡改都是因為沒有保證信息的機密性和完整性而引起的。它們不僅破壞了組織的操作,并 有可能涉及到金融,法律,人員安全,個人隱私和國家機密方面,而造成重大的損失。

            當今最著名的美國計算機安全標準是可信計算機系統評估標準(TCSEC)。其中一個內容就是要阻止未被授權而瀏覽機密信息。TCSEC規定了 兩個訪問控制類型:自主訪問控制(DAC)和強制訪問控制(MAC)。DAC是指主體可以自主地將訪問權限或者訪問權限的某個子集授予其他主體。主要是某 些用戶(特定客體的用戶或具有指定特權的用戶)規定別的用戶能以怎樣的方式訪問客體。它主要滿足商業和政府的安全需要,以及單級軍事應用。但是由于它的控 制是自主的,所以也可能會因為權限的傳遞而泄漏信息。另外,如果合法用戶可以任意運行一個程序來修改他擁有的文件存取控制信息,而操作系統無法區分這種修 改是用戶自己的操作,還是惡意程序的非法操作,解決辦法就是通過強加一些不可逾越的訪問限制。因此,又提出了一種更強有力的訪問控制手段,即強制訪問控制 (MAC),但是它主要用于多級安全軍事應用,很少用于其他方面。現今人們在MAC基礎上提出基于角色的訪問控制(RBAC),它是一種強制訪問控制形 式,但它不是基于多級安全需求。其策略是根據用戶在組織內部的角色制定的。用戶不能任意的將訪問權限傳遞給其他用戶。這是RBAC和DAC之間最基本的不 同。

            基于角色訪問控制(RBAC)模型是目前國際上流行的先進的安全訪問控制方法。它通過分配和取消角色來完成用戶權限的授予和取消,并且提供角 色分配規則。安全管理人員根據需要定義各種角色,并設置合適的訪問權限,而用戶根據其責任和資歷再被指派為不同的角色。這樣,整個訪問控制過程就分成兩個 部分,即訪問權限與角色相關聯,角色再與用戶關聯,從而實現了用戶與訪問權限的邏輯分離。

            由于實現了用戶與訪問權限的邏輯分離,基于角色的策略極大的方便了權限管理。例如,如果一個用戶的職位發生變化,只要將用戶當前的角色去掉, 加入代表新職務或新任務的角色即可。研究表明,角色/權限之間的變化比角色/用戶關系之間的變化相對要慢得多,并且給用戶分配角色不需要很多技術,可以由 行政管理人員來執行,而給角色配置權限的工作比較復雜,需要一定的技術,可以由專門的技術人員來承擔,但是不給他們給用戶分配角色的權限,這與現實中的情 況正好一致。

            基于角色訪問控制可以很好的描述角色層次關系,實現最小特權原則和職責分離原則。

            2.RBAC的正式定義

            基于角色訪問控制(RBAC)的定義已經在第十五屆國際計算機安全會議上以集合的形式給出。定義如下:

            對于每一主體,激活角色是當前使用的主體:

            AR(s:subject)={主體s的激活角色}

            每一主體可被授權扮演一個或更多角色:

            RA(s:subject)={主體s的授權角色}

            每一角色可被授權執行一個或更多事務:

            TA(r:role)={授權給角色r的事務}

            主體可以執行事務。如果主體s可以在當前時間執行事務t,則預測exec(s,t)是真,否則為假:

            exec(s: subject, t: tran) =true, 如果主體s可以執行事務t。

            執行過程中的三個基本規則:

            2.1 角色分配:僅當主體選擇或被賦予一個角色,主體才能執行一個事務。

             

            身份證明和鑒別過程(例如登錄)不是一個事務。其他用戶的所有在系統上的活動都可通過事務處理。因此要求所有激活用戶具有某個激活角色。

            2.2 角色授權:主體的激活角色必須是被授權的:
          同上面的(1)一起,規則保證用戶只能接收他們授予的角色。

            2.3 事務授權:僅當事務被授權給主體激活角色時,主體才能執行該事務。

             

            同(1)和(2)一起,本規則保證用戶只可執行授權給他們的事務。注意,因為條件是“僅當(only if)”,本規則允許事務執行的出現附加限制的可能性。即,規則不保證一個事務只是因為它在TA(AR(s))中就是可執行的,TA(AR(s))是由主 體激活角色執行的潛在事務集合。例如,一個主管角色的實習生可被賦予“主管”角色,但是在運用他/她用戶角色時有限制,即對一主管可正常訪問的子集,實習 生可能受到限制。

            上文中,“事務”的定義是變換過程(transformation procedure)加上一個由變換過程訪問的數據項集。因為數據訪問已被構建到事務中,所以上面規則的訪問控制不要求對用戶訪問數據目標的權利或變換程 序訪問數據項的權利作任何檢查。由于在設計階段將操作和數據綁定為一個事務,所以存在安全性問題,例如此時的在保險查詢事務中提出的個人隱私的問題。

            當規則中“事務”只指變換程序時,需要重新定義“事務”的含義,即不包括對目標的綁定。若要實施方式控制則需要第四個規則,即在模型中用戶通 過事務程序訪問目標。例如,利用事務(重新定義為變換程序),第四個規則可被定義為對象訪問函數access(r, I, o, x),

            

            它表明了是否允許角色r的主體利用事務t以x的方式來訪問對象o,其中x是已經縮小的模式的集合。例如讀,寫,附加。

            第四項規則可適用于醫院配置。一位醫生可被提供讀/寫藥方的訪問控制,而醫院的藥劑師可能只具有讀的訪問權力。(單獨調用前三個規則,將事務過程t與t能訪問的數據對象綁定在一塊,并且只控制對事務的訪問)。我們可以使用第四個規則替換,更有益于滿足機密性的要求。

            RBAC的另一個用途是支持完整性。完整性以幾種不同的方式定義,但完整性的一個方面是要求數據和程序只能由授權用戶以被授權的方式修改。這看起來對于很多真實的系統是一合理的安全目標,同時RBAC應適用于這樣的系統。

            一般來說,決定數據是否只以授權的方式修改的問題與修改事務是同樣復雜的。由于這個原因,實際的方法是事務直接與另一事務合并。要求系統通過 規則(4)中的訪問函數控制事務程序對對象的訪問,但是要取得完整性的同時需要極大的系統開銷。因此,在RBAC中包含事務對對象的訪問控制函數將在一些 應用集中是有用的,但并不是所有的應用。

            3.最小特權策略

            最小特權原則對于滿足完整性目標是非常重要的。最小特權原則要求用戶只具有執行一項工作所必需的權限。要保證最小特權要求驗證用戶的工作是什 么,要確定執行該項工作所要求的權限最小集合,并限制用戶的權限域。若拒絕了不是主體職責的事務,則那些被拒絕的權限就不能繞過阻止安全性策略。盡管最小 特權包含當前存在于TCSEC的內容當中,但仍限制系統管理員的權限。通過使用RBAC,很容易滿足一般系統的用戶執行最小權限。

            4.職責分離

            RBAC機制可被系統管理員用于執行職責分離的策略。職責分離對于反欺詐行為是非常有效的。它是在真實系統中最重要的想法。

            職責分離或者是靜態的,或者是動態的。符合靜態職責分離要求職能由個人角色的分配和事務角色的分配決定的。最難的是動態職責分配,其中符合動態職責分離的職能在系統操作期間決定。動態職責分離目的是允許操作更靈活。

            根據角色分配訪問權利在定義職責分離上也是有幫助的,它由系統執行。

            5.結論

            雖然商業和政府組織中很多終端用戶能夠訪問信息,但他們都不“擁有”信息。而這些組織機構恰恰是實際系統對象的“擁有者”,并且自主訪問控制是不可能適合的。基于角色訪問控制(RBAC)是一個非自主訪問控制機制,它允許促進組織具體安全策略的中央管理。
          訪問控制決策通常基于角色,個人用戶采取的角色作為組織的組成。一個角色規定了一個事務集合,即用戶或用戶集合可在組織內執行。RBAC提供命名和描述個人和權利之間的關系的方法,提供很多商業和政府組織需要的安全處理方法。

            本文提到的基于角色訪問控制(RBAC)的定義,已經在第十五屆國際計算機安全會議上以集合的形式給出。本文的目的是讓更多熱愛網絡安全的朋友了解RBAC,使這一新型的訪問控制方案得到更多的應用。

          主站蜘蛛池模板: 普陀区| 景东| 钟祥市| 江达县| 周至县| 临颍县| 阳原县| 新巴尔虎右旗| 禄丰县| 瑞安市| 义马市| 乐东| 遂昌县| 弋阳县| 云安县| 和林格尔县| 衡山县| 江津市| 青州市| 辉南县| 扶余县| 甘洛县| 儋州市| 灵璧县| 宁蒗| 巴塘县| 新绛县| 吴忠市| 新化县| 榆树市| 玉龙| 东宁县| 西畴县| 乐清市| 石门县| 克拉玛依市| 保靖县| 陇川县| 萨迦县| 石棉县| 西和县|