邵梅芳,陳家琪,盧 菁
(上海理工大學光電學院,上海200093)
在云計算數(shù)據(jù)服務平臺概念出現(xiàn)之前,業(yè)界使用“數(shù)據(jù)庫服務”(Database as a Service)這個概念[1],或稱“數(shù)據(jù)庫外包”(Database Outsourcing),指的是企業(yè)把數(shù)據(jù)庫任務委托給專門的可以提供這些功能的第3方管理,第3方(數(shù)據(jù)庫服務者)將對委托的數(shù)據(jù)庫進行創(chuàng)建、訪問、維護、升級和管理等。而云計算是一種基于因特網(wǎng)的超級計算模式,云計算發(fā)展也面臨了許多關(guān)鍵性問題,特別是在數(shù)據(jù)安全和隱私保護方面尤為突出[2]。
云計算數(shù)據(jù)服務平臺的概念所能提供的服務對象不僅僅是數(shù)據(jù)庫,還包括了半結(jié)構(gòu)化、無結(jié)構(gòu)的數(shù)據(jù)甚至是文本文件、語音流和視頻流等多媒體數(shù)據(jù)等。由于在數(shù)據(jù)交換方面上缺少統(tǒng)一的標準,XML是當前處理結(jié)構(gòu)化文檔信息的有力工具。XML描述的是數(shù)據(jù)本身的意義和實體之間的結(jié)構(gòu)化的數(shù)據(jù),又能夠表示半結(jié)構(gòu)化的數(shù)據(jù),如 Web數(shù)據(jù)。XML數(shù)據(jù)已經(jīng)逐漸成為Internet上數(shù)據(jù)表示和交換的新的標準。隨著XML信息交流的增多,如何快速地從大量的XML數(shù)據(jù)中進行安全的數(shù)據(jù)查詢已經(jīng)成為眾多研究者所關(guān)注的問題。
因此,把XML數(shù)據(jù)遷移到云計算平臺中,對云計算平臺中的XML數(shù)據(jù)實現(xiàn)安全查詢已成為必須解決的問題。
了解云計算平臺中的數(shù)據(jù)服務有3個重要的角色,分別是云計算中的數(shù)據(jù)服務提供者(DSP)、數(shù)據(jù)擁有者(Do)和數(shù)據(jù)請求者(DReq)。圖1是云計算數(shù)據(jù)服務架構(gòu)框圖。
數(shù)據(jù)服務提供者(DSP)是一個專業(yè)的提供云計算數(shù)據(jù)服務的企業(yè),維護委托方的數(shù)據(jù),并能正確地進行數(shù)據(jù)的復制、備份等數(shù)據(jù)管理任務。
數(shù)據(jù)擁有者是擁有用戶數(shù)據(jù)的企業(yè),產(chǎn)生用戶數(shù)據(jù)并將數(shù)據(jù)以保護用戶隱私的方式委托給云計算數(shù)據(jù)服務提供者。
圖1 云計算平臺中的數(shù)據(jù)框架
數(shù)據(jù)請求者(DReq)是指可以將用戶的查詢轉(zhuǎn)換成數(shù)據(jù)服務器可識別的查詢(如經(jīng)過一定的查詢轉(zhuǎn)換),將云計算平臺中數(shù)據(jù)服務器返回的保護隱私的查詢結(jié)果經(jīng)過處理,方便用戶進行查詢后處理的前端。圖1中涉及的3個角色之間的關(guān)系以及傳送數(shù)據(jù)的過程為:
①首先,為了使DReq能夠驗證DSP正確地返回Do想要返回的數(shù)據(jù),數(shù)據(jù)擁有者以一定的方式把密鑰和驗證碼一起發(fā)送給數(shù)據(jù)請求者;
②其次,為了保證數(shù)據(jù)的隱私,數(shù)據(jù)擁有者就以某種保護隱私數(shù)據(jù)的方式對數(shù)據(jù)加以處理,數(shù)據(jù)擁有者把數(shù)據(jù)委托給數(shù)據(jù)服務提供者;
③再次,數(shù)據(jù)請求者請求數(shù)據(jù)服務提供者查詢數(shù)據(jù),即Q1,…Qb,經(jīng)過網(wǎng)絡(luò)查詢接口,DSP接收數(shù)據(jù)請求者發(fā)送來的需要查詢的數(shù)據(jù),并正確執(zhí)行此數(shù)據(jù)查詢,查詢結(jié)束后給數(shù)據(jù)請求者返回正確的查詢結(jié)果,即 ρ(Q1),…ρ(Qb) 。
在云服務平臺中,保證數(shù)據(jù)隱私安全是十分必要的,因此,數(shù)據(jù)請求者請求數(shù)據(jù)服務提供者執(zhí)行查詢而且返回正確的查詢結(jié)果,即必須保證數(shù)據(jù)服務提供者查詢得到的數(shù)據(jù)滿足數(shù)據(jù)完整性和完備性。
數(shù)據(jù)的完整性[3]確保數(shù)據(jù)服務提供者經(jīng)查詢得到的結(jié)果確實是來自真實的數(shù)據(jù)擁有者。而數(shù)據(jù)的完備性則是確保數(shù)據(jù)服務提供者在目標域上能夠正確地執(zhí)行查詢并返回所有滿足數(shù)據(jù)請求者提供的查詢條件的數(shù)據(jù)。雖然數(shù)據(jù)的完整性和數(shù)據(jù)的完備性在概念上有所不同,但是它們都需要數(shù)據(jù)擁有者提供額外的機制來保證,而且有些機制既可以實現(xiàn)數(shù)據(jù)的完整性也可以實現(xiàn)數(shù)據(jù)的完備性。到目前為止,實現(xiàn)數(shù)據(jù)的完整性或完備性的機制主要有3種:基于數(shù)據(jù)簽名的方法、基于挑戰(zhàn)-響應的方法和基于概率的方法?;?種方法采用不同的原理,本文采用挑戰(zhàn)-響應協(xié)議實現(xiàn)XML數(shù)據(jù)完整性和完備性。
由于DSP在網(wǎng)絡(luò)、非集中以及惡劣的環(huán)境中正確執(zhí)行查詢遭到質(zhì)疑,因為云計算中的數(shù)據(jù)服務提供者有時為了避免因為執(zhí)行查詢支付CPU和存儲費用,可能會因為懶惰或惡意而不去執(zhí)行查詢,或者選擇返回一個不準確或完全不正確的查詢結(jié)果。為了解決這個問題,文獻[4]提出了挑戰(zhàn)-響應協(xié)議上的運行時查詢證明機制,是一種對任意查詢、確保查詢正確執(zhí)行的解決方法。對于數(shù)據(jù)請求者發(fā)出的每一批查詢,DSP被挑戰(zhàn)需要提供查詢執(zhí)行證明,然后,在DReq端被檢查接收到的實際查詢結(jié)果是否正確,以確定是否接受DSP執(zhí)行查詢后返回的查詢結(jié)果。如圖2所示,在進行查詢時,與Do端委托時的數(shù)據(jù)分組保持一致,在DReq端先把數(shù)據(jù)分成n份(di,… dn)。
圖2 挑戰(zhàn)-響應模型
在查詢過程1中,提交一個查詢Q時,首先要計算哈希值CT=H(Q(di)),因為哈希值具有不可逆性和單向性,從而發(fā)現(xiàn)查詢結(jié)果匹配挑戰(zhàn)令牌,i作為挑戰(zhàn)值與查詢一起發(fā)送給DSP。
在查詢過程2中,DSP通過網(wǎng)絡(luò)接口接收到DReq提交的信息,DSP響應查詢并在返回查詢結(jié)果的同時,要返回i的值作為挑戰(zhàn)值的響應值。
在查詢過程3中,DSP發(fā)送查詢的結(jié)果。因此DReq就可以根據(jù)返回的響應值判斷DSP是否正確執(zhí)行查詢并返回正確的查詢結(jié)果。挑戰(zhàn)-響應方法的目的是只有當返回所有的挑戰(zhàn)值后才能返回正確的查詢結(jié)果。而挑戰(zhàn)值必須是在所有查詢都已執(zhí)行的情況下才能得到,因此挑戰(zhàn)-響應方法保證了數(shù)據(jù)完整性,保障數(shù)據(jù)查詢正確執(zhí)行和返回正確的查詢結(jié)果。
XML是各種應用程序之間進行數(shù)據(jù)傳輸?shù)淖畛S玫墓ぞ?,并且在信息存儲和描述領(lǐng)域變得越來越流行,因此XML數(shù)據(jù)查詢的安全性也越來越重要。XML數(shù)據(jù)在查詢的過程中,也可以轉(zhuǎn)換成關(guān)系數(shù)據(jù)庫來查詢,但是增加了查詢過程。把數(shù)據(jù)庫外包中的挑戰(zhàn)-響應協(xié)議用于云計算平臺中的XML數(shù)據(jù)進行安全查詢,并保證了查詢執(zhí)行證明以及數(shù)據(jù)的完整性和和完備性,將使云計算平臺中數(shù)據(jù)查詢安全又前進了一步,省去了諸多的麻煩。下面要解決的是XML數(shù)據(jù)在查詢過程中如何保證數(shù)據(jù)安全以及查詢得到正確的結(jié)果。圖3即是使用挑戰(zhàn)-響應方法對XML查詢建立模型。
圖3 云計算平臺中XML數(shù)據(jù)安全查詢結(jié)構(gòu)
XML文檔屬于半結(jié)構(gòu)化的數(shù)據(jù),不同于關(guān)系數(shù)據(jù)庫是結(jié)構(gòu)化數(shù)據(jù)。但同樣適用于挑戰(zhàn)-響應協(xié)議。在查詢執(zhí)行開始時,數(shù)據(jù)請求端先把XML文件分成n份(XML1,…XMLn),當提交一個查詢W時,為了保證XML數(shù)據(jù)安全,需要對XML數(shù)據(jù)進行加密處理。由于加密哈希的不可逆性,采用計算哈希值 CT=H(W(XMLY)),Y∈(1,a),保證 Dreq 端的數(shù)據(jù)安全。Y是作為挑戰(zhàn)值與查詢一起通過網(wǎng)絡(luò)查詢接口發(fā)送給DSP端。此外,為了避免先前使用過的挑戰(zhàn)令牌的重復或被DSP記住該查詢,把隨意猜測的可能不正確的查詢結(jié)果發(fā)送給數(shù)據(jù)請求端。由于關(guān)系數(shù)據(jù)庫屬于結(jié)構(gòu)化數(shù)據(jù),而XML數(shù)據(jù)屬于半結(jié)構(gòu)化數(shù)據(jù),他們的查詢過程在DSP端有所不同。關(guān)系數(shù)據(jù)庫使用的是SQL語言,而XML數(shù)據(jù)則使用的是XQuery語言。
DReq端發(fā)送完畢查詢,DSP端同時通過網(wǎng)絡(luò)接口接收到DReq端提交的查詢以及隨機數(shù)。此時DSP端響應查詢并執(zhí)行該查詢,隨機數(shù)的存在防止了在查詢中會遇到惡意的攻擊或懶惰行為,DSP端不執(zhí)行令牌的哈希值,在第1次使用后將是沒用的數(shù)據(jù),這樣在DSP端沒有執(zhí)行才是可能發(fā)生的。
DSP正確執(zhí)行完查詢后并查詢得到正確的查詢結(jié)果,在DSP端返回查詢結(jié)果的同時,要返回Y的值作為挑戰(zhàn)值的響應值。在此需要強調(diào)的是在DSP端執(zhí)行查詢XML數(shù)據(jù)并得到正確的查詢結(jié)果后,傳輸給請求端的數(shù)據(jù)也是XML格式,文獻[8]提出了一種方案可應用于要求身份隱藏和身份隱私保護的安全傳輸環(huán)境。查詢后傳輸給數(shù)據(jù)請求端的數(shù)據(jù)和關(guān)系數(shù)據(jù)庫是有所不同的,傳輸?shù)臄?shù)據(jù)是XML格式,這與關(guān)系數(shù)據(jù)庫查詢的有很大區(qū)別。因此DReq就可以根據(jù)返回的響應值Y,通過判斷Y=Y'是否正確,判斷DSP是否正確執(zhí)行查詢并返回正確的XML數(shù)據(jù)查詢結(jié)果。下面將關(guān)注隨機數(shù)存在的必要性以及理解一次性使用隨機數(shù)的重要性。
在缺少隨機數(shù)的情況下,DSP很明顯可以記住以前看到過的查詢批處理的挑戰(zhàn)令牌。如果有足夠的存儲可用,當它執(zhí)行查詢和響應挑戰(zhàn)時,可以記錄相關(guān)的令牌,例如,通過構(gòu)建哈希表標記(查詢,段)對挑戰(zhàn)令牌,最終DSP將會熟知更多的令牌。這些稍后將用于響應挑戰(zhàn)(查找哈希表),就沒有必要執(zhí)行相關(guān)的工作。即如果DReq碰巧提交相同的令牌2次,DSP是直接返回結(jié)果,而沒有對給定的批處理查詢做實際的工作。為每一次挑戰(zhàn)令牌使用特別的隨機數(shù),確保不被DSP記錄。同時發(fā)送一個隨機數(shù)到DSP端,因為如果DSP端記錄挑戰(zhàn)令牌,將會不執(zhí)行查詢,直接返回查詢結(jié)果。
云計算平臺中XML數(shù)據(jù)的安全查詢,工作重要集中在面向查詢服務的數(shù)據(jù)隱私保護算法[5]。文獻[6]則研究了隱私保護數(shù)據(jù)發(fā)布中身份保持的匿名方法。但是,目前,對海量數(shù)據(jù)查詢和更新的完整性和完備性問題的研究還很薄弱。文獻[7]對數(shù)據(jù)查詢和數(shù)據(jù)更新的完整性保證進行了一系列的研究。但是云計算數(shù)據(jù)服務平臺具有與XML數(shù)據(jù)集成系統(tǒng)中的數(shù)據(jù)服務完全不同的特征,因此,云計算技術(shù)在蓬勃發(fā)展,在云計算平臺中實現(xiàn)XML查詢是大勢所趨。在Hadoop平臺上利用挑戰(zhàn)-響應協(xié)議實現(xiàn)XML數(shù)據(jù)安全的查詢,采用的是java編程語言,使用的是JDK1.5.0的開發(fā)環(huán)境。在hadoop平臺中建立了XML數(shù)據(jù)安全查詢的系統(tǒng)架構(gòu),分析了架構(gòu)模型保證安全性的各個過程。實踐證明,利用挑戰(zhàn)-響應協(xié)議實現(xiàn)XML數(shù)據(jù)安全的查詢具有可行性。
[1] HACIGüMüSH,MEHROTRA S,IYER B.Providing Database as a Service[C]∥ Proc.of the Int’l Conf.on Data Engineering.Washington:IEEE Computer Society Press,2002:29-38.
[2] 田秀霞,王曉玲,高明.數(shù)據(jù)庫服務-安全與隱私[J].軟件學報,2010,21(5):991-1006.
[3] MYKLETUN E, NARASIMHA M, TSUDIK G.Authentication and Integrity in Outsourced Databases[J].ACM Trans.on Storage,2006,2(2):107-138.
[4] SION R.Query Execution Assurance Foroutsourced Database[C]∥ Proc.of the 31st InConf.On Very Large Data Bases.New York:ACM Press,2005:601-602
[5] 朱青,趙桐,王珊.面向查詢服務的數(shù)據(jù)據(jù)隱私保護算法[J].計算機科報,2010,33(8):1316-1323.
[6] 童云海,陶有東,唐世渭.隱私保護數(shù)據(jù)發(fā)布中身份保持的匿名方法[J].軟件學報,2010,21(4):771-781.
[7] LU Jing,PENG Dun-lu,HUO Huan.Analyzing Triggers in XML Data Integration Systems[J].International Journal of Digital Content Technology and its Applications,2010,4(5):38-45.