張志勇 常亞楠 王 劍 向 菲
(河南科技大學信息工程學院 河南 47102)
云計算是以虛擬化技術為基礎,以網絡為載體提供基礎架構、平臺、軟件等服務為形式,整合大規模可擴展的計算、存儲、數據、應用等分布式計算資源進行協同工作的超級計算模式。在云計算模式下用戶不再需要購買復雜的硬件和軟件,只需要支付相應的費用給“云計算”服務提供商,通過網絡就可以方便地獲取需要的計算、存儲等資源。根據國際數據公司(IDC)的預測,全球云計算的市場規模將從2008年的160億美元增加到2012年的420億美元,占總投入比例也將由4.2%上升到8.5%。 然而近兩年來,云服務提供商和用戶之間頻頻出現各種不安全事件,2009年3月7日,谷歌發生了大批用戶文件外泄事件。而在通信過程中,數據信息被接收竊聽、篡改、重放、干擾等,用戶身份也容易被冒充。由此可見,云計算潛在的各種風險和的安全問題更加突出,這成為目前阻礙云計算發展的最大阻力。
可信計算TCG(Trusted Computing Group,可信計算組織)針對目前計算機系統不能從根本上解決安全問題而提出的,通過在計算機系統中集成專用硬件模塊建立信任源點,利用密碼機制建立信任鏈,構建可信賴的計算環境,使得從根本上解決。
計算系統的安全問題成為可能。通過可信計算平臺TPM(Trusted Platform Module)的功能支持,可信計算平臺能夠實現可信度量和報告、數據保護等安全服務。可信計算技術的產生為云計算提供了很好的技術支持,那么,將云計算和可信計算技術的融合研究將成為保障云安全的一個重要方向,文獻[3,15]提出“可信云”思想。文獻[5,19] 將云計算系統與可信計算系統結合提出了一個新的可信的云計算系統解決云計算的安全問題。本文就目前部分用可信技術設計安全協議來支持云計算的研究現狀和成果進行綜述。將可信接入方案運用到云環境中,并用安全協議來保證整個環境的安全。
隨著信息和通信技術的快速發展,計算模式經歷了從最初把任務集中交給大型處理機模式,到后來發展為基于網絡的分布式任務處理模式,再到最近的按需處理的云計算模式。云計算的實質是給用戶提供按需計算服務,其目標是用戶通過網絡能夠在任何地點、任何時間最大限度地使用虛擬資源池,處理大規模計算問題。目前,在學術界和商業界的共同推動下,云計算得到了迅速的發展,而隨之而來的安全問題越來越突出。
云計算中用戶將數據存儲在云端,因而不再擁有自己對數據的完全控制能力,要求云服務商提供有效的安全保障,使其信任新環境下的數據安全問題。然而,根據云計算的特性分析,使其能夠信任新環境下的數據安全問題。然而,根據云計云計算技術發展的同時,也引入一系列安全問題。文獻[3]在云中數據的保密和安全,云數據隱私保護、數據取證及審計等問題對云計算的安全問題進行分析。文獻[4]將云計算的安全問題歸納為以下10個方面[4]:(1)訪問控制;(2)攻擊/危害檢測;(3)不可否認性;(4)完整性;(5)安全審計;(6)物理技術防范;(7)隱私和機密性;(8)恢復;(9)實施;(10)多個子因素。由此可見,云計算的安全需求迫在眉睫,如何有效的實現云計算環境中的安全問題亟待解決。
在云計算環境下,用戶的應用系統和數據移至了云服務提供商的平臺上,用戶可以隨時隨地訪問云服務商提供是資源,這種云計算環境下的開放性和網絡的復雜性,使云計算面臨更嚴重的安全威脅。因此,安全問題已經成為制約云計算發展的重要因素。確保在云計算環境下可信接入,是當前信息安全領域的一個前沿研究課題。如何使得用戶能夠在任何地方安全接入云服務提供商系統,同時保證通信鏈路的安全性,是云計算應用領域發展的關鍵。目前國內外對云計算環境的安全研究主要集中在兩個方面:一是仍然從傳統的軟件入手,如防火墻的設置等。二是從硬件方面尋求安全的解決方案,最具代表性的就是可信計算的出現,可信計算的出現為安全問題提供了一種新的研究思路,變“被動防守”為“主動抵御”。
國際性的非盈利機構可信計算工作組(Trusted Computing Group,TCG)對可信的定義為:可信是一種期望,在這種期望下設備按照特定目的以特定方式運轉[10]。可信計算技術提供了一種方式來建立一個安全環境。可信計算模型的初始設計是在個人平臺上提供隱身和信任,而隨著網絡計算成為主流計算,可信計算模型也用來支持分布式環境下的云計算。因此,可以集成可信計算技術來解決云計算的安全問題。
傳統的硬件安全接入方案【9】有思科的網絡準入控制技術NAC,微軟的網絡接入保護技術NAP以及TCG組織的可信網絡鏈接技術TNC。NAC的核心思想是在不符合安全策略的系統進入網絡之前,通過對其安全級別進行判定,控制不符合安全策略的設備訪問權限,將不符合安全策略的系統加以隔離,使其技能訪問獲得的有限資源。NAP平臺提供了一套完整性校驗的方法來判斷接入網絡的健康狀態,對不符合要去的客戶進行限制其訪問權限。TNC是建立在可信計算技術基礎上的,把TPM可信度量機制和可信報告機制等功能等作為構建可信網絡連接系統的重要組成部分,實現網絡訪問控制。
隨著云計算的迅速發展,發現和認識云計算各種問題,相應提出各種解決方案,由于云計算自身復雜性的特征,使得云計算很難單靠軟解決所有的問題。一種可以嘗試的方向就是利用硬件芯片和可信計算的支持,在云計算環境中建立可信計算基(TCB)保護用戶、基礎設施、服務提供商的秘密,進行完整性度量以及執行云計算參與各方的身份證明和軟件可信證明,也即構造可信基的可信云計算[3](Trusted Cloud Computing。文獻[3]提出了將可信計算與云計算相結合的思想,建立“可信云計算”,介紹了“可信云計算”的4個具體研究思路[3]如下:(1)在移動計算中建立可信云計算的基礎結構和應用;(2)在云計算中通過使用TPM進行遠程認證的相關協議;(3)在云中利用用戶的數字ID和可信計算技術結合,提高云端數據的安全性、保密性和完整性;(4)基于TPM和可信計算基 的公共PKG基礎設施建設。文獻[5,19] 將云計算系統與可信計算系統結合提出了一個新的可信的云計算系統解決云計算的安全問題。文獻[26]針對云計算網絡環境下的模糊性,用戶行為的隨機性以及歷史經驗的主體性,提出了一個基于云模型的可信網絡認證模型。云計算環境下,這些方法在身份驗證、訪問控制以及數據保護等方面獲得更好的效果。由此可見,將云計算與可信計算的結合成為解決云安全的有效途徑。
云計算在給我們帶來優勢和便利的同時,也面臨著新的安全挑戰。(1)雖然云服務提供商能夠提供安全性更高的存儲設備,但是海量的數據存儲在云上使得數據更容易遭受攻擊者攻擊。(2)對于云服務提供商來說,由于一些利益原因,他們可能不會真實的反映對云用戶數據的存儲情況,例如云服務提供商可能因為利益原因刪除一些云用戶從不訪問或者很少訪問的數據,并且云服務提供商可能隱瞞由他造成的用戶數據的丟失來維護他的聲譽[6]。因此可以看出,如果這個問題不能得到有效的解決,將嚴重阻礙云計算的發展。安全協議的目的是在不安全的通信信道中在協議執行過程中達到某些安全特性。安全協議又叫密碼協議,是指兩個或兩個以上的參與者為了完成某些特定的任務采用了若干的密碼算法而采取的一系列步驟。
2.1.1 基于可信計算平臺的安全協議
基于可信計算平臺,運用PKI技術,實現可信計算平臺之間、可信和非可信計算平臺之間的安全通信。可信計算平臺可以保證本機的安全,鑒于此,文獻[7]提出了基于可信平臺的安全協議。協議具體執行步驟如下[7]。使用一下符號來描述協議:
PKA:A的公鑰
SKB:B的私鑰
T:時間戳
K:A和B通信的對稱密鑰
{T+1}SKA:用A的私鑰加密消息T+1
A→B:表示A給B發送消息
①.A→B:PKA
②.B→A:{{K,T} PKA , PKA } SKB
③.A→B:{T+1}SKA
步驟(1):A把公鑰PKA發送給B;
步驟(2):B收到A的公鑰后,先用A的公鑰PKA加密A與B之間進行通信的對稱密鑰K和當前時間T得到M,然后把用B的私鑰SKB加密M和PKA得到B的簽名,然后將簽名發送給A;
步驟(3):A收到消息后,先驗證簽名,驗證通過后再用A的私鑰解密M得到K和T,然后A對T+1做簽名操作,再把簽名發送給B。協議具體時序圖如圖1所示。

圖1 基于可信平臺的安全協議時序圖
2.1.2 基于口令的三方密鑰交換(3PAKE)協議
在復雜多變的云計算環境下,如何保證通信雙方的安全性,文獻[6]提出了一個基于口令的三方密鑰交換(3PAKE)協議。3PAKE協議能夠高效的實現的大量云用戶之間的密鑰交換,而不需要云用戶保存其他云用戶的口令。協議具體執行過程如下:
協議的具體步驟[8]如下:
步驟(1):A發送A,B給S;
步驟(2):S收到A,B后,首先S產生隨機數a,b∈R Z*p,計算SA=Eh(PWA)(ga),SB=Eh(PWB)(gb);然后將SA,SB分別發送給A,B;
步驟(3):A,B收到SA ,SB后,解密SA ,SB得到ga=Dh(PWA)(SA),gb= Dh(PWB)(SB)。然后A,B分別產生隨機數x,y∈R Z*p,并計算VAS= Eh(PWA)(gx,h(gax,A,B,S)),VBS= Eh(PWB)(gy,h(gby,A,B,S))。最后分別將VAS,VBS發送給S;
步驟(4):S收到A,B發送的VAS,VBS后,分別計算Dh(PWA)(VAS), Dh(PWB)(VBS)得到解密后的前辦部分gx,gy,然后利用自己保存的a,b計算h(gax,A,B,S),h(gby,A,B,S),并分別驗證是否與解密后的后半部分相等,若相等,S計算VSA=Egax(gx,gy,A,B),VSB=Egby(gx,gy,B,A)。然后分別將VSA,VSB發送給A,B。

圖2 3PAKE協議的執行流程
步驟(5):A,B收到VSA,VSB后,分別利用保存的gax,gby對它們解密,計算Dgax(VSA),Dgby(VSB),A驗證解密后的消息中是否含有gx,B驗證解密后的消息中是否含有gy,若驗證都含有,則A,B計算KAB=(gy)x, KBA=(gx)y。A,B雙方的會話密鑰K=h(A,B,S,,KAB)= h(A,B,S, KBA)=h(A,B,S,gxy)。
2.1.3 云計算環境下數字媒體分發CDMDP協議
面對復雜的云計算環境,數字媒體分發同時又能對數字媒體的版權進行保護是目前的熱點和難點。多媒體社交網絡環境下,針對社交網絡用戶節點間的數字內容共享與傳播行為,并基于支持可信驗證代理方的遠程證明,文獻[11]提出了多媒體社交網絡環境下的數字內容安全分發體系框架及其安全協議。文獻[8]提出了一種云計算環境下數字媒體分發協議CDMDP,其功能是在云計算環境下對數字內容分發并對數字內容進行有效保護。CDMDP協議時序圖如圖3所示。

圖3 CDMDP協議時序圖
具體步驟【9】前3步為云計算客戶端用戶提交內容信息和權利要求信息和云計算內容提供方向云計算內容分發方發送復合數字對象的過程,4、5步驟為云計算內容分發發送加密復合數字對象給云計算客戶端的過程。6、7步驟為向云計算收費過程。
2.1.4 云計算環境下的安全協議
近年來,網絡帶寬和硬件技術的飛速發展驅動了互聯網的發展。云計算是基于因特網提供的動態可伸縮性和虛擬化的資源做為服務。根據云計算的特征,云計算環境下有許多應用程序和數據中心,因此,必須考慮信息和通信安全與認證問題。但是,大部分研究是對安全和認證需求的大量計算資源;這并不適合云計算環境。文獻[13]提出了一種輕量級的安全協議來增強云計算中的安全和認證的服務。
云安全把網格計算與并行計算結合起來,對未知的病毒和其他的技術和概念進行判斷。文獻[14]提出了對網格計算和云計算互通的安全協議,通過大量網絡客戶端檢測的非正常行為狀態,獲得的木馬、病毒及其他不良程序的最新信息,發送這些信息給服務器,服務器進行動態分析和處理,再把解決方案分配給每個客戶端去解決不安全問題。
如今,隨著數據數量和數據連接關系的急劇增加,許多供應商和特定的數據中心采用動態加載和平衡訪問較大的基礎設施。在處理和分享云計算環境下的數據時,必須關注云計算的安全問題。針對這種情況,文獻[15]提出了一個在客戶端和云端管理方控制的可信云計算環境中,在資源認證和共享時,基于RSA和MD5算法安全云用戶協議。該協議分為兩部分,一部分由云環境允許的正常用戶控制執行操作和數據下載,另一部分是在云計算安全可信的環境中,云端管理者得到客戶準許情才能讀和更新數據,隱藏的信息和用戶保護的信息得到了保護。
現將三種安全協議方案在采用機制、安全性能、抗攻擊模型和系統開銷等多個功能性方面進行對比,如圖表1所示,這里使用符號“∨”,“×”,“+”分別表示具備、不具備,沒有涉及或描述該功能。
(1)消息的保密性:在整個系統中,只有TPM被認為是可信的,協議中所有的加密簽名去都以PCR值的方式存儲在TPM中,平臺中的任何其他實體不能獲取或訪問,這保證了消息的保密性。文獻[6-7]是基于可信計算平臺的,可以防止加密的信息在通信前被木馬等病毒程序的替換或篡改,并確保在消息的傳輸過程中不出現明文信息。而文獻[8]雖然沒有可信第三方的支持【8】,通過定理3證明了從參與協議運行的各實體滿足保密性。文獻[18]是基于加密算法RSA也滿足消息的保密性
(2)消息的完整性:文獻[6,8,18]中均采用散列算法對發送的密文消息進行Hash計算,然后對散列值進行加密完成簽名操作。有效的實現了信息的完整性。
(3)不可否認性:在實際應用中A是網絡請求客戶端、B是提供服務的網絡服務器。文獻[7]可以防止客戶端A登陸到服務器端B進行惡意操作后否認登陸過服務器端B,只要在B上保留A的簽名文件{T+l}SAk即可,同時A保留B的簽名文件{{K,T}pAk,pkA}ksB也可以防止B的抵賴"。文獻[6]中,可信第三方S預先保存A和B的基于口令的驗證信息VA=gh(A,S, PWA),VB=gh(B,S, PWB),從而保證A,B雙方的不可否認性。
(4)抗攻擊性能分析:文獻[7]中在協議的第二步加入了A與B進行通信的對稱密鑰K,可以防止截留轉發攻擊,并且時間戳T可以防止重放攻擊。文獻[6]通過對竊聽,重放,冒充,偽造等攻擊方法做出假設,經驗證均不成立。文獻[8]對攻擊事件{in(M,N).outM.outN.nil},無法產生包含CHDO的標識【8】,因此,攻擊事件不成立。
(5)性能分析:文獻[7]該協議基于可信計算平臺,在該協議中可信第三方CA接收和處理的數據較少,并且不需要對A或B發送的消息進行認證和簽名操作,突破了整個通信系統的瓶頸,保證通信安全性的同時大大提高了通信的效率,同時在B收到A的連接請求后不用到CA處下載A的證書獲得公鑰,這樣服務器可以同時響應多個客戶端的連接,提高了工作效率。文獻[6]協議通過S實現用戶間的密鑰協商,用戶每運行一層2pAKE協議,可根據需求進行多次密鑰協商,這樣使得協議的運行效率得到很大提升,其中隨機數個數,交換輪數和執行時間上通過測試結果表明均比較小。但是指數運算次數有所增加。文獻[8]提出的云計算環境下數字媒體分發協議具有成本低,可靠性高、易擴展等優勢。

表1 .相關方案的機制與性能對比
安全協議是系統安全的的基礎,也是實現整個計算機網絡安全的關鍵。然而,有些協議在使用了相當長的時間后,相繼被發現存在安全漏洞,因此,對安全協議的證明是非常重要的。一般,對安全協議的證明方法主要有以下幾種:(1)串空間模型理論;(2)進程代數理論;(3)認證測試證明理論;(4)歸納法理論。
(1)串空間模型理論:串空間理論是由Fabrega,Herzog和Guttman提出的一種安全協議形式化分析方法,結合了定理證明和協議跡的思想,嚴格規范了合法主體的行為、攻擊者的能力與運行環境,借助帶有因果關系的有向圖來描述協議的執行過程。串空間模型能準確地描述協議執行過程中事件的先后順序及因果關系,為研究人員提供了一種有效的協議分析理論【9】。其中文獻[9]用串空間理論模型證明了無線遠程證明傳輸協議安全性。文獻[16,17,18]提出了串空間模型下安全協議的證明,
(2)進程代數模型理論:進程代數是一類使用代數方法研究通信并發系統的理論的泛稱【20】,進程代數是以安全協議描述語言形式化證明方法支撐進程代數理論。文獻[20]提出了一種基于進程代數的安全協議驗證消解算法,用進程代數理論,將協議的描述轉化為邏輯規則,對協議中認證性和保密性進行證明。文獻[21]結合進程代數理論和歸納方法,對Petrn網的數字媒體分發協議進行形式化證明。文獻[22]提出了基于進程代數的TCG遠程證明協議的形式化驗證。
(3)測試證明理論:為了解決狀態空間爆炸問題,研究人員又提出了證據構造方法,用于證明協議所能滿足的安全屬性,其中最典型的方法就是認證測試理論,它是以嚴格的數學定義和理論推導,大大降低了協議分析過程中產生的空間狀態問題【23】。文獻[23]利用認證測試理中消息間的偏序關系和認證測試理論中的定理,證明了協議的安全性。文獻[24]根據不同密鑰加密情況下的屬性進行測試,對認證測試方法進一步擴展,并證明協議的安全性文獻。
(4)歸納法理論:歸納法使用一組規則(或者事件)表示安全協議的操作,可能的規則序列(又稱運行軌跡)表示協議的執行。這樣,協議的性質可以表示為運行軌跡的性質。因為運行軌跡是歸納定義的,所以,運行軌跡的性質或協議的性質可以使用歸納法證明【25】。文獻[21,25]均采用歸納法證明協議的安全性。
根據云計算技術特點,分析了云計算環境下的安全問題。“可信云”是把可信計算技術融入到云計算中提供安全的云環境。然而,安全協議是網絡安全的基本保障,對云計算環境下的可信接入安全協議進行歸納總結和對比分析。對該類安全協議的形式化證明分析將成為保障可信云安全性和可生存性的關鍵。
[1] 吳吉義,沈千里,章建林等.云計算:從云安全到可信云[J].計算機研究與發展,2011,48: 229-233.
[2] 李喬,鄭嘯.云計算:云計算研究現狀綜述[J].計算機科學.2011,38(4):32-37.
[3]楊建,汪海航,王劍,等.云計算安全問題研究綜述[J].小型微型計算機系統,2012,33(3):472-479.
[4] Patrick Hner.Cloud Computing Security Requirements and Solutions: a Systematic Literature Review[C].19thTwente Student Conference on IT, 2013.
[5] R.La‘Quata Sumter.Cloud Computing: Security Risk Classification , ACMSE 2010, Oxford, USA
[6] 何小虎.基于云計算的安全協議分析與設計[D].成都電子科技大學,2012.
[7] 劉同波.基于可信計算平臺的安全協議關鍵技術的研究與實現[D].國防科技技術大學研究生院,2005.
[8] 郭迎九,張春光,田立勤.云計算環境下數字媒體分發協議及其安全性證明[J].系統仿真學報,2012,24(12):2431-2433+2438.
[9] 王劍.移動終端可信接入與驗證[D]同濟大學,2011.
[10] Grawrock D.TCG Specification Architecture Overview Revision 1.4.[EB/OL].[2011-05-01].https://www.trustedcomputionggroup.org/groups/TCG_1.4_Archiecture_Overview.pdf
[11] 張志勇,楊麗君,黃濤.多媒體社交網絡中的數字內容安全分發研究[J].計算機科學,2012,39(4):94-97.
[12]王劍,張志勇,余衛華等.一種可信計算支持的DRM系統及其安全協議研究[J].計算機科學,2013,40(6):103-107.
[13]Shuching Wang, Wenpin Liao, Kuoqin Yan,et al.Security of cloud computing lightweight authentication protocol [J].Applied Mechanics and Materials, 2013, 284-287: 3502-3506.
[14]R.Rajagopal, M.Chitra.Trust Based Interoperability Security Protocol for Grid and Cloud Computing[C].2012 3rd International Conference on Computing,Communication and Networking Technologies, 2012.
[15]Ashutosh Kumar Dubey, Animesh Kumar Dubey, Mayank Namdev, et al.Cloud-User Security Based on RSA and MD5 Algorithm for Resource Attestation and Sharing in Java Environment[C].2012 CSI 6th International Conference on Software Engineering, 2012.
[16] 皮建勇,楊雷,劉心松等.一種新的安全協議及其串空間模型分析[J].計算機科學, 2010,37(1):118-121+180.
[17]董學文.基于串空間模型安全協議是形式化方法的分析與擴展[D].西安電子科技大學, 2011.
[18]劉冰.基于串空間模型的安全協議形式化分析技術研究[D].山東大學, 2007.
[19] Zhidong Shen, Li Li , Fei Yan, Xiaoping Wu.Cloud Computing System Based on Trusted Computing Platform[C].2010 International Conference on Intelligent Computation Technology and Automation,2010.
[20] 劉萬偉,周倜,李夢君等.一種基于進程代數的安全協議驗證消解算法[J].計算機工程與科學,2006,28(7):14-16+27.
[21]郭迎九,林闖,尹浩等.基于Petri網的數字媒體分發協議的安全性證明[J].電子學報,2009,37(5):1030-1036.
[22]王勇,方娟,任興田.基于進程代數的TCG遠程證明協議的形式化驗證[J].計算機研究與發展,2013, 50(2): 325-331.
[23]李謝華,高春鳴.基于改進認證測試理論的高效安全協議驗證算法[J].計算機科學,2009,36(4):73-76+128.
[24]王鵬.認證測試方法在安全協議形式化分析中的應用研究[D].上海交通大學,2008.
[25]喬海燕.安全協議驗證的歸納法方法與串空間形式化比較[J].計算機研究與發展,2008,45:137-142.
[26]Kun Wu, Chuyan Li.Trusted Network Authorization Scheme Based on Cloud Model [J].Journal of Convergence Information Technology,2010,7(3).