同態簽名的妙用:云數據完整性審計技術(一)
隨著數據規模增長,越來越多的用戶選擇將他們的文件外包存儲在第三方的云服務器上。然而,數據的外包會帶來一系列的安全問題,例如云服務器的硬件故障、黑客入侵篡改等會導致用戶數據的損壞。更嚴重的是,云服務器為了保護自己的聲譽可能掩蓋數據受損的事實,甚至會偽造用戶的數據。云數據完整性審計技術是一種關鍵的數據安全技術,用來解決上述的問題。本系列文章聚焦在云數據完整性審計技術,分別介紹1)云數據完整性審計技術的背景及密碼學技術;2)保證低熵值安全的,并且實現文件和認證器去重功能的云數據完整性審計方案。3)基于關鍵詞且實現敏感信息隱藏的云數據完整性審計方案。本文作為第一篇,將從相關背景、密碼學知識、協議流程以及研究現狀進行介紹,使得讀者對云數據完整性審計技術有一個入門級的基本了解。
一、研究背景
云計算技術有著低成本、便捷等優勢,近年來得到廣泛應用。越來越多的企業機構和個人用戶選擇將自己的本地數據上傳到云服務器上,享受云服務器帶來的便利,減輕本地存儲管理和維護負擔。對于個人用戶而言,由于本地存儲空間的限制,隨著數據規模的日益增長,自己管理和存儲這些海量的數據變得尤為困難。越來越多的用戶采取云存儲服務,例如百度云,因為這些云服務商有著用戶所沒有的巨大的存儲資源和計算能力。但是數據的外包帶來一系列的安全問題:數據的完整性和正確性無法得到保證。云服務商的硬件故障可能導致用戶的數據受損,用戶的數據甚至可能遭到篡改。云服務商出于自己聲譽的考慮,可能不會通知用戶數據受損的事實。而當用戶想要使用文件時,才會發現文件無法正確地被提取。因此就需要對存放在遠程云服務器上的數據的完整性進行檢測。
傳統的數字簽名、消息認證碼MAC以及哈希函數[1-4] 可以檢測數據的完整性。用戶為每個數據塊計算一個認證器,這個認證器可以是上述的數字簽名或MAC值等。用戶將它們連同數據塊一起上傳到云服務器上。當用戶想要檢測文件的完整性的時候,將要求云服務器將文件連同認證器一起返回給用戶。但是這種直觀的方法在云存儲、大數據的背景下并不合適。這是因為當云存儲的數據量較大時,驗證這些海量文件的完整性需要耗費巨大計算和通信開銷。為了解決這個問題,云數據完整性審計的概念被提出來。在云數據完整性審計中,用戶所計算的認證器具有同態的性質,也就是說,多個數據塊可以聚合成一個數據塊,多個認證器也可以聚合成一個認證器。用戶通過驗證聚合的數據塊和聚合的認證器的正確性,即可知道所有文件是否遭到篡改或損壞。除此之外,用戶還可以委派第三方審計者(Third PartyAuditor,TPA)代替自己對數據的完整性進行審計檢測。
二、密碼學基礎
下面主要介紹云數據完整性審計技術所用到的密碼學工具以及假設,包括雙線性映射、CDH假設和DL假設,本文簡單介紹其相關定義,具體可參考[5-6]。
我們使用G1和G2來表示兩個q階乘法循環群,使用g來表示群G1的一個生成元。使用u和v表示群G1中的兩個隨機元素,a和b表示兩個隨機元素。
2.1雙線性映射
雙線性映射e滿足以下三個條件:
a)可計算性:計算e應當是高效的。
b)雙線性性:e(u,v)ab=e(ua,vb)。
c)非退化性:e(g,g)≠1。
2.2CDH假設
CDH假設指的是:在給予 (g,ga,gb)的情況下,輸出gab在計算上是困難的。
2.3DL假設
DL假設指的是:在給予(g,ga)的情況下,輸出a在計算上是困難的。
三、云數據完整性審計流程
在云數據完整性審計中,TPA(第三方審計者)可代替用戶檢測存放在云服務器上文件的完整性。如圖1 展示了云數據完整性審計的流程。

圖1:云存儲完整性審計流程
用戶首先生成加密文件和認證器發送給云服務器。注:這個認證器需要具有同態可聚合的性質。用戶將加密的文件和認證器上傳給云服務器。在需要進行完整性審計的時候,TPA生成隨機的審計挑戰(數據塊的索引以及相對于的挑戰系數),將它們發送給云服務器。云服務器計算聚合的數據塊以及聚合的認證器,將它們作為審計證明返回給TPA。最后TPA可以利用用戶的公鑰來驗證審計挑戰的正確性。如果審計挑戰可以通過驗證,則意味著用戶的文件完整的保存在云服務器上;否則意味著用戶的文件可能遭到損壞。圖2展示了同態認證器的一個例子,在這個例子中,兩個消息m1、m2 聚合成了一個消息;兩個認證器σ1,σ2聚合成一個認證器。在驗證的時候,只需要對聚合的數據和聚合的認證器進行驗證即可,大大降低了通信和計算上的開銷[7-10]。

圖2:同態認證器
四、國內外相關工作與未來發展趨勢
Ateniese等人[11]首先提出了“可證明數據擁有”(ProvableData Possession (PDP))的概念。Juels 和KaliskiJr[12]提出了“可證明數據提取”(Proof ofRetrievability (PoR))的概念。PoR可以保證云數據的擁有性和可提取性。在PDP和PoR中,為了驗證數據的完整性,用戶需要計算認證器。這些認證器是由同態簽名(例如BLS短簽名[13])得到的。在審計過程中,TPA可以對聚合的認證器和聚合的數據塊進行驗證。構造合適的認證器是各個方案的重點。近幾年,國內外的研究者主要針對:數據動態性、數據擁有者變更、隱私保護、安全去重等方面進行了研究[14-20]。但伴隨著用戶日益增長的數據,目前云數據完整性審計面臨以下兩個問題:
首先,通過對數據的分析統計,研究人員發現存放在云服務器上的大部分數據都是重復的。如果對于用戶重復的數據只保留一份副本,則會大大降低云服務器的存儲資源。在現實中,數據去重技術已經有了廣泛應用,例如百度云盤的“急速秒傳功能”就是運用了數據去重技術。在實際應用中,除了數據外,認證器也占據云服務器相當大的存儲開銷。如果可以對文件和認證器同時去重,則會大大提高云服務商的性能。因此需要設計一種可以保證低熵值安全的,并且實現文件和認證器去重功能的云數據完整性審計方案。
其次,在公開審計的背景下,TPA通常根據審計文件的數量向用戶索取服務費用。而用戶通常只關心一部分的文件(而不是全部的文件)的完整性。除此之外,TPA應當獲取盡可能少的敏感信息,因此需要設計一種可以基于關鍵詞,并且實現敏感信息隱藏的云數據完整性審計系統。
五、總結
云數據完整性審計技術方案可以高效地檢測保存在云服務器上的用戶數據的完整性。在本文作為云上數據安全系列的第一篇,簡單介紹了云存儲完整性審計的背景、技術實現以及國內外的相關工作。在后續的文章中,我們將分別介紹關于上述兩個問題的解決方案:1)可以保證低熵值安全且支持去重的云數據完整性審計方案[21];2)基于關鍵詞且實現敏感信息隱藏的云數據完整性審計方案[22]。感興趣的同學可以持續關注后續更新!