中國移動規範學習——4A技術要求(集中授權)

集中授權管理,主要是指在一點,集中對用戶使用信息系統資源的具體情況進行合理分配,實現不同用戶對系統不同部分資源的訪問控制。具體來說,就是集中實現對各用戶(主體)能夠以什麼樣的方式(謂詞)訪問哪些資源(客體)的管理。

在集中授權裏強調的“集中”是邏輯上的集中,而不是物理上的集中。即在各網絡設備、主機系統、應用系統中可能還擁有各自的權限管理功能,管理員也由各自的歸口管理部門委派,但是這些管理員從統一的授權系統進去以後,可以對各自的管理對象進行授權,而不需要進入每一個被管理對象才能授權。

集中授權管理包括兩個階段:

1. 權限分配階段。這個階段通常是指在創建用戶主、從賬號時,給賬號賦予相應的訪問權限,包括能夠以什麼樣的方式訪問哪些系統、哪些資源。這個階段是一個相對靜態的授權過程。

2. 訪問授權階段,這個階段通常也稱訪問控制。這個階段是在用戶提出對具體資源的訪問請求時,根據前一階段的權限分配結果,決定用戶是否有權按照所請求的方式,對所請求的資源進行訪問。這個階段是一個相對動態的控制過程。

集中授權管理要求對這兩個階段均能進行管理。

 

基本技術】

本節針對集中授權管理的兩個階段,在技術方面進行澄清,作爲產品選購、開發的依據。

集中權限分配】

<權限定義>

應用系統、主機、網絡設備中的權限可以抽象爲一個三元組符號P(o,t,p),其中o表示被訪問的信息資源;t表示訪問類型;p表示謂詞。表示在謂詞p爲真時對於對象o可進行t類型的訪問。

權限定義是信息系統安全管理基礎步驟之一,需要仔細考慮。對於4A框架這樣橫跨衆多應用系統、主機、網絡設備的集中授權來說,更需要在實施前進行認真、細緻的調研,對權限進行統一規劃,然後按照上面三元組的形式,將各種權限規範化、形式化,然後電子化。

<集中權限分配粒度>

根據應用系統及主機、網絡設備的不同情況,集中權限分配所能分配的權限粒度是不同的,大體上可以包括兩種粒度:

1. 實體級集中授權,授權粒度只精確到應用、設備、主機,通俗一點說就是用戶是否有權連接某個IP地址+端口。

2. 實體內部資源級集中授權,授權粒度精確到應用、設備、主機內的資源。資源包括應用的功能模塊、HTML頁面、數據庫表或字段;主機內的文件或目錄等。

實體級集中授權是最容易實現的,而且可以:

1. 與訪問控制模塊相結合,在一點上就可以取消用戶對所有系統的訪問。即如果用戶離開公司,可以在集中授權模塊中取消他的授權,這樣即使他在各應用系統中的賬號還在,但是也不能通過訪問控制模塊構築的安全網關,對應用進行訪問。

2. 集中授權的主體是用戶的主賬號,而不是用戶在各系統、設備中的從賬號,主賬號名可以通過API等傳遞給應用系統,增加應用系統訪問日誌的精確性,在多人共用一個從賬號時,可以精確定位到賬號的實際使用者。

雖然實體級集中授權有上面的優點,但是對實體(應用、設備、主機)內部資源的訪問權限,還需要在實體內部進行分配和管理,還不能算是真正意義上完全的集中授權管理。

而在達到實體內部資源級的集中授權後,除了實體級集中授權能夠做到的以外,還可以做到在一點上即可分配用戶對企業內部各種信息資源的訪問權限,實現真正的集中授權管理,即如果用戶權限如果發生了變化,不需要在各應用系統中重新分配權限,只需要在集中權限管理模塊中重新分配權限,在各應用系統中的權限自動發生變化。

當然實現實體內部資源級的集中授權,需要比實現實體級集中授權花費更大的代價:

1. 必須對企業內部的各種信息資源進行統一定義,包括應用系統、主機、網絡設備內部的各種資源。

2. 必須能夠將不同的信息資源,以一種統一的形式呈現給管理員,便於管理員對資源的訪問權限進行分配。

3. 對於應用系統,必須對應用進行改造,使之適應這種集中授權管理模式,改造方法可以參見本文附錄二。

4. 對於主機系統,當然不可能去改造OS,但是可以通過在主機內部或外部部署與集中賬號管理系統相似的Agent來實現資源發現的功能,對細粒度資源的訪問控制則需要在主機內部部署特殊的軟件,這種軟件通常深入OS內核,或在OS內核與應用之間建立中間層。從現有產品來看,這種輸入OS的方法可以將原OS中的管理員級別分解得更細,但是畢竟是在OS之上附加的東西,對OS性能必將造成影響,而且在選購前還必須針對具體的OS環境,對軟件兼容性、穩定性進行充分的測試,否則有可能造成新的隱患。

5. 完全固件化的網絡設備則難以進行這種改造,如果設備本身又不提供相關的外部接口,可能不能實現設備內部資源的集中授權。

4A框架下的集中授權管理,在初期可以將實體級集中授權作爲目標,但是在發展到一定程度後,應該優先將應用系統的授權過渡到實體內部資源級的集中授權。

<主流的授權技術>

集中權限分配的客體可以是前面說的實體(應用系統、主機、網絡設備),或實體內部的資源,主體則是企業訪問內的所有用戶。但是在給用戶授權的時候,又可以採用不同的方式:

1. 針對與用戶一一對應的主賬號。

2. 針對用戶按照某種規則組成的用戶組。

3. 針對與具體用戶和實體無關,只與企業內部的組織機構、崗位職能有關,在企業範圍內定義的全局角色。

直接針對用戶授權可能是一種比較直接的想法,但是在實際操作時很少用到,因爲對於象中國移動這樣的大型企業來說,直接針對用戶的授權方式工作量實在是太大了,而且很多重複性的授權工作難於被重用,整體缺乏可擴展性。

用戶組也是一個比較容易想到的辦法,但是在實際使用時,由於對用戶組的劃分原則比較難把握,因此容易造成權限的擴散和管理上的混亂。

基於角色的集中授權管理是一種相對比較新穎的方式,不僅比前面兩種方式複雜,也具有很多前面兩種方式所不具有的優點。本方案將採用這種方式完成集中權限分配。

基於角色的集中授權的主要思想是:通過用戶與權限的分離,使得授權過程方便靈活;通過用戶與角色的指定,角色與權限的配置,又可使基於角色的訪問控制達到所需的安全要求。

中國移動信息系統包括CMNet承載網、數據業務系統、支撐系統等,它包括信息量巨大並具有不同敏感程度的信息,和各種有訪問需求的用戶,使得其安全管理非常複雜。基於角色的授權管理的特點是通過分配和取消角色,來完成用戶權限的授予和取消,並且提供了角色分配規則和操作檢查規則。安全管理人員根據需要定義各種角色,並設置合適的訪問權限,而用戶根據其責任和崗位再被指派爲不同的角色。這樣,整個訪問控制過程就分成兩個部分,即訪問權限與角色相關聯,角色再與用戶關聯,從而實現了用戶與訪問權限的邏輯分離。角色可以看成是一個表達訪問控制策略的語義結構,它可以表示承擔特定工作的資格。

基於角色授權管理的基本思想如圖

clip_image002

基於角色的授權管理具有以下優點:

1. 便於授權管理:管理員可以很方便地實現對普通用戶的授權;

2. 便於角色劃分:管理員可以針對不同的角色分配不同的權限;

3. 便於賦予最小特權:由於用戶可以擁有多個角色,那麼可以很方便地建立最小特權的角色,賦予某些特殊用戶;

便於職責分擔:由於不同職責的用戶分別擁有不同的角色,可以很方便地實現用戶的職責分擔;

 

<賬號、用戶、用戶組、角色、權限關係>

在通常的應用系統中,談到授權管理時,通常也會提到用戶、賬號、用戶組、角色和權限的概念,而基於角色的授權管理中,角色的功能與通常應用系統中角色的概念又有所不同,在此有必要先進行澄清。

對於通常的應用系統來說,權限管理的主體本來應該是訪問者本身,權限管理的客體是應用系統內的資源,包括頁面、功能模塊、字段等。但是對於通常的應用系統來說,因爲很少採用能夠精確定位到自然人個體的身份認證手段,只能通過賬號/密碼,或稱用戶名/密碼的方式進行身份認證。因此可以認爲,在通常的應用系統中,用戶或者賬號(4A稱應用系統中的賬號爲從賬號)是一個意思,都是自然人的表現,而且在某些情況下,可以多個自然人共用一個從賬號或用戶名,這將給安全審計帶來困擾。

而在4A框架下,集中身份認證可以精確定位到自然人,因此用戶可以用主賬號進行標識,每個用戶一個主賬號,每個主賬號只屬於一個人。

另外爲了便於管理,應用系統中經常使用用戶組進行批量授權。這裏的用戶組,其實就是將應用中的一些需要行使相同權限的用戶(從賬號)歸納爲一個組,只要用戶(從賬號)屬於某個用戶組,即可行使該組內的所有權限。因此用戶組的定義只在應用內部有效。在某些應用系統中,這種用戶組也被稱爲角色。但是4A中基於角色的集中授權管理中的全局角色概念,與這種應用系統內部定義的局部角色概念,有根本性的不同:

1. 在基於角色的集中授權管理中,角色最根本的一個特徵就是角色的定義與具體應用無關,只與企業內部的組織機構、工作分工等有關,因此才能建立獨立於具體應用,但是又能夠同時對若干應用進行集中管理的授權系統。但用戶組只在定義它的應用內部有效。

基於用戶組的應用授權管理中,權限可以賦予用戶(賬號),也可以賦予用戶組,不僅很難對最小權限進行控制,而且取消用戶權限時也很麻煩。但是對基於角色的集中授權管理來說,權限只賦予全局定義的角色,在用戶工作崗位發生變化後,只需更改他所扮演的角色即可,大大減少了管理工作量,也減少了出現權限漏洞的可能。

 

集中訪問控制】

在集中授權的第二個階段,即訪問授權階段,一般通過採用訪問控制技術,在訪問鏈路上進行集中的權限認證和控制,使第一階段的集中授權結果得到體現,保證網絡資源受控、合法地被使用,用戶只能根據自己的權限大小來訪問系統資源,不得越權訪問。

訪問控制模塊通常由訪問控制執行單元(AEF)和訪問控制決策單元(ADF)組成,如圖所示。

clip_image001[4]

AEF可以看做是一個安全網關,根據ADF的決策,決定允許或禁止用戶的訪問請求傳遞到訪問目標。

ADF根據訪問控制策略,決定用戶是否有權訪問所請求的資源。

不同的應用系統可以使用相同的AEF,依靠同一個ADF進行決策,體現集中授權的集中性。

在部署的時候,AEF可以當做獨立的安全網關服務器,部署在每一臺受保護的應用服務器、主機、網絡設備前面,可以採用一對一、一對多或多對多的方式;也可以是以API包的形式提供給應用開發商,供應用軟件或主機保護軟件開發商進行調用,成爲應用或主機的一個組成模塊,從而將應用或主機完全納入4A框架。

部署時ADF模塊一般部署在一臺獨立的服務器上,或多臺服務器構成一個集羣,同時爲多個AEF提供決策服務。

ADF決策的依據主要包括訪問者信息、目標信息、訪問控制策略規則等。其中訪問控制策略規則,主要就是在集中授權的第一個階段,即權限分配階段所分配的權限。ADF決策的結果交給AEF加以執行,從而允許或阻斷用戶的訪問請求,從而完成集中授權的第二階段,即訪問控制階段的功能。因此可以說ADF是集中授權第二階段的“司令官”,而AEF則是“執行者”。

ADF使用的訪問控制策略一般有三種:自主訪問控制、強制訪問控制和基於角色的訪問控制。不論是哪一種策略,均可以與實體級授權或實體內部資源級授權相結合,完成整個集中授權過程。

自主訪問控制(Discretionary Access Control,DAC)是根據訪問者的身份和授權來決定訪問權限,最常見的例子就是Windows下的文件共享,每個Windows用戶都可以自己決定哪些目錄或文件可以共享給哪些賬號。

在自主訪問控制下,主體訪問者對訪問權限有一定的控制。但正是這種權利使得信息在移動過程中其訪問權限關係會被改變。如用戶A可以將其對客體目標O的訪問權限傳遞給用戶B,從而使不具備對O訪問權限的B也可以訪問O,這樣做很容易產生安全漏洞,所以自主訪問控制的安全級別很低。而且從企業的角度來說,信息資產屬於企業而不是個人,因此應該由企業來決定對信息資產的訪問權限,而不是個人私自授權。

強制訪問控制(Mandatory Access Control,MAC)是將主體和客體分級,然後根據主體和客體的級別標記來決定訪問權限。最常見的例子是政府和軍隊中的文件管理:文件分爲絕密、機密、保密、公開幾個級別,每個人獲得不同級別的授權,然後即可閱讀低於該級別的文件。如獲得機密授權的人員,即可閱讀機密、保密、公開的文件,但是不能閱讀絕密級文件。

在強制訪問控制下,主體必須以一種明顯的方式給予訪問權限,並在被允許訪問之前滿足訪問的要求。這些訪問要求以主體和客體屬性的方式指定,因此授權是根據某些主體的屬性是否滿足訪問某些有特定屬性的客體的規定來決定的,而且這些安全屬性是系統定義的,既不能由主體也不能由客體來改變,規定與管理訪問權限是系統的安全功能。但這種授權方式的實現工作量太大,管理不便,通常只在軍隊或政府部門應用,企業中很少有應用。

另一種是基於角色的訪問控制(Role-Based Access Control,RBAC),企業根據需要定義各種角色,並設置合適的訪問權限,而主體根據職責和任務的需要再被指派爲不同的角色。這樣整個授權過程分爲兩部分,即訪問權限和角色相關聯,角色再和自然人相關聯,從而實現自然人與訪問權限的邏輯分離。這種方式更便於授權管理、角色劃分、職責分擔、目標分級和賦予最小特權,也是訪問控制發展的趨勢。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章