余 波,臺憲青,馬治杰
1.中國科學院 電子學研究所,北京100190
2.中國科學院 空間信息處理與應用系統技術重點實驗室,北京100190
3.中國科學院大學 電子電氣與通信工程學院,北京101408
4.中國科學院 電子學研究所 蘇州研究院,江蘇 蘇州215121
5.江蘇物聯網研究發展中心,江蘇 無錫214135
云計算的快速發展為數據存儲帶來了極大的便利,使得越來越多的數據被存儲在云服務器上,而隨之帶來的則是數據安全問題[1]。訪問控制是保護信息系統中數據安全的關鍵技術,它通過定義系統中主體對客體訪問權限的方式,限制用戶對數據資源的訪問能力和范圍,達到阻止未授權用戶對系統訪問和已授權用戶越權訪問的目的。然而,由于云計算環境具有實時動態性、用戶和數據規模龐大且復雜多樣等特點,對訪問控制系統在授予用戶權限、管理用戶的權限和保持訪問控制的細粒度等方面帶來了新的挑戰,從而不能有效地保護數據的安全性。因此,設計一種能夠同時實現動態授權、權限自動化授予以及細粒度控制等特點的訪問控制機制變得很有必要。
傳統的訪問控制模型主要為自主訪問控制(Discre‐tionary Access Control,DAC)[2]、強制訪問控制(Manda‐tory Access Control,MAC)[3]和基于角色的訪問控制(Role-Based Access Control,RBAC)[4-5]。這些訪問控制模型都實現了對不同主體訪問客體的授權和控制。比如,DAC 系統中的主體可以自主地決定將其擁有的對客體的權限全部或部分地授予其他主體,但其僅適用于簡單系統,對于大型復雜系統存在開銷過大、效率低下等問題。MAC 依據系統權威(如系統管理員)制定的訪問規則進行多層級的訪問控制,但其規則制定嚴格且缺乏彈性,靈活性較差。RBAC 在用戶和權限之間引入角色作為中間層,所有的權限通過角色授予而非直接分配給用戶,所以具有支持大規模復雜系統和高靈活性的優勢,因此RBAC較為適合用于一般云計算環境下的訪問控制[6-9]。
目前云環境下現有的訪問控制研究主要集中在兩個方面:云環境下訪問控制模型和基于屬性基加密(Attribute-Based Encryption,ABE)機制的云計算訪問控制。訪問控制模型按照其功能的不同,可以分為基于任務的訪問控制模型(Task Based Access Control,TBAC)[10]、基于屬性的訪問控制模型(Attribute Based Access Control,ABAC)[11]和基于BLP(Bell-LaPadula,BLP)模型的云計算訪問控制。TBAC 從任務的角度來建立安全模型和實現安全機制,可以對工作流或其中的任務進行實時動態地授權控制,從而極大增強了云環境中訪問控制的動態性。但是沒有解決云環境中實體復雜性對細粒度的訪問控制造成的問題,而且其配置比較繁瑣。ABAC 通過對相關實體(主體、客體、權限和環境)的屬性進行建模的方式,來描述授權和訪問控制約束,以此實現細粒度訪問控制。但是,ABAC 沒有針對云環境的動態性作出優化,不能根據動態變化的環境信息對用戶權限實時作出調整。同時,所有實體均以屬性進行描述比較復雜,可能存在屬性描述不足以表達實體特性的情況。BLP模型是一種強制訪問控制模型,主要應用于強調安全機密等級的系統或云環境。CCACSM(Cloud Computing Access Control Security Model)[12]是一種基于BLP 的云計算訪問控制安全模型。該模型基于用戶的行為來對用戶訪問范圍進行動態調整,保護數據資源安全。但是,該模型的優勢只能在強調機密等級的特殊云環境中發揮,并不能在一般的云環境中體現。總之,上述訪問控制模型均沒有完全兼顧云環境的特點。而RBAC具有適用于大規模復雜系統、結構簡潔易管理和易于和其他模型概念相結合等優點,因此,本文分析和討論云環境下的RBAC 模型,對RBAC 模型進行改進使其適用于云環境,實現動態授權、權限自動化授予以及細粒度控制的目標。
ABE 是一種通過在密文或密鑰中嵌入訪問控制策略的方式,實現對數據資源靈活的細粒度的訪問控制的機制。目前,基于ABE 已經衍生出兩種變體機制:密鑰策略的ABE 方案(Key-Policy ABE,KP-ABE)[13]和密文策略的ABE 方案(Ciphertext-Policy ABE,CP-ABE)[14]。在KP-ABE 中,密文與屬性集合相關聯,密鑰與訪問結構相關聯。當屬性集合與訪問結構匹配時,解密方才能使用密鑰解密。在CP-ABE 中,與KP-ABE 相反,密文與訪問結構相關聯,密鑰與屬性集合相關聯。當解密方擁有的屬性集合匹配訪問結構時,解密方的密鑰才能解密密文,獲得數據和資源。與KP-ABE相比,CP-ABE更適合大規模環境下的訪問控制,因此研究者目前廣泛采用CP-ABE 算法展開對ABE 在云計算環境下的研究與應用。本文在改進RBAC 模型時也借鑒了CP-ABE 的思想。
由于RBAC自身的某些特性,使得該種訪問控制機制不能簡單直接地套用在云環境中。在RBAC中,用戶權限的授予是靜態的,即用戶權限一旦被授予,其在隨后的訪問過程中均保持不變。此時若出現用戶危害系統安全的行為,系統無法及時調整用戶權限,從而造成權限的濫用并危害系統安全。而云環境具有動態性、開放性的特點,使得靜態授權造成的問題在云環境中愈發嚴重。另外,RBAC 具有用戶分配和權限分配兩組多對多關系,且均需要進行人工配置。而云環境用戶數量龐大、類型繁多,因此會導致RBAC 在云環境中人工管理維護成本急劇提高。最后,RBAC 通過角色的概念將用戶與權限關聯起來,而在云計算環境中用戶、角色和權限的劃分以及分配關系復雜,所以難以保證對用戶細粒度的訪問控制。總之,RBAC 在云環境中仍存在一定程度上的問題(詳細解釋參見2.2節)。
針對以上問題,本文提出一種云計算環境下基于屬性(Attribute)和 信 任(Trust)的RBAC 模 型,簡 稱ATRBAC。ATRBAC 在RBAC 的基礎上加入屬性和信任管理模塊,分別為用戶添加屬性集合、為角色添加訪問結構,通過用戶屬性集合與角色訪問結構的匹配以及用戶信任值隨用戶行為的動態調整,增加了訪問控制授權的動態性,實現了權限的自動化授予以及更加細粒度的訪問控制。
首先介紹RBAC 模型的基本原理和組成要素,然后詳細介紹RBAC 模型在云環境下存在的不足及應用研究情況。
RBAC 是一種經典的訪問控制模型,其基本思想是通過角色建立用戶和訪問權限之間的多對多關系。RBAC主要包括四個實體:用戶(USERS)、角色(ROLES)、權限(Permissions,PRMS)和會話(SESSIONS),如圖1所示。

圖1 RBAC模型
每個實體和實體與實體之間的對應關系詳細解釋如下:
(1)用戶(USERS):用戶指直接與系統交互的任何個人。
(2)角色(ROLES):角色指組織中的工作崗位,描述授予給用戶的權利和義務。角色作為中間體,既是用戶的集合又是權限的集合。
(3)權限(PRMS):權限指訪問系統中一個或多個客體特定模式的許可,描述了主體與客體之間已授權的交互關系類型。這里討論的權限是正權限,授予持有者在系統中執行一個行為的能力。權限的概念包含客體與操作。
①客體(Objects,OBS)代表系統中的數據或資源。
②操作(Operations,OPS)是對客體特定的執行模式,常見的如讀(Read)、寫(Write)、執行(Execute)等。
(4)會話(SESSIONS):會話是用戶與分配給用戶的角色集合的激活子集之間的映射關系。用戶在激活所擁有角色的某些子集時建立會話,每個會話把一個用戶和可能的多個角色聯系起來。用戶可用的權限是當前會話激活的所有角色權限的并集。
(5)用戶分配(User Assignment,UA)和權限分配(Permission Assignment,PA):兩者都是多對多的關系,一個用戶可以屬于多個角色,并且一個角色可以擁有多個用戶。同樣的,一個角色可以擁有多個權限,相同的權限可以被分配給多個角色。角色作為一個中間體,根據訪問的配置和反饋為用戶執行權限提供更好的控制,而不是用戶和權限之間建立直接的關系[5]。
(6)用戶會話間關系(User-Sessions)和會話角色間關系(Session-Roles):用戶與會話間是一對多的關系,每個會話與單個用戶關聯,而一個用戶在同一時間可以打開多個會話。會話與角色間是多對多的關系,一個會話中可以激活多個角色,同一個角色也可以在不同的會話中被激活。
RBAC在云環境中仍然存在以下三方面不足。
(1)訪問權限的分配都是靜態的。用戶獲取的某項權限在一定時間內是永久的,并不會因操作完成而釋放這些權限,即“一次授權終身享有”。訪問控制系統對用戶的后續行為無法進行管理,造成用戶權限濫用的問題,同時也給云計算環境引入了不安全因素。
(2)用戶訪問權限不能自動授予。用戶權限需要依靠系統管理員人工地進行設置,容易出現兩方面問題。一方面,當用戶數量很多時,用戶角色分配的數量隨著用戶數量的增長而急劇增加,管理員工作量大,管理維護成本高。另一方面,管理員在人工設置的過程中也難免出錯,造成合法用戶無法進行訪問或者隱私數據泄漏的后果。
(3)訪問控制粒度較粗。訪問控制粒度較粗主要體現在以下兩個方面。一方面,由于用戶劃分較為粗略,導致相同的權限授予歸為一類但仍有差異的用戶。另一方面,由于權限劃分較為寬泛,導致授予用戶不僅包含完成任務需要的權限而且包含范圍更大的權限。
針對以上問題,許多研究者都提出了云環境中基于RBAC模型的改進方案。Jung等人[6]在RBAC 模型的基礎上提出云環境下自適應的安全管理模型。該模型能夠根據上下文信息計算安全等級從而動態調整用戶的角色,具有自適應性,有效解決了云環境中多種環境變量動態變化的問題。Aluvalu 等人[7]通過優化RBAC 模型提出一種云計算中動態的基于屬性的風險感知訪問控制模型(Dynamic Attribute-based Risk Aware Access Control,DA-RAAC)。該模型混合其他靜態的基于策略的訪問控制模型,并結合風險計算和用于訪問控制的屬性,使訪問控制系統更加具有動態性。張凱等人[8]提出了一種云計算下基于用戶行為信任的訪問控制模型。該模型結合用戶的直接和間接信任值得到用戶信任值,再根據信任值確定其信任等級,激活所對應的角色及賦予角色一定的訪問權限,解決了當前云計算訪問控制中角色的訪問權限無法動態調節的問題。黃晶晶等人[9]提出一種基于上下文和角色的云計算訪問控制模型(Context and Role Based Access Control,CRBAC)。該模型在傳統RBAC模型的基礎上加入上下文約束,能夠動態地授予用戶權限,保護云資源的安全。
以上研究都側重于解決RBAC 模型在云環境中訪問權限靜態分配的問題。與他們不同,本文在上述文獻成果的基礎上進一步研究,針對以上所提出的全部問題,實現了動態的授權管理,用戶權限的自動化授予以及更細粒度的訪問控制。
首先詳細介紹所提出的ATRBAC模型,然后闡述對ATRBAC 進行研究的技術路線,最后,對基于ATRBAC的訪問控制流程進行分析。
ATRBAC 模型在RBAC 模型的基礎上加入屬性/信任管理(Attribute/Trust Management)模塊,分別為用戶添加屬性集合(Attribute Set),為角色添加訪問結構(Access Structure),去除龐大復雜的用戶角色分配關系,增加了訪問控制授權的動態性,實現了權限的自動化授予以及使訪問控制更加細粒度。圖2 中紅色虛線框展示了ATRBAC模型與RBAC模型主要的區別之處。

圖2 基于屬性與信任的RBAC模型
下面對圖2中新加入的模塊進行說明。
屬性集合(Attribute Set):屬性集合是根據用戶提供的身份屬性證明,為用戶分配的對應的屬性標簽集合。其中用戶的行為信任值作為屬性集合中一項必選的重要屬性,根據用戶操作行為和結果實時動態地調整變化。
訪問結構(Access Structure):訪問結構是由屬性標簽和邏輯運算符組成的、根據角色含義指定的角色獲取條件。角色的信任閾值作為訪問結構中一項必要條件。屬性/信任管理(Attribute&Trust Management):屬性管理完成用戶屬性集合和角色訪問結構的制定、分配、管理和維護工作。信任管理完成根據用戶操作行為和結果實時更新用戶信任值以及動態調整用戶所擁有角色和權限的工作。若用戶的當前信任值大于角色的信任閾值,則繼續保留該角色;否則,用戶的屬性集合將不再滿足角色的訪問結構,收回用戶的角色所有權。
為了實現以上新添加模塊的功能,達到ATRBAC對RBAC 模型的改進目標,本文對ATRBAC 進行研究的技術路線主要包含以下兩步。
步驟1基于屬性基加密(ABE)算法的思想,實現屬性集合、訪問結構以及屬性管理模塊的功能,使得用戶可以自動地匹配獲取角色,將屬性的概念加入RBAC模型中,使得訪問控制更加細粒度。根據訪問結構對角色進行加密,將訪問結構嵌入到角色中去;授予用戶屬性集合對應的私鑰,從而為不同用戶賦予相應的屬性集合。只有用戶屬性集合滿足角色訪問結構的要求時,才可以通過私鑰解密獲取得到相應的角色和權限。用戶屬性集合和角色訪問結構統一由訪問控制系統中的屬性管理模塊授予并完成相應的管理維護工作。ABE 算法分為密鑰策略屬性基加密(KP-ABE)和密文策略屬性基加密(CP-ABE)。由于只有CP-ABE 可以由數據所有者,即加密者,決定誰可以解密加密的消息,所以本文選擇CP-ABE 算法實現用戶角色之間加解密的過程,詳細介紹參見第4章。
步驟2采用信任值評估比較的方法,實現屬性集合中用戶行為信任值、訪問結構中角色信任閾值以及信任管理模塊的功能。根據用戶的操作行為及結果評估用戶的信任值,將信任值作為用戶獲取角色的必要條件,使用戶獲取的角色和權限隨信任值動態變化。首先,用戶在獲取權限后對云存儲系統的各種操作行為和結果都會被記錄存儲在用戶歷史行為數據庫中。訪問控制系統里面的信任管理模塊周期性地提取用戶歷史行為數據庫中的數據記錄計算更新用戶信任值,同時為每個角色設置一個信任閾值。然后,用戶的信任值與用戶擁有角色的信任閾值進行比較。如果用戶信任值大于角色信任閾值,則繼續保有該角色及角色對應的權限;如果用戶信任值小于角色信任閾值,則改變后的用戶屬性集合不再滿足該角色的訪問結構,從而收回角色。本文采用模糊層次分析法(Fuzzy Analytic Hierarchy Process,FAHP)[15]評估得到一個客觀合理的用戶信任值。詳細介紹參見第5章。
ATRBAC 訪問控制流程整體上是基于RBAC 的訪問控制流程,但在細節上存在兩處不同。本節首先詳細介紹ATRBAC 的訪問控制流程,然后分析和討論了該流程的合理性與優勢。
牛肚菌。牛肚菌生長于海拔900-2200米的松樹混交林中或砍伐不久的邊緣地帶,多產于云南省。牛肚菌香甜可口、營養豐富,中醫認為其具有養血和中、祛風散寒、舒筋活血等功效,是婦科良藥,同時還有抗流感、治感冒的作用。
ATRBAC訪問控制流程:圖3為ATRBAC模型對用戶的訪問請求進行授權檢查的工作流程,一共包含六個步驟。詳細介紹如下:
步驟1在訪問控制系統初始化或添加新角色時,屬性管理模塊使用CP-ABE 算法根據角色的訪問結構對角色進行加密。

圖3 ATRBAC訪問控制流程
步驟2當用戶第一次訪問云存儲系統時,首先與訪問控制系統中的屬性管理模塊建立聯系。屬性管理模塊根據用戶提供的身份屬性證明,使用CP-ABE 算法生成屬性集合對應的私鑰,并分發給用戶。
步驟3用戶獲取相關角色并激活對應的訪問權限。用戶使用自己的私鑰解密由訪問結構加密的角色,如果用戶屬性集合匹配角色訪問結構,則解密成功獲取相關角色和對應的權限,進入下一步;否則,無法獲取相關角色和權限。
步驟4用戶提出訪問請求,訪問控制系統對用戶的訪問請求進行授權檢查。如果用戶擁有的角色中包含訪問請求對應的權限,則用戶的訪問請求通過;否則,用戶的訪問請求被拒絕。
步驟5用戶的訪問請求通過以后,用戶對云存儲系統執行相關操作,并將操作行為及結果記錄在用戶歷史行為數據庫中。
步驟6訪問控制系統中的信任管理模塊使用FAHP方法根據用戶歷史行為數據庫中的記錄評估用戶信任值。如果更新后的用戶信任值小于角色的信任閾值,用戶信任值屬性的改變使得屬性集合不再滿足角色的訪問結構,收回用戶已擁有的角色;否則,不做任何改變,用戶繼續保有該角色。
ATRBAC訪問控制流程的合理性:ATRBAC模型的訪問控制流程在整體上是基于RBAC 模型對不同用戶進行授權以及對用戶的訪問進行控制的,在細節上與RBAC 模型存在兩處不同。首先,在用戶獲取所需角色時,RBAC 直接對用戶與角色之間關系進行人工配置,而ATRBAC 為了實現用戶權限的自動化授予和細粒度的訪問控制,則采用了CP-ABE 機制(見圖3 中步驟3);然后,為了增加訪問授權的動態性,ATRBAC 在RBAC之上新加入了用戶信任值屬性的評估與反饋機制(見圖3中步驟6)。前者僅在用戶獲取所需的角色及權限時起作用,不會對RBAC的核心控制流程造成影響。后者只是為驗證用戶是否獲得角色提供新的判斷依據。因此,ATRBAC 訪問控制流程中不同的兩部分并不會破壞原有的傳統RBAC 訪問控制流程的安全性和合理性。另外CP-ABE算法的安全性在文獻[14]中已經得到了證明。
ATRBAC模型訪問控制流程的優勢:ATRBAC的訪問控制流程在保留傳統RBAC 模型保護數據資源安全性的基礎上,同時也帶來了新的優勢。具體解釋如下:
(1)用戶在獲取角色時采用了CP-ABE 算法,使得這個過程可以自動完成,不需要系統管理員參與,增加了訪問控制系統的可擴展性。
(2)用戶屬性集合和角色訪問結構的加入使得訪問控制更加細粒度并且對角色進行加密也提高了云環境中數據資源的機密性和安全性。
(3)加入信任值屬性的反饋機制,可綜合評估用戶的操作行為及結果對云環境中環境信息帶來的影響,解決了云環境中用戶的權限無法動態調整的問題。
首先討論在ATRBAC 模型中將CP-ABE 算法與RBAC 模型結合的必要性,然后介紹CP-ABE 算法的步驟并討論CP-ABE算法如何與RBAC模型相結合。
在ATRBAC 模型中,為了實現用戶與角色之間自動化地授予以及更加細粒度的訪問控制,采用CP-ABE算法與RBAC模型相結合的方式。具體原因解釋如下:
首先,CP-ABE 算法與ATRBAC 中提出的對RBAC改進的思路一致。ATRBAC 模型在RBAC 模型的基礎上加入屬性/信任管理模塊,分別為用戶添加屬性集合,為角色添加訪問結構,通過用戶屬性集合是否匹配角色訪問結構來決定用戶能否擁有該角色。而在CP-ABE算法中,通過用戶私鑰中的屬性集合是否匹配密文中的訪問控制策略來決定用戶能否解密獲得明文。
然后,將CP-ABE 算法與RBAC 模型相結合可以實現用戶與角色之間自動化的授予,并提高云環境中數據資源的機密性和安全性。CP-ABE算法對RBAC模型中的角色進行加密,加密過程中角色被嵌入訪問結構,而用戶被授予與屬性集合關聯的私鑰。在以后的訪問授權過程中,用戶與角色間的授予可以通過加解密的方式自動完成;對角色進行加密,即對角色對應的權限進行加密,提高了云環境中數據資源的機密性和安全性。
最后,將CP-ABE 算法與RBAC 模型相結合可以實現更加細粒度的訪問控制。結合CP-ABE算法為RBAC模型中引入了屬性的概念,使得ATRBAC 模型相比傳統RBAC模型的訪問控制粒度更細。
在CP-ABE 算法[14]中,一方面,將用戶私鑰與由任意數量的可描述的屬性組成的屬性集合關聯起來。另一方面,當數據所有者對明文進行加密時,把用于解密的訪問結構指定到加密的明文中。故解密密文的標準是用戶私鑰中的屬性集合必須滿足密文中的訪問控制策略,否則不能解密。
CP-ABE的算法可歸納為以下四個步驟。
(1)初始化SetUp(d):無輸入但是包含一個隱式安全參數d,輸出整個過程中所需的公鑰(Public Key,PK)和主鑰(Master Key,MK)。
(2)密鑰生成KeyGen(MK;I):輸入主鑰MK 和屬性集合I,生成與用戶屬性集合I 對應的私鑰SK。
(3)加密Encrypt(PK;M;T):由數據所有者執行,使用公鑰PK 和訪問結構T 對明文M 進行加密,得到密文E。
(4)解密Decrypt(PK;E;SK):由用戶收到密文E 后遞歸地執行。公鑰PK,包含訪問策略T 的密文E 和對應屬性集合I 的用戶私鑰SK 作為輸入,如果屬性集合I滿足訪問結構T,可以計算輸出明文M。
CP-ABE 算法與RBAC 模型相結合:CP-ABE 算法整體框架流程和計算公式基本保持不變,根據RBAC模型替換其中的幾個概念。這里數據所有者為云存儲平臺的訪問控制系統,明文M 則是每個角色對應的角色文檔R,文檔內容可以是角色所對應的權限。訪問結構T 為角色的訪問結構。用戶、屬性集合I 以及生成的用戶私鑰SK 與原算法一致。這樣一來,當用戶嘗試使用自己的私鑰解密加密后的角色文檔時,如果用戶屬性集合滿足角色訪問結構的要求,則用戶解密成功,自動獲得角色文檔包含的權限。
在FAHP 方法中,自頂向下分為信任值、信任屬性和信任證據三級結構,構成用戶行為信任值評估的層次分解模型[16],如圖4 所示。從而把模糊的、不確定的用戶行為信任評估問題細化成簡單的、明確的信任證據加權求和問題。

圖4 用戶行為信任值評估層次分解模型
首先根據某一時刻各個信任證據值組成的矩陣計算當前用戶行為信任值。然后,為了降低系統誤差造成的影響,考慮信任值隨時間衰減的特性,討論用戶行為信任值的記錄與更新機制。
當前用戶信任值由層次分解模型和基于模糊數構建的各個信任證據間重要性的判斷矩陣來計算,計算過程包括四個步驟。
步驟1用戶行為信任證據的預處理。該過程包括以下兩個方面[17]:
(1)用戶行為信任證據的采集和更新。獲取用戶行為信任證據的方法有網絡流量監測工具、入侵檢測系統、專門的數據采集工具等,另外還可以根據需求開發自己的用戶行為信任證據采集軟件。
(2)用戶行為信任證據數值的規范化。用戶行為信任證據的數值表示方式一般有兩種,一種是百分比形式表示的,另一種是一定范圍內的具體數值。為了方便計算,需要對數值進行規范化處理,將其規范化為[0,1]區間內遞增的無量綱值。
步驟2基于模糊數的信任證據判斷矩陣和權重向量的計算。
假設將用戶行為劃分成n個信任屬性,再將某一個信任屬性細分為多個相關的信任證據,表示為EI=(aij)n×m,其中m 為所有信任屬性中信任證據的最大項數,不夠時用零補齊。通過步驟1 規范化處理方法得到規范化數值,表示矩陣為E=(eij)n×m。
有m 個信任證據E=(e1,e2, …,em),將其中任意兩個信任證據做重要性對比,得到初始判斷矩陣EQ=(eqij)m×m。其中eqij的計算公式如下:

然后將EQ轉換成模糊一致矩陣Q=(qij)m×m,其中:

最后計算某個信任屬性的m 個信任證據的權重向量Wn=(w1,w2, …,wm)T,其中wi計算公式如下:

步驟3信任屬性評估值向量和權重向量的計算。
將上一步得到的n 個信任屬性的信任證據權重向量組合在一起得到權重矩陣W=(wij)m×n。再由信任證據矩陣E=(eij)n×m和權重矩陣W=(wij)m×n,根據E×W得到的矩陣對角線上的值就是信任屬性評估值向量F=(f1,f2…, ,fn)。同信任證據權重向量的計算方法,計算得到信任屬性的權重向量Wf=(wf1,wf2, …,wfn)。
步驟4當前用戶行為信任值的計算。即:

用戶行為信任值的記錄采用滑動窗口的形式。當評估得出新的行為信任值時,整個窗口向前移動一個時間間隔,完成信任值的記錄操作。
根據信任理論可知,用戶信任值會隨著時間的增加逐漸減小。因此本文引入時間衰減因子,利用滑動窗口內的歷史信任值和當前信任值綜合計算更新用戶的信任值。綜合行為信任值的計算公式如下:

其中,Ti(i=1,2, …,h)表示滑動窗口中記錄的h個用戶行為信任值,h 即為窗口的大小。α(ti)表示信任值權重,取值范圍為(0,1],表達式如下:

其中,γ 為預先設定的值,取值范圍是(1,1.05],具體取值根據實際情況的需求選定[18]。ti(i=1,2,… ,h)表示歷史行為信任值Ti記錄時刻與當前行為信任值評估時刻的時間間隔,易知t1=0。β(ti)表示時間衰減因子。隨著ti的增加,時間衰減因子β(ti)減小,使得歷史行為信任值Ti在計算綜合行為信任值T 時所占的比重越來越小,滿足之前提到的信任理論。最后,使用綜合行為信任值更新用戶屬性集合中的信任值屬性,并繼續參與用戶是否保留該角色的判斷流程中。
采用滑動窗口的形式以及根據時間衰減因子加權求和的方式來記錄和更新用戶行為信任值的主要目的是避免因系統故障導致用戶信任值劇烈變化,用戶擁有的權限也隨之劇烈變化,增加了系統的穩定性。
使用IntelliJ IDEA 作為集成開發環境,并采用云計算相關實驗通常使用的CloudSim[19-20]作為實驗仿真平臺。在實驗過程中,通過CloudSim 創建一個包含10 臺主機的數據中心Datacenter_0,模擬數據中心中主機的硬件環境為四核CPU,16 GB 內存和1 TB 硬盤,操作系統為Linux。
接下來,首先驗證ATRBAC 模型及機制實現了訪問控制授權的動態性;然后,驗證ATRBAC 模型實現了權限的自動化授予以及增加了訪問控制的細粒度。在驗證的過程中,為體現出本文方法的優勢,將ATRBAC與傳統RBAC、同為云環境下RBAC模型研究的文獻[8]和文獻[9]中的訪問控制方法進行了比較和分析。
授權動態性驗證是通過輸入一個用戶不同時刻的行為信任證據矩陣計算用戶行為信任值,觀察用戶信任值和權限數量在不同時刻的變化情況。
本實驗創建一個用戶Broker_0 與三個角色Role1、Role2 和Role3,每個角色訪問結構的參數如表1 所示。用戶屬性集合為(id:0,name:Broker_0,department:cs,position:student,trustValue:T0),其中信任值T0由不同時刻輸入的用戶信任證據矩陣使用5.1節的方法計算得到,計算過程可參考文獻[15]。三個角色Role1、Role2和Role3 的訪問結構參數中num 代表權限數量,即用戶擁有該角色后,就允許用戶在數據中心上創建虛擬機的臺數和執行云任務的個數的上限增加num。
圖5 展示了RBAC、ATRBAC 和文獻[8]中方法在不同時刻用戶Broker_0 行為信任值和權限數量的變化情況。在這幅圖中,傳統RBAC模型中的用戶權限數量保持不變;ATRBAC模型中的用戶行為信任值隨著不同時刻輸入的信任證據矩陣的數值的變化而變化,用戶擁有的權限數量也隨之具有相同的變化趨勢;文獻[8]方法中用戶信任值在不同時刻的變化情況與ATRBAC 一致,并且用戶的權限數量也隨著信任值一起變化。進一步分析實驗結果,傳統RBAC模型在一次會話中授予用戶角色之后,用戶就在此期間永久獲得了角色所對應的權限;而本文提出的ATRBAC 模型,用戶擁有的角色和權限數量是隨著其信任值動態變化的。這樣用戶在獲取角色后,在與系統交互的過程中如果產生了危害系統安全的行為,采集到的信任證據矩陣的數值就會隨之改變,進而降低用戶信任值,最終用戶擁有的角色和權限數量都會減少。文獻[8]中采用了相同的基于FAHP 方法的信任值評估方法,所以得到的用戶信任值與ATRBC 中的一致。之后信任值用于用戶激活角色和賦予角色一定的權限,該方法同樣實現了訪問授權的動態性。由圖5 中可見,實驗結果說明了本文設計的模型實現了根據用戶的行為動態地調整用戶所擁有權限的功能,實現了訪問控制授權的動態性,有效地避免了用戶權限的濫用,提高了云存儲系統的安全性。

表1 實驗3.1角色訪問結構對比

圖5 不同時刻用戶信任值和權限數量的變化情況
文獻[9]中針對云計算環境的動態性提出的CRBAC模型通過上下文約束對訪問授權進行評估驗證,并在運行過程中進行動態調整,同樣增加了授權的動態性。但該文章中并沒有給出針對某個上下文約束信息具體的評估驗證方法。
權限自動化授予與細粒度驗證包括驗證是否實現了用戶自動化獲取角色和對應的權限以及與傳統RBAC模型相比更加細粒度的訪問控制。
在數據中心Datacenter_0 上為10 個用戶提供創建虛擬機和執行云任務的服務。10 個用戶的屬性集合分別是(id:i,name:Broker_i,department:cs/math,position:student,trustValue:Ti)(i=0,1,…,9),其中department 屬性在實驗中隨機指定一部分用戶為cs,另一部分用戶為math;信任值Ti由輸入的每個用戶的信任證據矩陣計算得到。在實驗3.1節的基礎上增加一個角色Role4,訪問結構如表2 所示。現在假設每個用戶向數據中心申請10 臺虛擬機并提交10 個云任務。運行CloudSim 仿真平臺可以查看用戶在數據中心創建虛擬機執行云任務的完成情況。

表2 實驗3.2角色訪問結構對比
圖6 展示了CloudSim 仿真實驗平臺一次運行的部分結果,進一步將實驗結果進行整理,如表3 所示。在表3 中,用戶Broker_9 的department 屬性為cs 且信任值為0.622 3,通過與角色訪問結構的匹配,自動獲得了角色Role1、Role2 和Role3,擁有最多執行12 個云任務的權限,因此提交的10 個云任務全部執行完畢;用戶Broker_8 的department 屬性為cs 且信任值為0.575 4,自動獲得了角色Role1 和Role2,擁有最多執行7 個云任務的權限,因此執行完成了提交的10 個云任務中的7 個;用戶Broker_2 的department 屬性為math 且信任值為0.616 7,自動獲得了角色Role4,擁有最多執行6 個云任務的權限,因此執行完成了提交的10 個云任務中的6個。其他用戶提交的云任務的完成情況類似。在傳統RBAC 模型下,如果Role1、Role2 和Role3 均定義為“計算機系學生”,用戶Broker_8和Broker_9同時被授予“計算機系學生”這一角色,他們擁有的權限是相同的;而在ATRBAC模型下,他們的屬性集合中“信任值”屬性的不同,導致在匹配角色Role3 的訪問結構時得到不同的結果,因此Broker_8 和Broker_9 獲得的角色不同,所擁有的權限也不同。設置多個用戶與多個角色進行云環境中的仿真實驗,實驗結果說明ATRBAC 模型實現了權限的自動化授予以及與傳統RBAC 模型相比更加細粒度的訪問控制。

圖6 CloudSim仿真實驗部分結果

表3 實驗3.2對用戶訪問控制結果
表4展示了本文提出的ATRBAC與文獻[8]、文獻[9]中的訪問控制方法在權限自動化授予和訪問控制細粒度方面的比較結果。由表4中的結果可知,文獻[8]中的訪問控制方法不能實現用戶與角色權限之間的自動化授予并且沒有針對細粒度的訪問控制作出優化。文獻[9]提出的CRBAC 模型中用戶屬性集和上下文約束與本文方法中屬性集合和訪問結構類似,所以CRBAC 在訪問控制細粒度方面與本文方法基本相同。但是該文章中僅提出了概念模型,并沒有給出具體的實現方案。而本文提出的ATRBAC 模型中CP-ABE 算法與RBAC相結合的方式是一種針對用戶權限自動化授予與細粒度訪問控制的具體可執行的解決方案。

表4 ATRBAC與其他方法對比
本文針對RBAC 模型在云計算環境下存在的問題,提出了一種基于屬性(Attribute)和信任(Trust)的RBAC模型,即ATRBAC。首先,介紹了RBAC 模型的基本原理和在云環境中存在的不足。接下來,詳細介紹了提出的ATRBAC 模型,闡述了ATRBAC 研究的技術路線和訪問控制授權檢查的流程。然后,討論了CP-ABE 算法與RBAC 模型相結合的問題。最后,使用FAHP 方法評估得到客觀合理的用戶行為信任值。實驗結果說明了相比傳統RBAC模型,ATRBAC模型實現了訪問控制授權的動態性、權限的自動化授予以及更加細粒度的訪問控制。