邵梅芳,陳家琪,盧 菁
(上海理工大學(xué)光電學(xué)院,上海200093)
在云計(jì)算數(shù)據(jù)服務(wù)平臺(tái)概念出現(xiàn)之前,業(yè)界使用“數(shù)據(jù)庫服務(wù)”(Database as a Service)這個(gè)概念[1],或稱“數(shù)據(jù)庫外包”(Database Outsourcing),指的是企業(yè)把數(shù)據(jù)庫任務(wù)委托給專門的可以提供這些功能的第3方管理,第3方(數(shù)據(jù)庫服務(wù)者)將對(duì)委托的數(shù)據(jù)庫進(jìn)行創(chuàng)建、訪問、維護(hù)、升級(jí)和管理等。而云計(jì)算是一種基于因特網(wǎng)的超級(jí)計(jì)算模式,云計(jì)算發(fā)展也面臨了許多關(guān)鍵性問題,特別是在數(shù)據(jù)安全和隱私保護(hù)方面尤為突出[2]。
云計(jì)算數(shù)據(jù)服務(wù)平臺(tái)的概念所能提供的服務(wù)對(duì)象不僅僅是數(shù)據(jù)庫,還包括了半結(jié)構(gòu)化、無結(jié)構(gòu)的數(shù)據(jù)甚至是文本文件、語音流和視頻流等多媒體數(shù)據(jù)等。由于在數(shù)據(jù)交換方面上缺少統(tǒng)一的標(biāo)準(zhǔn),XML是當(dāng)前處理結(jié)構(gòu)化文檔信息的有力工具。XML描述的是數(shù)據(jù)本身的意義和實(shí)體之間的結(jié)構(gòu)化的數(shù)據(jù),又能夠表示半結(jié)構(gòu)化的數(shù)據(jù),如 Web數(shù)據(jù)。XML數(shù)據(jù)已經(jīng)逐漸成為Internet上數(shù)據(jù)表示和交換的新的標(biāo)準(zhǔn)。隨著XML信息交流的增多,如何快速地從大量的XML數(shù)據(jù)中進(jìn)行安全的數(shù)據(jù)查詢已經(jīng)成為眾多研究者所關(guān)注的問題。
因此,把XML數(shù)據(jù)遷移到云計(jì)算平臺(tái)中,對(duì)云計(jì)算平臺(tái)中的XML數(shù)據(jù)實(shí)現(xiàn)安全查詢已成為必須解決的問題。
了解云計(jì)算平臺(tái)中的數(shù)據(jù)服務(wù)有3個(gè)重要的角色,分別是云計(jì)算中的數(shù)據(jù)服務(wù)提供者(DSP)、數(shù)據(jù)擁有者(Do)和數(shù)據(jù)請(qǐng)求者(DReq)。圖1是云計(jì)算數(shù)據(jù)服務(wù)架構(gòu)框圖。
數(shù)據(jù)服務(wù)提供者(DSP)是一個(gè)專業(yè)的提供云計(jì)算數(shù)據(jù)服務(wù)的企業(yè),維護(hù)委托方的數(shù)據(jù),并能正確地進(jìn)行數(shù)據(jù)的復(fù)制、備份等數(shù)據(jù)管理任務(wù)。
數(shù)據(jù)擁有者是擁有用戶數(shù)據(jù)的企業(yè),產(chǎn)生用戶數(shù)據(jù)并將數(shù)據(jù)以保護(hù)用戶隱私的方式委托給云計(jì)算數(shù)據(jù)服務(wù)提供者。
圖1 云計(jì)算平臺(tái)中的數(shù)據(jù)框架
數(shù)據(jù)請(qǐng)求者(DReq)是指可以將用戶的查詢轉(zhuǎn)換成數(shù)據(jù)服務(wù)器可識(shí)別的查詢(如經(jīng)過一定的查詢轉(zhuǎn)換),將云計(jì)算平臺(tái)中數(shù)據(jù)服務(wù)器返回的保護(hù)隱私的查詢結(jié)果經(jīng)過處理,方便用戶進(jìn)行查詢后處理的前端。圖1中涉及的3個(gè)角色之間的關(guān)系以及傳送數(shù)據(jù)的過程為:
①首先,為了使DReq能夠驗(yàn)證DSP正確地返回Do想要返回的數(shù)據(jù),數(shù)據(jù)擁有者以一定的方式把密鑰和驗(yàn)證碼一起發(fā)送給數(shù)據(jù)請(qǐng)求者;
②其次,為了保證數(shù)據(jù)的隱私,數(shù)據(jù)擁有者就以某種保護(hù)隱私數(shù)據(jù)的方式對(duì)數(shù)據(jù)加以處理,數(shù)據(jù)擁有者把數(shù)據(jù)委托給數(shù)據(jù)服務(wù)提供者;
③再次,數(shù)據(jù)請(qǐng)求者請(qǐng)求數(shù)據(jù)服務(wù)提供者查詢數(shù)據(jù),即Q1,…Qb,經(jīng)過網(wǎng)絡(luò)查詢接口,DSP接收數(shù)據(jù)請(qǐng)求者發(fā)送來的需要查詢的數(shù)據(jù),并正確執(zhí)行此數(shù)據(jù)查詢,查詢結(jié)束后給數(shù)據(jù)請(qǐng)求者返回正確的查詢結(jié)果,即 ρ(Q1),…ρ(Qb) 。
在云服務(wù)平臺(tái)中,保證數(shù)據(jù)隱私安全是十分必要的,因此,數(shù)據(jù)請(qǐng)求者請(qǐng)求數(shù)據(jù)服務(wù)提供者執(zhí)行查詢而且返回正確的查詢結(jié)果,即必須保證數(shù)據(jù)服務(wù)提供者查詢得到的數(shù)據(jù)滿足數(shù)據(jù)完整性和完備性。
數(shù)據(jù)的完整性[3]確保數(shù)據(jù)服務(wù)提供者經(jīng)查詢得到的結(jié)果確實(shí)是來自真實(shí)的數(shù)據(jù)擁有者。而數(shù)據(jù)的完備性則是確保數(shù)據(jù)服務(wù)提供者在目標(biāo)域上能夠正確地執(zhí)行查詢并返回所有滿足數(shù)據(jù)請(qǐng)求者提供的查詢條件的數(shù)據(jù)。雖然數(shù)據(jù)的完整性和數(shù)據(jù)的完備性在概念上有所不同,但是它們都需要數(shù)據(jù)擁有者提供額外的機(jī)制來保證,而且有些機(jī)制既可以實(shí)現(xiàn)數(shù)據(jù)的完整性也可以實(shí)現(xiàn)數(shù)據(jù)的完備性。到目前為止,實(shí)現(xiàn)數(shù)據(jù)的完整性或完備性的機(jī)制主要有3種:基于數(shù)據(jù)簽名的方法、基于挑戰(zhàn)-響應(yīng)的方法和基于概率的方法?;?種方法采用不同的原理,本文采用挑戰(zhàn)-響應(yīng)協(xié)議實(shí)現(xiàn)XML數(shù)據(jù)完整性和完備性。
由于DSP在網(wǎng)絡(luò)、非集中以及惡劣的環(huán)境中正確執(zhí)行查詢?cè)獾劫|(zhì)疑,因?yàn)樵朴?jì)算中的數(shù)據(jù)服務(wù)提供者有時(shí)為了避免因?yàn)閳?zhí)行查詢支付CPU和存儲(chǔ)費(fèi)用,可能會(huì)因?yàn)閼卸杌驉阂舛蝗?zhí)行查詢,或者選擇返回一個(gè)不準(zhǔn)確或完全不正確的查詢結(jié)果。為了解決這個(gè)問題,文獻(xiàn)[4]提出了挑戰(zhàn)-響應(yīng)協(xié)議上的運(yùn)行時(shí)查詢證明機(jī)制,是一種對(duì)任意查詢、確保查詢正確執(zhí)行的解決方法。對(duì)于數(shù)據(jù)請(qǐng)求者發(fā)出的每一批查詢,DSP被挑戰(zhàn)需要提供查詢執(zhí)行證明,然后,在DReq端被檢查接收到的實(shí)際查詢結(jié)果是否正確,以確定是否接受DSP執(zhí)行查詢后返回的查詢結(jié)果。如圖2所示,在進(jìn)行查詢時(shí),與Do端委托時(shí)的數(shù)據(jù)分組保持一致,在DReq端先把數(shù)據(jù)分成n份(di,… dn)。
圖2 挑戰(zhàn)-響應(yīng)模型
在查詢過程1中,提交一個(gè)查詢Q時(shí),首先要計(jì)算哈希值CT=H(Q(di)),因?yàn)楣V稻哂胁豢赡嫘院蛦蜗蛐裕瑥亩l(fā)現(xiàn)查詢結(jié)果匹配挑戰(zhàn)令牌,i作為挑戰(zhàn)值與查詢一起發(fā)送給DSP。
在查詢過程2中,DSP通過網(wǎng)絡(luò)接口接收到DReq提交的信息,DSP響應(yīng)查詢并在返回查詢結(jié)果的同時(shí),要返回i的值作為挑戰(zhàn)值的響應(yīng)值。
在查詢過程3中,DSP發(fā)送查詢的結(jié)果。因此DReq就可以根據(jù)返回的響應(yīng)值判斷DSP是否正確執(zhí)行查詢并返回正確的查詢結(jié)果。挑戰(zhàn)-響應(yīng)方法的目的是只有當(dāng)返回所有的挑戰(zhàn)值后才能返回正確的查詢結(jié)果。而挑戰(zhàn)值必須是在所有查詢都已執(zhí)行的情況下才能得到,因此挑戰(zhàn)-響應(yīng)方法保證了數(shù)據(jù)完整性,保障數(shù)據(jù)查詢正確執(zhí)行和返回正確的查詢結(jié)果。
XML是各種應(yīng)用程序之間進(jìn)行數(shù)據(jù)傳輸?shù)淖畛S玫墓ぞ撸⑶以谛畔⒋鎯?chǔ)和描述領(lǐng)域變得越來越流行,因此XML數(shù)據(jù)查詢的安全性也越來越重要。XML數(shù)據(jù)在查詢的過程中,也可以轉(zhuǎn)換成關(guān)系數(shù)據(jù)庫來查詢,但是增加了查詢過程。把數(shù)據(jù)庫外包中的挑戰(zhàn)-響應(yīng)協(xié)議用于云計(jì)算平臺(tái)中的XML數(shù)據(jù)進(jìn)行安全查詢,并保證了查詢執(zhí)行證明以及數(shù)據(jù)的完整性和和完備性,將使云計(jì)算平臺(tái)中數(shù)據(jù)查詢安全又前進(jìn)了一步,省去了諸多的麻煩。下面要解決的是XML數(shù)據(jù)在查詢過程中如何保證數(shù)據(jù)安全以及查詢得到正確的結(jié)果。圖3即是使用挑戰(zhàn)-響應(yīng)方法對(duì)XML查詢建立模型。
圖3 云計(jì)算平臺(tái)中XML數(shù)據(jù)安全查詢結(jié)構(gòu)
XML文檔屬于半結(jié)構(gòu)化的數(shù)據(jù),不同于關(guān)系數(shù)據(jù)庫是結(jié)構(gòu)化數(shù)據(jù)。但同樣適用于挑戰(zhàn)-響應(yīng)協(xié)議。在查詢執(zhí)行開始時(shí),數(shù)據(jù)請(qǐng)求端先把XML文件分成n份(XML1,…XMLn),當(dāng)提交一個(gè)查詢W時(shí),為了保證XML數(shù)據(jù)安全,需要對(duì)XML數(shù)據(jù)進(jìn)行加密處理。由于加密哈希的不可逆性,采用計(jì)算哈希值 CT=H(W(XMLY)),Y∈(1,a),保證 Dreq 端的數(shù)據(jù)安全。Y是作為挑戰(zhàn)值與查詢一起通過網(wǎng)絡(luò)查詢接口發(fā)送給DSP端。此外,為了避免先前使用過的挑戰(zhàn)令牌的重復(fù)或被DSP記住該查詢,把隨意猜測(cè)的可能不正確的查詢結(jié)果發(fā)送給數(shù)據(jù)請(qǐng)求端。由于關(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端同時(shí)通過網(wǎng)絡(luò)接口接收到DReq端提交的查詢以及隨機(jī)數(shù)。此時(shí)DSP端響應(yīng)查詢并執(zhí)行該查詢,隨機(jī)數(shù)的存在防止了在查詢中會(huì)遇到惡意的攻擊或懶惰行為,DSP端不執(zhí)行令牌的哈希值,在第1次使用后將是沒用的數(shù)據(jù),這樣在DSP端沒有執(zhí)行才是可能發(fā)生的。
DSP正確執(zhí)行完查詢后并查詢得到正確的查詢結(jié)果,在DSP端返回查詢結(jié)果的同時(shí),要返回Y的值作為挑戰(zhàn)值的響應(yīng)值。在此需要強(qiáng)調(diào)的是在DSP端執(zhí)行查詢XML數(shù)據(jù)并得到正確的查詢結(jié)果后,傳輸給請(qǐng)求端的數(shù)據(jù)也是XML格式,文獻(xiàn)[8]提出了一種方案可應(yīng)用于要求身份隱藏和身份隱私保護(hù)的安全傳輸環(huán)境。查詢后傳輸給數(shù)據(jù)請(qǐng)求端的數(shù)據(jù)和關(guān)系數(shù)據(jù)庫是有所不同的,傳輸?shù)臄?shù)據(jù)是XML格式,這與關(guān)系數(shù)據(jù)庫查詢的有很大區(qū)別。因此DReq就可以根據(jù)返回的響應(yīng)值Y,通過判斷Y=Y'是否正確,判斷DSP是否正確執(zhí)行查詢并返回正確的XML數(shù)據(jù)查詢結(jié)果。下面將關(guān)注隨機(jī)數(shù)存在的必要性以及理解一次性使用隨機(jī)數(shù)的重要性。
在缺少隨機(jī)數(shù)的情況下,DSP很明顯可以記住以前看到過的查詢批處理的挑戰(zhàn)令牌。如果有足夠的存儲(chǔ)可用,當(dāng)它執(zhí)行查詢和響應(yīng)挑戰(zhàn)時(shí),可以記錄相關(guān)的令牌,例如,通過構(gòu)建哈希表標(biāo)記(查詢,段)對(duì)挑戰(zhàn)令牌,最終DSP將會(huì)熟知更多的令牌。這些稍后將用于響應(yīng)挑戰(zhàn)(查找哈希表),就沒有必要執(zhí)行相關(guān)的工作。即如果DReq碰巧提交相同的令牌2次,DSP是直接返回結(jié)果,而沒有對(duì)給定的批處理查詢做實(shí)際的工作。為每一次挑戰(zhàn)令牌使用特別的隨機(jī)數(shù),確保不被DSP記錄。同時(shí)發(fā)送一個(gè)隨機(jī)數(shù)到DSP端,因?yàn)槿绻鸇SP端記錄挑戰(zhàn)令牌,將會(huì)不執(zhí)行查詢,直接返回查詢結(jié)果。
云計(jì)算平臺(tái)中XML數(shù)據(jù)的安全查詢,工作重要集中在面向查詢服務(wù)的數(shù)據(jù)隱私保護(hù)算法[5]。文獻(xiàn)[6]則研究了隱私保護(hù)數(shù)據(jù)發(fā)布中身份保持的匿名方法。但是,目前,對(duì)海量數(shù)據(jù)查詢和更新的完整性和完備性問題的研究還很薄弱。文獻(xiàn)[7]對(duì)數(shù)據(jù)查詢和數(shù)據(jù)更新的完整性保證進(jìn)行了一系列的研究。但是云計(jì)算數(shù)據(jù)服務(wù)平臺(tái)具有與XML數(shù)據(jù)集成系統(tǒng)中的數(shù)據(jù)服務(wù)完全不同的特征,因此,云計(jì)算技術(shù)在蓬勃發(fā)展,在云計(jì)算平臺(tái)中實(shí)現(xiàn)XML查詢是大勢(shì)所趨。在Hadoop平臺(tái)上利用挑戰(zhàn)-響應(yīng)協(xié)議實(shí)現(xiàn)XML數(shù)據(jù)安全的查詢,采用的是java編程語言,使用的是JDK1.5.0的開發(fā)環(huán)境。在hadoop平臺(tái)中建立了XML數(shù)據(jù)安全查詢的系統(tǒng)架構(gòu),分析了架構(gòu)模型保證安全性的各個(gè)過程。實(shí)踐證明,利用挑戰(zhàn)-響應(yīng)協(xié)議實(shí)現(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ù)庫服務(wù)-安全與隱私[J].軟件學(xué)報(bào),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] 朱青,趙桐,王珊.面向查詢服務(wù)的數(shù)據(jù)據(jù)隱私保護(hù)算法[J].計(jì)算機(jī)科報(bào),2010,33(8):1316-1323.
[6] 童云海,陶有東,唐世渭.隱私保護(hù)數(shù)據(jù)發(fā)布中身份保持的匿名方法[J].軟件學(xué)報(bào),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.