每日一得

          不求多得,只求一得 about java,hibernate,spring,design,database,Ror,ruby,快速開發
          最近關心的內容:SSH,seam,flex,敏捷,TDD
          本站的官方站點是:顛覆軟件

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            220 隨筆 :: 9 文章 :: 421 評論 :: 0 Trackbacks

          訪問控制背景

          ??? 訪問控制技術是由美國國防部(Department of Defense, DoD)資助的研究和開發成果演變而來的。這一研究導致兩種基本類型訪問控制的產生:自主訪問控制(Discretionary Access Control, DAC)和強制訪問控制(Mandatory Access Control, MAC)。最初的研究和應用主要是為了防止機密信息被未經授權者訪問,近期的應用主要是把這些策略應用到為商業領域。

          ??? 自主訪問控制,允許把訪問控制權的授予和取消留給個體用戶來判斷。為沒有訪問控制權的個體用戶授予和廢除許可。自主訪問控制機制允許用戶被授權和
          取 消訪問其控制之下的任何客體(object),換句話說,用戶就是他們控制下的客體的擁有者。然而,對于多數組織來說,最終用戶對所訪問的信息沒有擁有 權。對于這些組織,公司或代理機構是事實上的系統客體和處理他們的程序的擁有者。訪問優先權受組織控制,而且也常常基于雇員功能而不是數據所有權。

          ?? 強制訪問控制,在美國國防部 Trusted Computer Security Evaluation Criteria (TCSEC) 中定義如下:“一種限制訪問客體的手段,它以包含在這些客體中的信息敏感性和訪問這些敏感性信息的主體的正式授權信息(如清除)為基礎”。
          ??
          ?? 以上訪問控制策略對于處理一些無需保密但又敏感的信息的政府和行業組織的需求并不是特別的適合。在這樣的環境下,安全目標支持產生于現有法律、道德規范、 規章、或一般慣例的高端組織策略。這些環境通常需要控制個體行為的能力,而不僅僅是如何根據信息的敏感性為其設置標簽從而訪問這一信息的個人能力。
          ????


          什么是基于角色訪問控制(Role-Based Access Control, RBAC)?NIST 有如下定義。
          ??
          ?? 訪問是一種利用計算機資源去做某件事情的的能力,訪問控制是一種手段,通過它這種能力在某些情況下被允許或者受限制(通常是通過物理上和基于系統的控 制)。基于計算機的訪問控制不僅可規定是“誰”或某個操作有權使用特定系統資源,而且也能規定被允許的訪問類型。這些控制方式可在計算機系統或者外部設備 中實現。
          ??
          ??? 就基于角色訪問控制而言,訪問決策是基于角色的,個體用戶是某個組織的一部分。用戶具有指派的角色(比如醫生、護士、出納、經理)。定義角色的過程應該基于對組織運轉的徹底分析,應該包括來自一個組織中更廣范圍用戶的輸入。
          ???
          ??? 訪問權按角色名分組,資源的使用受限于授權給假定關聯角色的個體。例如,在一個醫院系統中,醫生角色可能包括進行診斷、開據處方、指示實驗室化驗等;而研究員的角色則被限制在收集用于研究的匿名臨床信息工作上。
          ???
          ??? 控制訪問角色的運用可能是一種開發和加強企業特殊安全策略,進行安全管理過程流程化的有效手段。
          ?????


          用戶(User)和角色(Role)

          ??? 用戶指訪問系統中的資源的主體,一般為人,也可為 Agent 等智能程序。角色指應用領域內一種權力和責任的語義綜合體,可以是一個抽象概念,也可以是對應于實際系統中的特定語義體,比如組織內部的職務等。針對角色 屬性的不同,某些模型中將角色進一步細分為普通角色和管理員角色(可理解為全局角色)。

          ?

          許可(Permissions)和權限(Permission)

          ??? 許可描述了角色對計算機資源的訪問和操作所具有的權限,其反映的是授權的結果。比如授予某個角色對計算機資源有讀的權限,則代表了一個許可的存在,這個許 可表示:角色獲取了對計算機資源的讀許可。針對操作來說,其描述的是許可和操作之間的一種關聯關系,而這層關系則表示了某一角色對某一操作所具有的權限及 權限狀態。


          ?????
          角色和指派(Assignment)

          ??? 指派包含兩個方面,用戶指派和許可指派。用戶指派表示的是,將用戶指派給特定的角色。許可指派表示的是為角色指派計算機資源的訪問和操作許可。

          ?

          會話(session)

          ??? 會話表示的是用戶和角色之間的關系。用戶每次必須通過建立會話來激活角色,得到相應的訪問權限。

          ?

          角色和角色等級(Role Hierarchies)

          ??? 角色本身僅僅只是一個名詞,其本身并不能代表權限的大小。比如,我們可以定一個“Director”的角色,也可以定一個“Project Leader”的角色。對于現實中我們來說,看到這樣兩個角色,就清楚 DIR 的權限要比一個 PL 的權限級別高。但是對計算機來說,這兩個角色僅僅是兩個“詞語”,是等同的。可以采用分等級角色,在角色上實現層次化來解決這些問題。也可以采用復合角色 (其表示的就是一個角色組的概念),對角色實現一定的分組和復合,以便于權限指派。在一些 OA 產品中經常出現分等級角色。
          ???


          限制(Constraints)
          ???
          ??? 模型中的職責分離關系(Separation of Duty),用于控制沖突(Conflict)。靜態職責分離(Static SD)指定角色的互斥關系,用于用戶指派階段。避免同一用戶擁有互斥的角色。實現簡單,角色互斥語義關系清楚,便于管理不夠靈活,不能處理某些實際情況。 動態職責分離(Dynamic SD)指定角色的互斥關系,用于角色激活階段。允許同一用戶擁有某些互斥的角色,但是不允許該用戶同時激活互斥的角色。更靈活,直接與會話掛鉤,適應實際 管理需要,實現復雜,不易管理。

          ?????????????

          ?

          ?

          參考文獻

          《AN INTRODUCTION TO ROLE-BASED ACCESS CONTROL》 NIST

          《工作流授權控制模型》??????? 胡長城

          《基于角色的權限管理綜述》 俞詩鵬

          ?

          ?

          最后,感謝宏云博士對本文翻譯提供的指導。???


          請注意!引用、轉貼本文應注明原作者:Rosen Jiang 以及出處:http://www.aygfsteel.com/rosen

          posted on 2006-10-26 21:31 Alex 閱讀(484) 評論(0)  編輯  收藏 所屬分類: java
          主站蜘蛛池模板: 泾川县| 杭锦后旗| 诸城市| 巨鹿县| 正镶白旗| 澜沧| 兴海县| 沽源县| 麻江县| 沅陵县| 桓仁| 贵溪市| 桑日县| 武夷山市| 府谷县| 凤山市| 昌吉市| 荥阳市| 东安县| 恩平市| 若尔盖县| 思茅市| 靖州| 凯里市| 眉山市| 平舆县| 临海市| 甘孜| 安顺市| 罗江县| 嘉荫县| 竹北市| 广西| 凤凰县| 峨边| 汤阴县| 香格里拉县| 新郑市| 棋牌| 永川市| 哈巴河县|