本發明涉及云計算領域,具體涉及一種基于云計算的數據監控方法。
背景技術:
云計算是能夠動態搜索虛擬化資源,通過互聯網以服務的方式提供給用戶的一種計算模式。在云計算模式下,用戶不必構建或管理這些資源,而是可以直接按需付費使用云計算服務商提供的資源。云計算把it資源、數據、應用作為一種服務,通過網絡提供給用戶,這是服務方式的變革,是共享數據模式的改變。對于云計算服務商而言,云計算這種模式使資源利用率提高,大大降低了服務成本。比如,google公司每年投入16億美元建設云計算數據中心,所獲得的能力相當于使用傳統技術投入640億美元,節省了40倍的成本。因此,云計算因其強大的計算能力、高可靠性、按需提供服務、降低it投入成本等特點,受到政府和信息產業界的大力倡導。獨立研究機構forrester預測,至2020年,球云計算市場規模將達到2410億美元,而這一數字在2010年僅為407億美元。目前,全球各it企業紛紛制定和發布自己的云戰略,如谷歌、亞馬遜、ibm等已經形成提供大規模全球化計算服務的云計算平臺。各國政府也紛紛將云計算視為重點發展的戰略研究領域。美國政府推出“云優先”戰略,為推動政府機構接受云計算的理念,聯邦政府開設了“一站式云服務”門戶網站,展示并提供得到政府認可的云計算應用。英國政府啟動“政府云戰略”,使政府云成為連接政府機構與供應商的橋梁,借助云計算模式提高政府采購的效率。我國政府將云計算列入著力培育的八大新型產業之一,并將北京、無錫、上海、杭州、深圳等五大城市作為云計算發展的試點城市,投資建立了云計算中心。
雖然云計算發展迅速,但是云計算的安全問題成為其健康發展和普及的“攔路虎”,特別是數據安全問題。早在2009年的時候,gartner公司就調查過17個國家的500位高管和it經理,結果表明,絕大多數用戶仍傾向于使用現有內部系統而非云計算系統,首要原因是擔心數據安全和個人隱私受到威脅。2012年中國云安全調查結果顯示,受訪者對于云安全問題并不放心,88.2%的受訪者認為目前沒有服務商可以解決其安全問題。受訪者最關心的三個安全問題分別是:云帳戶劫持(39.9%)、云數據訪問(33.2%)和數據恢復/備份(31.9%)。
用戶的擔心是不無道理的,云計算的服務計算模式、動態虛擬化管理以及多租戶共享運營模式等特點給數據安全帶來了新的挑戰。在用戶使用云計算服務時,用戶唯一的保障是和云服務商之間簽訂的服務協議。比如,amazon對用戶的服務協議條款表明,服務商會遵守協議約束,不主動破壞數據安全,并且盡可能防范來自內部的安全漏洞,包括安裝監控設備、記錄操作日志,審查雇員背景等。但是,云服務提供者并未向用戶說明安全機制的原理和安全效果,也就是說,云服務商并不對安全作擔保,也不能挽回攻擊造成的損失。近年來曝光的一些云安全事件也證實了用戶的擔憂。2011年3月,谷歌gmail郵箱發生大規模的用戶數據丟失事件,大約有15萬(約為用戶總數的0.08%)gmail用戶的所有郵件和聊天記錄被刪除,部分用戶的帳戶被重置。2011年6月,云存儲服務商dropbox遭遇安全事件,任何用戶不用口令就可以直接訪問云服務。2011年10月,阿里云存儲服務器出現磁盤錯誤,在維護過程中執行了重啟操作,導致teamcola公司的數據丟失。2012年8月,盛大云聲明稱由于一臺物理服務器磁盤發生損壞,導致個別用戶數據丟失,使用戶對云的災備機制產生巨大質疑。
綜上所述,云計算的數據安全問題亟待解決,研究和建立云計算環境下的數據安全保護機制,對于推動云計算及其應用的健康發展具有理論價值和現實意義。
技術實現要素:
至少部分的解決現有技術中存在的問題,本發明提出一種基于云計算的數據監控方法,采用完全存儲樹實現對用戶文件的驗證,所述完全存儲樹具體為:
以平衡二叉搜索樹為基礎結構建立完全存儲樹,所述完全存儲樹中每個結點都存儲以下內容:
1)存儲在該結點的文件塊mi;
2)本結點文件塊的哈希值hi=h(mi);
3)聯合哈希值hsum(i),如果i是葉子結點,則hsum(i)=h(i),否則,根據結點i子結點的哈希值,求得其父結點的哈希值,迭代求下去,得到所述完全存儲樹的根結點的哈希值,即整個完全存儲樹的哈希值h(root);所述方法包括:
(1)存儲數據:用戶在向云存儲服務器存儲數據的時候,同時生成驗證工作所需的信息,將必要的信息分別存儲在第三方和云存儲服務器上;
(2)發起驗證請求:在用戶的要求下,或者定期任務下,第三方可信任驗證機構向云存儲服務器發起驗證請求,將驗證請求信息發送給云存儲服務器;
(3)生成驗證消息:云存儲服務器收到第三方可信任驗證機構的驗證請求后,根據收到的驗證信息,計算出相應的證明信息,然后將證明信息發送給第三方可信任驗證機構接受驗證;
(4)驗證:第三方可信任驗證機構收到云存儲服務器發來的反饋內容以后,結合第(2)步發給云存儲服務器的驗證請求信息,以及存儲在第三方可信任驗證機構的用戶信息,根據定義的規則驗證用戶的文件是否正確存儲。
優選的,步驟(3)包括:
云存儲服務器收到第三方可信任驗證機構的驗證請求后,云存儲服務器在完全存儲樹中查找到存儲著目標數據的相應目標結點target,并記錄了從根結點root到目標結點t的查找路徑,此時,云存儲服務器向用戶返回相應證據。
優選的,所述證據為proof={η,π1,π2,…,πn}:
1)若t是葉子結點,則η={mt},其中,mt表示結點t存儲的文件塊;
2)若t不是葉子結點,則η={mt,hsum(t→leftchild),hsum(t→rightchild)},其中,hsum(t→leftchild)表示結點t的左結點的聯合哈希值,hsum(t→rightchild)表示結點t的右結點的聯合哈希值。
πi的定義如下:
1)若i-1為左結點,則πi={hi,hsum(i-1),hsum(i→rightchild)};
2)若i-1為右結點,則πi={hi,hsum(i→leftchild),hsum(i-1)}。
優選的,步驟(4)包括:
1)首先計算a=h(mt),如果t是葉子結點,則驗證a=hsum(t)是否成立,否則,驗證h(a,hsum(t→leftchild),hsum(t→rightchild))=hsum(t)是否成立;
2)對于πi(i<n),若i-1為左結點,計算h(hi,hsum(i-1),hsum(i→rightchild)),若i-1為右結點,則計算h(hi,hsum(i→leftchild),hsum(i-1)),并驗證h(hi,hsum(i-1),hsum(i-1→brother))=hsum(i)是否成立;
3)對于πn,若n-1為左結點,則計算h(hn,hsum(n-1),hsum(n→rightchild)),若其為右結點,則計算h(hn,hsum(n→leftchild),hsum(n-1)),并與用戶之前所存儲的數據集的摘要值h(root)相對比;
如果以上所有驗證過程全部成立,則證明云存儲服務器所返回的答案為正確的,即認為所驗證的數據是完整的,反之,用戶則認為該數據已被篡改或偽造。
本發明提出了基于云計算的數據監控方法,提高了數據處理的效率、減少了占用的存儲空間。
附圖說明
圖1為本發明一種基于云計算的數據監控方法的流程圖;
具體實施方式
下面將結合本發明的附圖,對本發明的技術方案進行清楚、完整地描述。這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本發明相一致的所有實施方式。相反,它們僅是與如所附權利要求書中所詳述的、本發明的一些方面相一致的裝置和方法的例子。
參見圖1,本發明提出了一種基于云計算的數據監控方法,包括:
(1)存儲數據:用戶在向云存儲服務器存儲數據的時候,同時生成驗證工作所需的信息,將必要的信息分別存儲在第三方和云存儲服務器上。
首先,用戶經由第三方為文件生成數字簽名,同時為每一個文件塊生成一個文件校驗值,然后將文件協同數字簽名和校驗值一起存儲在云存儲服務器上,具體過程包括:
每個用戶為自己生成一對密朗,存儲在第三方可信任驗證機構,密鑰由一個私鑰和一個公鑰組成;
生成隨機數x作為私鑰,其中x∈zp,zp表示元素個數為素數p的有限域{0,1,…,p-1};
同時生成隨機數u,計算v=gx,o=ux,其中,g是有限域zp的生成元,以pk=(v,o,g,u)作為公鑰;
用戶在上傳文件時,用自己的私鑰為每個文件塊簽名,生成一個文件簽名,同時用特定的文件校驗方法為每個文件塊生成一個校驗值,例如md5校驗、sha-1校驗。
具體簽名方法包括:
對由n個文件塊組成的文件f=(m1,m2,…,mi,…,mn),為每個文件塊生成一個文件簽名
同時為每個文件塊生成校驗值wi,然后將mi,σi,wi一起存放到云存儲服務器上,將mi,σi,wi從本地刪除,然后將文件的序列信息,即每個用戶有幾個文件,分別是什么,存放到第三方可信任驗證機構。
(2)發起驗證請求:在用戶的要求下,或者定期任務下,第三方可信任驗證機構向云存儲服務器發起驗證請求,將驗證請求信息發送給云存儲服務器,具體包括:
第三方可信任驗證機構向云存儲服務器發送驗證請求信息,驗證請求信息為一串文件塊的序列,同時還要為每個文件塊生成一個隨機數,用chal表示,chal={i,qi},其中i表示文件塊的序列號,qi表示生成的隨機數;
(3)生成驗證消息:云存儲服務器收到第三方可信任驗證機構的驗證請求后,根據收到的驗證信息,計算出相應的證明信息,然后將證明信息發送給第三方可信任驗證機構接受驗證,具體包括:
設需要驗證的文件塊分別是k個用戶的,對每個用戶k,k∈{1,…,k},k個用戶的文件塊、數字簽名及校驗值分別是mk,1,…,mk,i,…,mk,n、σk,1,…,σk,i,…,σk,n、wk,1,…,wk,i,…,wk,n,同時為每個用戶k生成一個隨機數μrk;
云存儲服務器需要計算以下兩部分內容:
一是要計算每個用戶文件的線性組合:
其中,μrk是云存儲服務器每次驗證的過程中為每個用戶生成的隨機數,用于避免第三方可信任驗證機構獲得用戶的數據;
如果不用μrk,則驗證者可能會通過線性攻擊得到服務器上的文件,例如,如果第三方可信任驗證機構兩次驗證的過程中,第二次驗證比第一次驗證少一個文件,其他文件都相同,那么只需要用第二次的μrk值減去第一次的μrk值,就可以獲取到第二次驗證少的那個文件的信息了。如果加上隨機數,那么每次還參雜的有隨機數在里邊,通過簡單的線性攻擊就無法獲取到文件的信息。
二是要計算聚合簽名σ:
其中
將計算結果反饋給第三方可信任驗證機構,反饋的內容如下:
{σ,{μk}1≤k≤k}
(4)驗證:第三方可信任驗證機構收到云存儲服務器發來的反饋內容以后,結合第(2)步發給云存儲服務器的驗證請求信息,以及存儲在第三方可信任驗證機構的用戶信息,根據定義的規則驗證用戶的文件是否正確存儲。
在云存儲的數據驗證模型中,由于需要對用戶存儲在云存儲服務器上的數據進行驗證,如果這個驗證工作由用戶自己來做,有很多不合適的地方。
首先,用戶的計算能力有限,如果驗證的工作比較復雜,那么用戶本地的資源可能無法勝任這項任務,例如cpu運算速度不夠、帶寬不夠。其次,驗證工作需要驗證方保存有一些特定的信息,例如用戶的密銅,如果將驗證工作交給用戶來做,那么用戶可能會將這些特定的信息丟失,這些信息一旦丟失,就無法再做驗證工作。第三,驗證工作可能會定期執行或者需要一定的時間才能執行完畢,在這個過程中,驗證方必須在線完成驗證工作,而用戶在驗證過程中并不一定能夠保證在線,因此對于驗證工作也無法勝任。
因此,針對用戶無法完成驗證工作的事實,必須要有一個第三方可信任的機構來代替用戶作為驗證方完成驗證工作。用戶與云存儲服務器之間仍舊直接上傳和下載文件,而對于用戶文件的驗證工作則交給第三方來處理。
在使用同態認證標簽對用戶的數據進行驗證的方法中,由于每個用戶的密鑰不一樣,而驗證方法中需要使用用戶的密鑰對服務器返回的驗證證據進行加密運算,因此在每次驗證的計算過程只能針對單個用戶的數據進行。在實際的數據驗證中,由于有數量巨大的用戶存在,如果每次驗證過程只針對一個用戶的文件進行處理,每次傳輸過程只傳輸一個用戶的驗證信息,這個效率是比較低下的,將所有用戶的數據都驗證完需要太多次認證。
通過研究,發現由于同態認證標簽本來就己經通過密鑰簽名存儲在服務器上,而服務器端計算聚合簽名的過程是與用戶密鑰無關的,只是將各個文件的標簽進行結合得到一個聚合簽名,因此可以同時進行多個用戶計算聚合簽名的步驟,減少得到的聚合簽名的數量,進而減少傳輸的數量,做到多個用戶的數據共同驗證。
而在多用戶文件共同驗證的過程中,會帶來一些其他的問題。每一次驗證過程,由驗證方向存儲方發起驗證請求,由存儲方返回證據,證據證明這些批量驗證的文件是否有異常。然而如果在一次驗證過程中,某一個用戶的某個文件有異常,那么返回的證據只能表明該次驗證過程失敗,即說明該次驗證的這些文件的某些部分有問題,卻無法確定具體是哪一個文件有問題。遇到這種情況,需要對多用戶共同驗證工作進行修改,重新分配需要驗證的文件數量并重新進行驗證,直到多次驗證后定位到出現錯誤的文件。針對這個問題,本發明在云存儲服務器開始驗證前,先由云存儲服務器用一種基本的方法對用戶數據進行自檢,將錯誤文件提取出來,再將自檢結果發送給驗證方,由驗證方用更加確切的方法來驗證云存儲服務器的自檢結果。
早期的關于云存儲數據驗證的方法,都是建立在靜態文件的驗證基礎之上的,這些方法的前提是文件不能變化,如果文件發生了變化,那么這些方法就會全部失效。而在實際的存儲環境中,文件不可能不發生變化,因此,必須把文件變化作為一個必要的因素考慮進數據驗證的方法。
本發明采用一種帶權二叉樹實現對用戶文件的驗證,所述帶權二叉樹具體為:
所有的葉子結點都是一個文件塊的哈希值,同時包含一個權值,所有的葉子結點中,深度小的葉子結點的權值必須不小于比它深度大的葉子結點的權值;而對于非葉子結點,都只包含一個哈希值,這個哈希值是對它的兩個子結點的哈希值再次運算求得的哈希值。
在上述步驟(1)中,對于每個用戶k,根據每個文件塊的哈希值h(mi),以及每個文件塊賦予的初始權值vi,作為一個葉子結點生成一棵所述帶權二叉樹,然后再根據兩個子結點的哈希值,兩兩求得其父結點的哈希值,迭代求下去,得到所述帶權二叉樹的根結點的哈希值,然后用用戶k的私鑰對根結點進行數字簽名,生成一個根簽名文件sig(root),生成了根簽名文件以后,將根簽名文件、文件塊、文件塊的簽名、每個文件塊的權值以及所述帶權二叉樹的結構信息一起發送到云存儲服務器上,可以表示為{(mi,vi,σi),sig(root),struc},其中struc表示所述帶權二叉樹結構相關的信息,可以根據該信息得到所述帶權二叉樹的結構;同時用戶將自己的私鑰存儲在可信任的第三方驗證平臺上,云存儲服務器根據收到的{(mi,vi,σi),sig(root),struc},在云存儲服務器端生成一棵所述帶權二叉樹。
在上述步驟(3)中,根據所述帶權二叉樹的結構struc,把哈希值集合{h(mi)}連同計算根結點哈希值時struc上其他需要的結點的哈希值集合{{ωj}j∈struc},以及結構struc,一起返回給第三方可信任驗證機構,返回的數據表示為{{μk},σ,{ωj}j∈struc,sig(root),struc}。
在上述步驟(4)中,根據結構struc,用結點的哈希值{{h(mi)},{ωj}j∈struc}還原所述帶權二叉樹,進而得到新的根結點的哈希值h(root),之后,與收到的根結點簽名對下述公式進行驗證:
e(sig(root),g)=e(h(root),gsk)
sig(root):收到的根結點哈希值的數字簽名,h(root):根結點的哈希值,e():雙線性函數,g:有限域的生成元,sk:用戶的私鑰;
若根據云存儲服務器反饋的數據以及存儲在第三方可信任驗證機構的數據能夠滿足公式,則說明云存儲服務器存儲的數據沒有問題。
現有的基于云計算的數據驗證方法所采用的數據結構在存儲數據時,都是將數據存儲在葉子結點之中,在這種結構中,其他上層結點并不存儲實際數據,而只是存儲一些用以驗證的摘要值信息,這無疑增加了服務器上的存儲空間開銷。
為了優化這一問題,本發明又提出一種完全存儲樹,即樹中的所有結點都可以用來存儲實際數據,這樣不但減少了服務器上的空間開銷,而且可以降低樹的高度,從而降低了數據插入刪除等基本操作的時間復雜度。
本發明采用一種完全存儲樹實現對用戶文件的驗證,所述完全存儲樹具體為:
以平衡二叉搜索樹為基礎結構建立完全存儲樹,所述完全存儲樹中每個結點都存儲以下內容:
1)存儲在該結點的文件塊mi;
2)本結點文件塊的哈希值hi=h(mi);
3)聯合哈希值hsum(i),如果i是葉子結點,則hsum(i)=h(i),否則,根據結點i子結點的哈希值,求得其父結點的哈希值,迭代求下去,得到所述完全存儲樹的根結點的哈希值,即整個完全存儲樹的哈希值h(root)。
在上述步驟(3)中,云存儲服務器收到第三方可信任驗證機構的驗證請求后,云存儲服務器在完全存儲樹中查找到存儲著目標數據的相應目標結點target,并記錄了從根結點root到目標結點t的查找路徑,此時,云存儲服務器向用戶返回相應證據proof={η,π1,π2,…,πn},其中
1)若t是葉子結點,則η={mt},其中,mt表示結點t存儲的文件塊;
2)若t不是葉子結點,則η={mt,hsum(t→leftchild),hsum(t→rightchild)},其中,hsum(t→leftchild)表示結點t的左結點的聯合哈希值,hsum(t→rightchild)表示結點t的右結點的聯合哈希值。
πi的定義如下:
1)若i-1為左結點,則πi={hi,hsum(i-1),hsum(i→rightchild)};
2)若i-1為右結點,則πi={hi,hsum(i→leftchild),hsum(i-1)};
在上述步驟(4)中,具體驗證過程如下:
1)首先計算a=h(mt),如果t是葉子結點,則驗證a=hsum(t)是否成立,否則,驗證h(a,hsum(t→leftchild),hsum(t→rightchild))=hsum(t)是否成立;
2)對于πi(i<n),若i-1為左結點,計算h(hi,hsum(i-1),hsum(i→rightchild)),若i-1為右結點,則計算h(hi,hsum(i→leftchild),hsum(i-1)),并驗證h(hi,hsum(i-1),hsum(i-1→brother))=hsum(i)是否成立;
3)對于πn,若n-1為左結點,則計算h(hn,hsum(n-1),hsum(n→rightchild)),若其為右結點,則計算h(hn,hsum(n→leftchild),hsum(n-1)),并與用戶之前所存儲的數據集的摘要值h(root)相對比;
如果以上所有驗證過程全部成立,則證明云存儲服務器所返回的答案為正確的,即認為所驗證的數據是完整的,反之,用戶則認為該數據已被篡改或偽造。
本發明提出了基于云計算的數據監控方法,提高了數據處理的效率、減少了占用的存儲空間。
本領域技術人員在考慮說明書及實踐這里公開的發明后,將容易想到本發明的其它實施方案。本申請旨在涵蓋本發明的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本發明的一般性原理并包括本發明未公開的本技術領域中的公知常識或慣用技術手段。
應當理解的是,本發明并不局限于上面已經描述并在附圖中示出的精確結構,并且可以在不脫離其范圍進行各種修改和改變。本發明的范圍僅由所附的權利要求來限制。