王 娜
(中國聯合網絡通信集團有限公司 北京 100033)
云計算數據安全管理是將計算任務部署到云端,通過基于云端數據庫、服務器、OpenID的統一身份管理模型、PGP全信任模型等軟硬件,建立起統一資源定位符(uniform resource locator, URL)數字身份認證、公鑰環數字簽名加密管理系統,進行用戶跨域、跨服務器登錄的身份認證,并根據終端用戶授權共享其部分身份信息。隨后引入基于數據分離的安全存儲算法(KPDA data separation algorithm, KPDA),設置分布式存儲系統的有限域、數據信息長度,計算出不同數據切片的元素集合,將其分發、存儲至相應的云服務器中,數據恢復時應通過先獲取云服務器的身份信息、再還原數據塊矩陣階梯陣列向量,得到原始的網絡數據信息。
云計算網絡平臺屬于異構的數據傳輸與存儲模型,用戶訪問的數據資源、功能服務被配置于不同域中,使用傳統單點登錄URL網絡站點的訪問模式,只能被用于解決域內的訪問需求,而不能對跨域訪問用戶做出認證。因而引入基于OpenID的統一身份認證模型,以用戶為中心設置開放化、分散化的數字身份識別框架,只需要用戶在OpenID服務網站處預先注冊,獲取其OpenID身份標識符URI(uniform resource identifier, URI)/XRI,由OpenID服務提供商在用戶登錄時鑒權其終端身份,包括URI身份信息、XRI字符串標識符,若OpenID 服務網站驗證用戶身份通過后,則將跳轉至支持OpenID身份認證的服務方(relying party, RP)網絡站點,此時無須再進行用戶名、密碼的重新認證[1]。
在用戶統一身份認證管理過程中,基于OpenID URI數字身份的認證方案,具有去中心化、便捷化特征,通過將用戶身份認證、應用服務相分離,由OpenID認證服務器對用戶URI/XRI身份標識信息、登錄密碼做出統一認證,終端用戶也可自行管理個人身份標識信息的分發,滿足用戶不同的數據及服務訪問需求。
OpenID統一身份認證模型內包含用戶、OpenID服務器、RP服務方站點等組成實體[2]。用戶可根據需求選擇某一分散的OpenID認證服務器注冊個人登錄信息,OpenID認證服務器向用戶發送唯一的URI身份標識信息(如username.op.com)。同時用戶可在多個OpenID認證服務器中注冊個人信息,當某一OpenID認證服務器發生故障時,可按照XRDS系統設定的優先級順序選擇其他OpenID服務器,完成用戶身份認證,支持OpenID協議的所有云服務訪問。
假設訪問用戶為Alice,用戶Alice在OpenID 服務網站中注冊的URI身份標識為“alice.openid-provider.org”,此時用戶Alice若要使用該URI身份標識登錄至RP服務方的“example.com”網絡站點,則需要經歷以下的OpenID身份認證流程。
(1)用戶Alice在網絡計算機瀏覽器內輸入“example.com”網絡訪問站點,example.com收到訪問服務請求立即跳轉至OpenID身份認證頁面。OpenID服務器、RP服務方站點間通過共享密鑰建立關聯,利用會話請求、會話響應階段的共享密鑰,可檢驗XRI Resolution協議(用于解析XRI)、Yadis協議(用于解析URL)的合法性。
(2)由OpenID認證服務器根據用戶輸入的個人注冊信息登錄表單,認證用戶“xri://$ip”“xri://$dns”或URI身份標識信息的合法性,若合法則允許用戶登錄至OpenID服務器。
(3)RP服務方存儲關聯句柄,并向OpenID服務器發出認證用戶身份請求。OpenID服務器、RP服務方站點間使用Diffie-Hellman密鑰交換協議進行通信,使用共享密鑰對完成數據消息的數字簽名和驗證。
(4)RP服務方自動發現用戶的URI地址、“openid-provider.org”身份標識信息,并創建與OpenID服務器方的Association關聯的共享密鑰,向OpenID服務器發送用戶身份標識斷言的請求,OpenID認證服務器接收請求后,返回驗證過的URI身份標識信息和關聯句柄。
(5)RP服務方會將自身發現查詢的“openid-provider.org”身份標識信息與OpenID服務器返回的URI身份標識信息進行匹配,若用戶Alice的身份標識信息“openid-provider.org”不合法,則RP服務方得到否定回答,“example.com”網絡站點拒絕用戶登錄;若“openid-provider.org”身份標識信息合法,則RP服務方允許用戶Alice登錄,隨后網絡站點保存該次會話。
(6)屬性交換。在RP服務方提交用戶身份驗證請求的過程中,向OpenID認證服務器發出自身需要某些用戶信息字段(也即用戶屬性信息)的請求,隨后OpenID認證服務器將這一用戶信息訪問請求發送至用戶終端,由用戶決定是否向其提供身份屬性信息,若用戶同意則由OpenID服務器返回類似“http://openid.net/srv/ax/1.0”的身份屬性信息,RP服務方接收指定的屬性列表、身份屬性信息,若不同意則拒絕訪問。
PGP全信任模型為依托于OpenPGP數字簽名標準規格的密文加密技術,負責生成公鑰密碼的密鑰對、加密和解密、數字簽名生成和驗證等操作?;赑GP信任模型的去中心化分布式網絡數據加密,通常采取公鑰環信任模式,實現一次性會話密鑰的加密、解密、生成數字簽名、驗證數字簽名,進而確保分布式網絡數據消息傳輸、存儲的安全性[3]。具體的PGP全信任模型的云計算數據加密、數字簽名流程如圖1所示。
(1)分布式網絡數據消息加密。使用偽隨機數生成器自動生成會話密鑰對,用接收者的公鑰密碼加密會話密鑰,用會話密鑰對數據壓縮消息加密,將經過加密后的網絡數據消息、加密后的會話密鑰合并,并將加密后的網絡文本數據轉換為報文數據。
(2)壓縮數據消息解密。接收者輸入解密的口令,使用單向散列函數求取口令的散列值(如用戶登錄身份認證的password口令),生成私鑰的解密密鑰。對接收與轉換完成的報文數據,使用私鑰進行會話密鑰解密,再使用會話密鑰的對稱密碼解密壓縮數據,得到原始的數據消息。
(3)生成數字簽名。由發送用戶輸入數字簽名口令Signature,確定與接收用戶PGP公鑰相關的“密鑰所有者”“密鑰數字簽名”“密鑰合法性Key Legitimacy”等指示字段。使用單向散列函數求取簽名口令的散列值,對原始數據消息的散列值進行數字簽名,將原始數據消息、簽名后的數據散列值合并,壓縮為文本數據,通過二進制文本轉換器轉換為報文數據。
(4)驗證數字簽名。使用二進制文本轉換器,將報文數據轉換成二進制文本數據,對壓縮過的數據解壓縮,分解解壓縮后的數據為原始數據消息、簽名后的數據散列值。將簽名后的數據散列值使用發送用戶的PGP公鑰解密,使用單向散列函數計算分解的原始數據消息散列值,比較二者生成的散列值結果,若相等則表明數字簽名驗證成功,否則表示驗證失敗。
KPDA數據分離算法也被稱為密鑰策略分散算法,主要面對C/S(服務器/客戶機)結構、數據塊存儲的服務器文件系統,將云計算網絡數據分塊、獨立分布到n個物理節點之中保存,這時便需要用到數據分離與恢復算法?,F有的數據分離算法包括數據條帶分割技術、密鑰加密技術、糾刪編碼技術等[4]。
(1)數據條帶分割技術。數據條帶分割是將原始數據分割為若干個小段,保存不同數據塊至相應的服務器存儲設備中。如:獨立磁盤冗余磁盤陣列(redundant array of independent disk, RAID)條帶分割技術,是將數據分割存儲至RAID0、RAID1、…、RAIDn等的數據字節,不同數據字節被寫入不同的存儲磁盤[5]。即使某一磁盤出現故障,其他磁盤不受影響,該磁盤分割的數據可通過奇偶校驗、糾刪編碼等方式重建。
(2)密鑰加密技術。密鑰加密包括密鑰生成、數據加密等處理技術。在有限域內圍繞原始網絡數據,選定單個數據字段長度n=2m,設置碼源長度l、可糾錯數量t,在原始數據集合GF()中構造1×n階Goppa碼矩陣G=[IFl×(n-1)]、1×1階非奇異矩陣S、n×n階置換陣P,對G置亂生成加密密鑰G′=SGP。其中S、P表示私鑰,G′表示公鑰。
(3)糾刪編碼技術。糾刪編碼為提高數據可用性的處理技術,采用糾刪編碼方式將原始明文數據轉換為密文,將分離后數據片段合并,設置為n塊。將其他冗余數據塊擴展、編碼與存儲至相應網絡節點或磁盤,如RS碼、Tornad碼以防止數據被竊取或丟失,保證網絡文本數據的可用性。

(1)密鑰生成與加密。利用構造的1×n階Goppa碼矩陣G=[IFl×(n-l)]、G′公鑰,對n×n階的數據字段置換陣P做出加密操作。之后對加密數據做出壓縮變換,使原始數據D消除碼字間的線性關系,若原始數據D的長度為N,則將不同網絡節點存儲的數據字段整合為矩陣D,表示如式(1)。將式(1)矩陣計算得到壓縮后的原始數據集合記作Mi=(d(l+1)/(i-1),d(l+2)/(i-1),…,dil)。
(1)
(2)確定數據合并規則。依據G′公鑰將原始明文數據轉換為密文后,按照Ci=(ci1,ci2,…,cin)=MiG′=MiSGP的數據合并規則,設置n個分離的數據片段,構成數據合并規則的線性方程組S=(S1,S2,…,Sn),計算公式如式(2)。其中di∈G,i={1,2,…,N/1}。
(2)
(3)糾刪編碼。使用諸如RS碼的循環碼、反饋線性移位寄存器,將S1、S2、…、Sn等數據份額集合做出糾刪編碼,分配至n個不同的網絡節點存儲,根據循環碼固有的代數結構完成線性分組方程的譯碼,直到所有數據份額集合分配完畢。

利用硬件參數為Genuine Intel(R) CPU T2080 @1.73 GHz CPU 32 GB的虛擬機、LINUX操作系統,安裝BitXMesh測試組件,搭建起用于KPDA數據分離算法存儲實驗的環境。設置數據分離存儲實驗的測試代碼,對參與實驗的原始數據D做出確認、密鑰加密、數據份額集合S設置與分配存儲,得到不同吞吐數據量下的KPDA算法實驗結果如表1所示。

表1 不同吞吐數據量下的KPDA算法實驗結果
從表1可得出,當原始數據D吞吐量(TPS)處于100~10 K范圍內時,利用KPDA數據分離算法對網絡隱私數據做出加密、分離與存儲,其實用拜占庭容錯算法(practical byzantine fault tolerance, PBFT)處于穩步上升趨勢。當面對海量化(TPS>10 K)數據的加密與存儲時,PBET容錯提升至90%,表現出明顯的安全防護優勢。
綜上所述,基于大數據及云計算技術的用戶訪問控制、數據安全管理,主要利用密文或密鑰策略的屬性基加密方案、RAA-CCP統一身份認證協議等,完成用戶統一身份認證、數據加密/解密傳輸、數據存儲等任務要求。通過引入基于OpenID統一身份認證模型,獲取其OpenID身份標識URI/XRI,由OpenID服務提供商在用戶登錄時鑒權其終端身份,使用PGP全信任模型進行云計算網絡數據數字簽名加密,使用KPDA數據分離算法,建構起用于數據塊文件分散、分布式私密數據存儲的管理系統,實現不同類型數據資源的加密傳輸、安全存儲。