于士堯 孫文生
北京郵電大學 北京 100876
隨著科技的進步和互聯網的發展,云計算技術逐漸成熟并商用,它顛覆了傳統的IT系統對于數據存儲、傳輸和邏輯的處理方式,利用互聯網的巨大資源為個人和企業提供更加便捷高效的服務。自2006年Google在全球搜索引擎戰略大會(SES)上提出“云計算”的概念后,云計算逐漸走入人們的視野并在之后的幾年中進入了蓬勃發展的階段,目前,云計算技術已經在商業領域有了一些成熟的應用,并擁有廣闊的發展空間。
云計算是當前發展十分迅猛的新興產業,被看作是繼個人計算機和互聯網之后的第三次IT革命,可以說云計算在一定程度上代表了未來互聯網的發展趨勢[1]。云計算最早由谷歌等互聯網企業提出,并隨著互聯網技術的發展不斷壯大,目前,國外云計算理論已經較為完善并擁有一些成熟的商業應用和企業云(私有云)架構方案[2]。我國云計算發展起步較晚,但隨著運營商、廠商、應用服務商以及科研機構對云計算研究的不斷深入,國內的云計算也在快速發展中。
在市場應用層面,云計算服務降低了企業、政府、個人的信息化建設成本和運營維護成本,其優勢獲得了越來越多的認可,許多全球500強企業和國外重要政府部門都開始使用云計算服務處理內部數據和管理流程。在服務提供廠商層面,眾多知名的互聯網企業如谷歌、亞馬遜和微軟都在爭搶這個新興的市場[3]。其中亞馬遜等公司的云計算平臺提供可快速部署的虛擬服務器,實現了基礎設施的按需分配,MapReduce等新型并行編程框架簡化了海量數據處理模型[4],谷歌的AppEngine云計算開發平臺為應用服務提供商開發和部署云計算服務提供了接口。
云計算實際上并非近年來提出的全新概念,早在1961年計算機先驅John McCarthy就預言:“未來的計算機資源可以像公共設施(例如水、電)一樣被使用”[5]。為實現此目標,學術界和工業界在之后的數十年間提出了集群計算、效用計算、網絡計算、服務計算等技術,云計算就是從此發展而來的。
云計算借鑒了傳統的分布式計算思想,通常采用計算機集群構成數據中心,并以服務的形式交付用戶,使用戶可以像使用公共基礎資源一樣按需購買云計算資源,這個特性與網格計算的目標非常相似[5]。同時云計算是彈性的,即云計算可以根據工作負載大小動態分配資源,而部署在云計算平臺上的應用則要適應資源的變化并做出響應。云計算強調大規模資源池的分享來提高資源復用率并降低成本,云計算的特點可歸納如下[6]。
1) 彈性服務和按需服務。以服務的形式為用戶提供應用程序、數據存儲和基礎設施等資源,并根據用戶的需求自動分配資源。服務規模根據業務負載的改變而動態變化,使用戶占用的資源同業務需求保持一致,從而避免因服務器性能過載或冗余等原因導致的服務質量下降和資源浪費。
2) 資源的池化與透明化。對于云服務提供者來說,各種底層資源(如計算、存儲、網絡、邏輯資源)的異構性被屏蔽,邊界被打破,以共享資源池的方式統一管理,并利用虛擬化技術,將資源分享給不同用戶,資源的放置、管理和分配策略對用戶是透明的。
3) 高擴展性和可靠性。云計算為了快速、靈活、高效、安全地完成海量用戶的需求,就必須有一個十分完善的底層技術架構作為支撐,此架構要滿足大容量、高彈性以及足夠快速的業務響應和故障冗余機制,要有足夠完備的安全管理和用戶管理措施。
就圖書館資源來說,高等學校可以依據共享的資源數量和質量來要求共享者提供相應的建設成本和運營成本;又比如實驗室以及設備,也可以根據共享的理念,擁有豐富資源的高校可以給資源少的高校提供資源,只需要提供相應的成本補償即可以確保利益不受損。最后,就個人而言,教師如果有資歷可以參與外聘工作,同時可以得到受聘用高校給付的勞動報酬。應建立和完善有償機制,從而對有償支付使用進行統一的規定,防止亂收費現象的發生。收費主要是依據用于資源自身的維護、維修的需要,資源管理者的勞務費或者是購置新的資源等方面制定的,并且應避免以盈利為目的,在此之后還應該將收費的標準上報學校和相關部門備案,同時應接受公開監督和檢查。
總之,云計算是分布式計算、互聯網技術以及大規模資源管理等技術的融合發展,涵蓋了數據中心管理、資源虛擬化、海量數據處理以及計算機安全等問題。
數據安全是指通過技術或非技術方式保證數據訪問受到合理的控制,同時,保證數據不因人為或意外損壞而泄漏或更改。由于云計算架構與傳統軟件架構的區別,傳統的數據安全技術可能不再適用,云計算在技術方面主要通過入侵檢測、防火墻、安全配置、訪問認證、權限控制、數據加密、數據備份等手段來保證數據安全;在非技術方面可以通過制定相關法律和規章制度保證數據的安全性。
本文將在第二節中從數據的可用性和完整性方面探討云計算中的數據安全問題,在第三節中重點研究云計算中數據隱私性方面的安全問題以及針對該問題的主流解決方案,最后在第四節中對全文研究內容進行總結。
云計算數據的處理和存儲都在云平臺上進行,計算資源的擁有者與使用者相分離已成為云計算模式的固有特點,云計算的使用者不可避免地會擔憂私有數據的存儲安全和隱私性保護。用戶數據甚至包括涉及隱私的內容在遠程計算、存儲、通信過程中都有可能被泄漏,同時存在因斷電或宕機等物理設備故障導致的數據丟失等問題。雖然云服務提供商可以組織安全服務隊伍對整個系統進行專業化安全管理,但由于云計算系統巨大的規模以及極高的開放性與復雜性,其安全問題依然面臨著前所未有的嚴峻考驗。甚至對于不可靠的云基礎設施和服務提供商,還可能通過對用戶行為的分析推測,獲知用戶的隱私信息。這些問題都將導致用戶與云服務提供者之間的沖突,降低用戶對于云服務提供商的信任度,進而影響云計算應用的推廣。
表1列舉了根據2010年歐洲網絡和信息安全局提供的一份調查報告得出的中小型企業用戶最擔憂的幾種數據安全問題[7]。

表1 主要數據安全問題
由表1可見,云計算中的數據安全問題主要集中在數據的隱私性、可用性、完整性、可控性以及云提供商的可信度上。其中又以數據的隱私性、可用性和完整性占的比重最大,數據的隱私性則是最大的數據安全問題。下面重點討論云計算中數據的可用性和完整性問題。
數據的可用性是指數據不會因為惡意攻擊或物理設備故障等問題而變的不能使用、影響數據可用性的因素。其主要包括云服務商提供的基礎架構的可靠性與DDoS攻擊等[8]。對于云服務商提供的基礎架構而言,保證其可靠性的同時要盡可能滿足為用戶提供全天候、不間斷的云服務,使用戶可以隨時隨地訪問或操作自己的數據。同時,由于一些云服務商的服務是建立在其他云提供商提供的基礎架構上,所以前者提供服務的可靠性依賴于后者基礎架構的可靠性,從而使數據的可靠性與可用性問題變得更加復雜。
一般來說,解決數據可用性問題的方法是冗余備份。在用戶選擇云服務商的時候不但要了解云服務商是否具備數據恢復能力,還必須知道云服務商能在多長時間內完成數據恢復。例如,Hadoop的分布式文件系統(HDFS)采用機架感知策略來改進數據的可靠性、可用性和網絡帶寬的利用率[9],通過機架感知技術管理文件系統的元數據(NameNode)可以確定每個實際存儲的數據(DataNode)所屬的機架ID。通常來說,當復制因子為3時,分布式文件系統(HDFS)的部署策略是將一個副本放在本地機架上的節點,另一個副本放在同一個機架上的另一個節點,最后一個副本放在不同機架上的一個節點,這種部署策略可以防止整個機架失效的情況下數據丟失,從而保證了數據的可用性。
數據的完整性是指數據沒有遭受非法篡改或刪除,保持真實有效的性質。影響數據完整性的主要因素有3個。①物理存儲設備容量的增長速度落后于云計算中數據的增長速度,為滿足云計算中海量數據的存儲需求,就極有可能造成節點失效、物理存儲設備失效甚至數據崩潰或丟失;②即使物理存儲設備可以滿足不斷上漲的數據量,但如果無法提高數據的訪問速度,依然會導致數據更新或存取錯誤甚至是訪問失敗,從而無法保證數據的完整性;③另外一個較難防范的情況就是非授權用戶人為地篡改或刪除數據。
傳統的數據完整性校驗方法需要將數據下載到本地才能進行校驗,由于云計算中的數據量極大,下載數據塊將給網絡帶來沉重的負擔,面對海量數據時甚至會發生無法處理的情況,因此,優秀的數據完整性校驗方法也是業內研究的重點。維持云環境下數據的完整性不僅保證用戶信息資產的安全和用戶利益,同時直接影響云服務提供商的信譽。
信息認證編碼和數字簽名是保證數據完整性的兩種常用方法[10]。前者依賴對稱密鑰產生校驗并附加在數據后面,后者則依賴公共密鑰結構。因為對稱算法相較于非對稱算法速度上有優勢,基本上都采用信息認證編碼作為數據的完整性檢查機制。例如,被廣泛采用的分布式文件系統將較大的數據卷劃分為多個默認大小(通常為64M或128M)的數據塊,在每個數據塊上追加一個數字簽名后存儲起來供后續完整性測試使用。
由于資源不足、任務繁瑣、密鑰管理等問題,用戶通常很難親自進行數據完整性的驗證,即使用戶檢測出完整性問題也難以確定問題根源。面對這種情況,用戶和云服務提供商通常采用第三方審計(TPA)來驗證數據的完整性。用戶首先向TPA發出數據審計請求,隨后TPA向云服務商提交用戶審計請求,云服務商在接收到請求后會向TPA返回相關數據供TPA進行審計,最后TPA向用戶返回審計結果。TPA必須能夠滿足數據動態更新、公共審計和安全審計等要求。
數據的隱私性是指數據不可以被非授權者、實體或進程利用和泄漏的性質。數據的隱私性問題貫穿于數據的存儲、傳輸和消亡各個過程,是云計算中最不可忽視的數據安全問題。影響數據隱私性的因素主要有:隔離風險、管理接口風險、數據保護、不安全或不完全的數據刪除以及內部惡意攻擊等。就風險隔離而言,虛擬機的安全性問題應該受到人們的重點關注。虛擬機技術是云計算的重要組成部分,所謂虛擬機技術就是在一臺物理設備上建立多個虛擬機,把虛擬機分配給多個用戶使用,即多個用戶的虛擬機可以在同一臺物理設備上運行。若虛擬機軟件本身存在安全漏洞,那么用戶的數據可能被運行在同一臺物理存儲設備上的其他用戶訪問,數據的隱私性將受到嚴重威脅。如2009年5月,發生VMWare虛擬化軟件的Mac版本中存在嚴重的安全漏洞導致非法用戶利用該漏洞執行惡意代碼的事件[11],以及2011年3月谷歌郵箱發生的大規模用戶數據泄漏事件等,都是極為嚴重的云計算數據隱私性方面的安全問題。
在云計算數據安全問題中數據的隱私性是十分重要的一個方面,在對海量數據的傳輸、存儲和處理的每一個環節中都可能出現數據隱私性被破壞的情況。針對數據隱私方面安全問題的解決方法主要有身份認證、數據隔離、數據加密、訪問控制以及混合云技術等等。
隨著云計算的普及,云端存儲了用戶大量的敏感數據,一旦用戶身份被仿冒,極容易造成敏感數據的泄露。傳統的基于單一憑證的身份認證技術已經不能滿足用戶的安全需求,并且由于云計算強大的計算能力使得傳統數字密碼的破解更為簡單;因此,可嘗試采用生物特征認證方式,其相比于口令核對法,基于智能卡的身份認證、一次性口令認證等認證方法更加復雜難以破解。云計算環境下的認證中心具有強大的計算能力足以支持識別組合的生物特征來進行身份認證,終端的智能化使生物特征的采集及鑒別成為可能,同時,其計算能力的不斷提升也使得實現生物特征的預處理、編碼、壓縮及加密成為可能。
由于生物特征的固定性與唯一性使得類似密碼重置的措施很難進行,所以一旦用戶特征模版泄漏并無法進行密碼重置等類似操作的情況發生,將會給用戶造成較大損失。生物特征的模糊性提高了認證方法的復雜度,使其難以破解,但卻與密碼學的精確性相矛盾,為了保證兩者之間的平衡,要仔細設定匹配識別算法的閾值。生物認證方式的流程如圖1所示。

圖1 生物特征認證流程圖
云計算為了實現資源池化而采用虛擬化技術,在同一物理資源上為不同用戶建立多個虛擬機。由于不同的用戶在同一個物理資源上擁有不同的虛擬機,若沒有有效的隔離技術,用戶將有可能訪問其他用戶的數據信息,導致數據泄漏,從而帶來數據安全問題。
對于虛擬機安全問題,可以采用虛擬機掃描技術來解決,即利用掃描虛擬機或虛擬機中安裝的監控軟件來監控用戶的虛擬機,并確保當前用戶的虛擬機運行正常、沒有進行非法訪問或計算。云服務提供商在搭建好用戶使用的虛擬機后建立用于監控的虛擬機供自己使用,通過監控虛擬機隨時掃描用戶虛擬機并分析其運行狀態。由于用戶虛擬機無法感知監控虛擬機的存在,也就無法發現或阻止其掃描行為,此技術在保證用戶無法干擾監控虛擬機的安全掃描工作的情況下簡化了掃描操作。在實際商用中,惠普和IBM均已提出了自己的虛擬機掃描技術[12]。
由于虛擬化技術的應用導致數據間的物理隔離十分薄弱,數據間的邊界更為模糊,使得每個用戶都成為一個潛在的可發起攻擊的節點,對數據的安全構成極大的威脅;因此,采取有效的數據隔離技術來避免這類數據安全問題十分重要。
IT軟件服務商提供的傳統企業軟件系統多數是基于多實例(Multi-Instance)架構,而基于云計算平臺的軟件系統則大多采用多租戶(Multi-Tenancy)架構。在多實例架構下每個用戶擁有自己的軟件實例,因此,不存在數據隔離問題,但在多租戶架構下所有用戶的數據共享一個軟件系統實例,所以必須開發額外的數據隔離機制來確保用戶之間的數據不可見,從而保證數據的隱私性。目前比較成熟的技術有共享表架構、分離數據庫架構和分離表架構。
共享表架構通過字段區分數據的從屬(如圖2所示),最大化地利用單個數據庫實例的存儲能力,降低了硬件成本。但由于多個用戶的數據共享同一個數據庫表需要額外的業務邏輯來進行數據隔離,因此,增加了軟件開發的復雜度。分離數據庫架構中每個用戶擁有單獨的數據庫實例,高效且便捷地實現了數據的安全性隔離和災難備份,但硬件成本非常高。分離表架構中,用戶共享相同的數據實例,但各自擁有自己的一系列數據庫表組成的Schema(如圖3所示)來進行數據隔離,這種技術權衡了硬件成本,軟件開發復雜度以及災難備份的復雜性之間的平衡。當然根據不同規模的云系統,也會采用不同的數據隔離技術。

圖2 共享表架構示意圖

圖3 分離表架構示意圖
保證數據隱私性的最基本途徑就是數據加密,在數據的傳輸、存儲及處理的各個階段對數據進行加密。目前,主流的加密有對稱加密和非對稱加密,前者的加密速度快,密鑰傳遞和管理比較困難,多用于大數據量的數據加密處理,但無法進行數字簽名和身份驗證;后者由于加密解密密鑰不同可完成對消息傳送者的消息認證,可應用于數字簽名和對對稱加密密鑰的分配與管理,但因其速度慢、復雜度高,不適用于較長信息的加密。實際中,通常將兩者結合使用,如利用DES(Data Encryption Standard,數據加密標準)算法加密信息,用RSA(一種非對稱加密算法)算法來傳遞對稱密碼中的密鑰,從而在不損失速度的前提下保證加密的復雜性。
訪問控制結合加密機制可以更好地保證數據的隱私性,例如亞馬遜的簡易存儲服務(Amazon Simple Storage Service,S3)主要在數據的傳輸和存儲階段都采用加密機制,并提供4種訪問控制機制:身份和訪問管理策略、訪問控制列表、桶策略和查詢字符串認證。
對于傳統的軟件系統來說,數據一般分為公有數據和私有數據。對于公有數據,使用它們的軟件系統不需要處理安全相關的事務,但對私有數據特別是一些較為敏感的私有數據,在搭建系統時要專門考慮如何保證數據的隱私性。和傳統軟件系統相比,云計算系統最大的不同是所有的數據將由第三方負責維護和處理,并可能以明文的方式存儲在非常分散的地方,這就使得一些關鍵性數據可能會遭到泄漏。為解決該問題,用戶可以選擇混合云或私有云來實現彈性計算(指用戶根據實際業務或者計算需要靈活購買計算資源)和數據隱私的均衡。
從彈性計算的角度來看,私有云與公有云并無太大差別。對于私有云,無論其部署在什么位置企業都擁有完全的資源控制能力。除了主流的私有云架構之外,亞馬遜的虛擬私有云(Virtual Private Cloud,VPC)提供了一套全新的企業級私有云構建方案,其重點放在如何構建專門針對單個企業的虛擬網絡,并與現有軟件系統架構安全無縫連接。如圖4所示,企業可以在亞馬遜公有云平臺上創建VPC虛擬網并加入現有的安全架構下。在申請創建亞馬遜彈性計算云(Elastic Compute Cloud,EC2)實例時指定其與相應的VPC網絡綁定,這樣該實例相當于運行在企業的局域網內。即使VPC網絡中的所有EC2實例在公有云平臺上,企業內的防火墻仍可以保證這些公有云上的數據安全。

圖4 亞馬遜提供的私有云解決方案架構示意圖
混合云則是將一些對于數據安全性要求非常高的子系統構建在私有云內,而其他部分構建在公有云上,通過服務總線將自用系統與公有云端系統連接起來。由于服務總線不存在網絡地址轉換問題,因此,不需要企業局域網防火墻開放指定端口,在極端情況下也只需服務器暴露80或443端口即可完成連接,從而保證了數據的隱私性。圖5為一個簡單的混合云架構示意圖。

圖5 混合云架構示意圖
用戶將數據安全性要求較高的子系統搭建在私有云上,通過安全連接訪問私有云并使用其提供的服務來存儲或處理隱私級別較高的內部數據,從而保證關鍵數據的隱私性。同時,通過安全連接訪問公有云,利用其提供的服務、資源以及強大的計算能力高效地完成剩余的工作,從而利用混合云技術實現數據隱私性與系統性能的兼顧和均衡。
云計算作為當前快速發展的新興產業,應用前景十分廣闊,同時,也面臨著前所未有的安全技術挑戰,需要學術界、產業界和政府部門在標準化、監管模式和法律法規等諸多方面協同合作、共同努力,不斷完善數據安全機制,提高數據安全保障技術,提出更好的數據安全解決方案。只有在解決了數據安全問題,保證用戶根本利益的情況下,云計算技術才能獲得更大范圍的認可和進一步的發展。
參考文獻
[1]林闖,蘇文博,孟坤,等.云計算安全:架構、機制與模型評價[J].計算機學報,2013,36(9):1765-1784
[2]何寶宏,李潔.我國云計算發展的現狀與展望[J].電信技術,2012(1):22-24
[3]云計算安全與應用[M].北京:電子工業出版社,2012
[4]DEAN J,GHEMAWAT S.MapReduce:a flexible data processing tool[J].Commun ACM,2010,53(1):72-77
[5]FOSTER I,YONG Z,RAICU I,et al.Cloud Computing and Grid Computing 360-Degree Compared[EB/OL].[2015-01-19].http://wenku.baidu.com/link?url=LQt15iEk2l5010 XvsGm81crZLvFFF8Uz2tYyf8hTm-9kG4Y5GMYEQkxi1 g7Biaci55qPjit5rJN1MGKqf8qN5pQbiLznJyEduZEiAM8 soZG
[6]MELL P,GRANCE T.The NIST Definition of Cloud Computing[R].National Institute of Standards and Technology,2011
[7]Hogben G.Privacy,security and identity in the cloud[C]//EEMA eIdentity Conference,London,2010
[8]聶雄丁,韓德志,畢坤.云計算數據安全[J].吉林大學學報,2012,42(2):332-336
[9]劉鵬.云計算[M].北京:電子工業出版社,2011
[10]Almulla Sameera Abdulrahman,Yeun Chan Yeob.Cloud computing security management[C]//Second International Conference on Engineering Systems Management and Its Applications(ICESMA),Sharjah,2010
[11]Feng Deng-guo,Zhang Min,Zhang Yan,et al.Study on cloud computing security[J].Journal of Software,2011,22(1):71-83
[12]Anthes Cary.Security in the cloud[J].Communications of the ACM,2010,53(11):16-18