楊 念 韓 斌 黃樹成
(江蘇科技大學計算機學院 鎮江 212003)
隨著互聯網技術的飛速發展,越來越多的傳統行業開始擁抱互聯網,使用便捷高效的互聯網技術來高效管理企業系統應用。作為國家海洋戰略的前沿高地——港口,占地面積巨大、貨物運輸工作極其繁重,每天上萬輛運輸車不分晝夜地穿梭在巨大的場地內,所以對港口全域場地的照明條件提出了極其嚴苛的要求。傳統管理港口全場域照明設備的方式是員工一個區域一個區域的手動開關照明設備的物理開關,耗時又費力。隨著互聯網技術的加入,越來越多的港口引進了先進的智能照明管理系統,操作人員可以足不出戶的實時動態控制港口全場域內所有的照明設備,簡單而高效,該系統不僅可以控制設備的照明亮度,而且還有故障維修、能耗統計、設備管理、實時監控、分區管理、人員管理等功能,不同的管理人員擁有不同的管理權限進而管理著不同的模塊功能,此類項目大多部署在商業云上,便捷的同時對系統敏感信息的安全性帶來了諸多的挑戰。
目前,對云端信息安全的保護主要使用訪問控制技術和加密技術,訪問控制技術是為了保證數據信息不被用戶越權訪問,這些訪問控制技術根據事先在系統中預定義的規則,對用戶的訪問請求進行分析判斷,然后根據判斷結果對用戶請求進行控制,是允許用戶訪問對應數據資源還是禁止用戶訪問對應數據資源。這些訪問控制在技術實現上,資源數據是以明文的形式保存在服務器上,對用戶請求的邏輯判斷規則以軟件程序的方式運行在系統應用中。因此,這種控制方式的可靠性主要依靠服務器系統自身的安全,對服務器系統的安全性提出了極高的要求,對于復雜的商業云環境來說,其安全強度明顯不夠。
常見的訪問控制技術有自主訪問控制[1~2](Dis?cretionary Access Control,DAC)、強制訪問控制[3~4](Mandatory Access Control,MAC)和基于角色的訪問 控 制[5~6](Role-based Access Control,RBAC)等 。其中,自主訪問控制(DAC)是一種基于用戶身份和訪問規則的訪問控制模型,授權靈活、較為直觀及容易實現,但在復雜系統中存在開銷過大、效率低下的問題。強制訪問控制(MAC)是一種多級訪問控制模型,可控程度高、保密性強,但不滿足最小特權原則,系統開銷較大,靈活性差,規則制定嚴格且缺乏彈性。基于角色的訪問控制(RBAC)是在用戶和訪問權限之間引入角色作為中間代理層,簡化了權限管理,能靈活地表達和實現系統安全策略,實用性強,但是一種較粗粒度的約束。
近年來,屬性加密機制(Attribute-Based En?cryption,ABE)成為了密碼學領域一個非常重要的研究熱點。它將加密和訪問控制進行結合,加解密是一種非對稱的加解密方式,資源文件不再以明文的形式保存在服務器中,而是以密文的形式保存在服務器中,用戶的密鑰由一組屬性產生,訪問結構策略包含在密文中,只有用戶的集合屬性滿足密文中的訪問結構策略才能正確解密得到明文。因此,在屬性加密機制中,其一資源文件是以加密的形式來存儲,其二如果用戶的屬性不滿足密文中訪問結構策略就無法進行解密操作,因而在安全性上降低了對服務器的依賴,非常適合復雜系統中加密和訪問控制。
屬性加密機制由Sahai等[7]在歐洲密碼年會上首次提出,由基于身份的加密機制[8]發展而來。身份加密機制加密時使用了單屬性,而屬性加密機制加密時使用了多屬性,多屬性能夠構造非常豐富的訪問結構策略,因而具備細粒度訪問控制能力。屬性加密分為密鑰策略屬性加密[9~10](Key Policy At?tribute-Based Encryption,KP-ABE)和密文策略屬性 加 密[11~15](Ciphertext Policy Attribute-Based En?cryption,CP-ABE),前者KP-ABE將訪問結構策略包含在密鑰中,而后者CP-ABE將訪問結構策略包含在密文中,長期的實踐表明,CP-ABE可以帶來更為簡單靈活的控制方式,更適用于云端系統應用的安全訪問控制。
在港口智能照明管理系統中,人們更關心對資源文件的保護,所以本文重點研究密文策略屬性加密機制在對資源數據的保護和訪問控制的問題。本文結合港口智能照明管理系統提出了一個屬性加密應用原型系統及其部署架構,并驗證了系統的可行性。
本文設計的港口智能照明管理系統,可以分為四個模塊,分別是系統業務控制節點、屬性證書管理子系統、解密子系統、加密資源存儲子系統,這四個模塊在處理用戶請求的時候相互配合,并在實際使用中取得了良好的應用效果,系統模型如圖1所示。

圖1 系統模型
本方案中的訪問控制部分是密文策略屬性加密方案,具體流程分為以下四個環節。
1)Setup系統初始化階段
系統初始化階段以一個安全參數λ為輸入項,使用橢圓曲線雙線性對的知識,輸出系統主密鑰MK和系統公鑰SPK,MK和SPK都保存在認證中心CA上,系統中所有的屬性都保存在屬性中心AA上,系統在初始化階段時屬性中心AA還會依據系統全屬性集U生成屬性中心公鑰APK,APK保存在屬性中心AA上,即:

2)KeyGen用戶解密密鑰生成階段
運行用戶解密密鑰生成算法,輸人系統主密鑰MK和用戶的屬性集合A,生成用戶關于屬性集合A的解密密鑰SK,SK以屬性證書的形式存在,保存在屬性證書存儲中心上,其中集合A是系統全屬性集U的子集,即:

3)Encryption加密階段
這部分由系統超級管理員或者高等級管理員來運行,運行加密生成算法,輸人系統公鑰SPK、屬性中心公鑰APK、訪問結構策略T、資源文件明文M,輸出密文CT,然后將CT保存在資源文件服務器上,即:

4)Decryption解密階段
解密階段由解密子系統負責,輸人系統公鑰SPK、密文CT、用戶解密密鑰SK,首先驗證用戶屬性證書是否具有訪問該資源文件的權限,如果有該權限,則運行解密算法,輸出資源文件明文M,然后將M返回給用戶,用戶即可查看,即:

如圖1所示,系統經過Setup初始化階段后,系統主密鑰MK、系統公鑰SPK、屬性中心公鑰APK則生成完畢,系統超級管理員或者高等級管理員運行加密生成算法,設置訪問規則,將數據資源明文M加密后保存在數據資源服務器上,Setup初始化階段是系統首次運行時才會執行,加密算法這部分的工作不是每次系統運行時都執行的,而是有新的資源文件需要設置訪問控制權限才會由相關的管理員來操作。此時,系統的一切就準備就緒,等待用戶來訪問。用戶是具有該管理系統特定屬性集合的實體,用戶的屬性集合與系統的全屬性集合之間是包含關系,屬于子集關系,不同的用戶擁有不同的等級和權限,擁有不同等級和權限的用戶就有對應的權限查看不同的資源文件,所以該系統中就必須給用戶賦予不同的屬性集,用戶的屬性集將參與屬性證書的生成工作。
當一個用戶操作該系統時,發出一個訪問請求來查看一個資源文件時,首先該訪問請求會被系統業務控制節點攔截,接著該用戶的請求信息會被發送到屬性證書管理子系統的屬性證書驗證中心,驗證中心會聯合屬性證書存儲中心,一起驗證用戶是否具有屬性證書,屬性證書是一份包含用戶身份和解密密鑰的憑據,如果該用戶不具有屬性證書,驗證中心則會向屬性證書生成器發起注冊請求,給該用戶生成一個屬性證書,屬性證書生成器會和認證中心CA和屬性中心AA交互,并結合數據庫中該用戶具備的權限屬性集合,為該用戶打造出一個的屬性證書,然后保存在屬性證書存儲中心,用戶下次再訪問時就無須再次注冊新的屬性證書。當用戶具備了屬性證書后,屬性證書管理子系統會繼續將用戶請求后傳給解密子系統,屬性規則驗證中心接收到請求后,驗證此用戶的屬性證書中的解密密鑰是否具有訪問該資源文件的權限,即用戶解密密鑰SK是否滿足密文CT中的訪問結構策略T,如果滿足密文中的訪問結構策略,則進入到解密中心,解密中心會使用用戶解密密鑰SK解密開資源文件的密文CT,然后獲得資源文件的明文M,最終系統將明文M返回響應給用戶,從而完成一次完整的訪問流程。
在屬性加密機制中,最關鍵的就是密文中的訪問結構策略,它將決定用戶是否可以訪問對應的資源文件。此方案中,使用的訪問結構策略是一個訪問樹,其構造如下。
用戶的每一個權限都用一個屬性來表示,訪問樹中每一個葉子節點表示一個屬性,每一個非葉子節點表示一個門限結構(t,n),其中t表示門限值,n表示該節點下子節點的個數,當t=1時,相當于“或”門,當t=n時,相當于“與”門,當一個屬性S和一個葉子節點x的屬性相同時,表示該屬性滿足該葉子節點,記作Tx(S)=1,如果一個非葉子節點下所有滿足屬性匹配的葉子節點個數大于或等于該非葉子節點的門限值時,該非葉子節點的值就會被置為1,然后參與上一層的邏輯運算直到根節點,驗證用戶的屬性是否是滿足密文中的訪問結構策略,順序是從葉節點開始,一層一層往上做邏輯運算,最后到根節點,如果根節點最后輸出的值為1,則表示用戶滿足該密文中的訪問結構策略,接下來就可以進行解密操作。如:一個資源文件能夠被成功訪問的策略是職務是副經理,或者職稱是高級技工且其部門必須是信息中心,其訪問結構策略是“職務=副經理”OR{“職稱=高級技工”AND“部門=信息中心”},對應的訪問樹映射關系如圖2所示,如果滿足上述關系,則可以解密,否則不能解密。

圖2 訪問樹模型
本實驗環節,以港口智慧照明管理系統為框架,JavaPBC2.0工具包為基礎,實現了一個屬性加密訪問控制原型系統,并進行了實際測試觀察。原型系統里有三個持有不同屬性的用戶,持有的屬性如表1所示。

表1 用戶屬性權限表
系統一開始為這3位用戶對某一特定資源文件根據用戶具有的屬性頒發了各自的屬性證書,屬性證書中包含用戶自己的解密密鑰和身份信息,該特定資源文件用訪問結構策略“職務=副經理”OR{“職稱=高級技工”AND“部門=信息中心”}來加密。然后這3個用戶分別用自己的屬性證書來解密該資源文件的密文。測試結果表明,只有Bob和Jack能正確解密得到資源文件明文,而Alis不能解密密文,因為Alis的解密密鑰不滿足密文中的訪問結構策略結果表明,屬性加密機制可以在港口智慧照明管理系統中應用,并且可以取得很好的訪問細粒度。
本文對云端應用訪問控制進行了研究,針對密文策略屬性加密機制的特點,訪問結構策略放在密文中,加以改進提出了密文策略屬性加密方案、系統架構部署應用流程、以及獨特的訪問結構策略,將屬性加密機制應用到港口智慧照明管理系統中,同時進行了實驗測試,結果表明,本方案可以實現對資源文件的加密和系統對用戶的細粒度訪問控制,并且有效減少了對系統安全方面的高度依賴性。