第一節 Proof of Violation
由於我們沒辦法知道雲端服務提供商是否會遺失我們所儲存的檔案,又或者
對我們儲存的檔案做惡意的修改,所以本實驗室過去研究提出在上個章節所提到
的違約演算法。該演算法除了可以提供具有法律效用的「證據」,還有三項特性,
並保障雲端儲存空間的四種安全性質。
證明違約演算法有三項特性,第一,需要先定義其屬性(Properties);第二,
訊息要留做證據,且必須具有法律效力,每一則訊息都必須有使用者及服務提供
商兩方的簽章,證明雙方都同意此訊息內容;第三,具有稽核(Audit) 機制,根
據具有法律效力的證據,可證明是否有達到合約內容,稽核可以檢測是否有證明
違約,並且也可以反駁若其中一方做出的虛假指控。雲端儲存空間上四種安全性
質:保密性(Confidentiality)、完整性(Integrity)、寫入循序性(Write Serializability)
以及讀取新鮮性(Read Freshness),合稱為 CIWF。使用者可以偵測雲端儲存空
間是否違反 CIWF 來確保自身檔案的安全性。這個系統具有不可否認性,因為
使用者所做的請求以及服務提供者維護資料的狀態都會被綁定在證據裡面。
第二節 雜湊值與雜湊鏈
本研究提及之雜湊值(Hash Value)為將一筆資料放入 SHA256[22]方程式中
(此動作以下稱為取雜湊值)得到的值,稱為該資料的雜湊值。SHA256 為一不可
逆的方程式,且碰撞率極低,所以一般把 SHA256 當作一對一不可逆的方程式(檔
案對映到檔案的雜湊值)。應用面以雲端儲存為例,使用者把資料存至雲端儲存
空間後,使用者會留下該資料的雜湊值。日後使用者把資料從雲端下載後,使用
者把下載的資料取雜湊值,並與當初保留的雜湊值比對,即可知道下載的資料與
當初儲存至雲端儲存空間的資料是否相同,以保證資料的完整性。
雜湊鏈(Hash Chain)為一將資料取雜湊值後鏈結起來的技術,可以保證資料
的完整性及寫入的順序性。使用者向雲端寫入新的資料時,新寫入的資料會包含
上一筆寫入的資料的雜湊值,而第一筆資料會包含一個初始化的雜湊值(Initial
Hash,簡稱 IH),藉此將每筆資料串接成雜湊鏈。如此一來使用者只需保留最後 一筆資料的雜湊值即可保證雜湊鏈上每筆資料的完整性,最後一筆資料的雜湊值
稱為該雜湊鏈最新的雜湊值(Chain Hash,簡稱 CH)。以圖二-1 為例,最後一筆寫
入的資料為 Data3,由於使用者手中握有雜湊鏈最新的雜湊值(Data3 的雜湊值),
因此可以確保 Data3 的完整性。又因為 Data3 中有 Data2 的雜湊值,Data2 的雜
湊值表示為 Hash(Data2),因此可以向前一筆資料(Data2)驗證其完整性,依此類
推。由於寫入 Data3 必須包含 Data2 的雜湊值,因此 Data3 必須在 Data2 寫入後
才能寫入,依此類推可排列出資料寫入的順序性,以圖二-1 為例,寫入的順序為
Data1、Data2、Data3。圖二-1中箭頭與括弧表示雜湊值為哪一筆資料的雜湊值。
IH Hash(IH)
Data1
Hash(Data1)
Data2
Hash(Data2)
Data3
圖二-1 雜湊鏈示意圖
第三節 C&L Scheme & A REAL-TIME POV SCHEME
過去的稽核必須蒐集一段時間的證據再進行(稱為 Epoch Based Auditing),無
法在每次的服務請求同時做稽核的動作。本研究指的即時稽核是指在每次的服務
請求同時就可以做稽核的動作,達到即時(Real-time)的效果。過去相關研究[11],
該方法不能抵禦來自雲端服務提供商的惡意攻擊(回捲式攻擊(roll-back attack[12])
或是 replay attack[13])。雲端服務提供商回復版本較舊的資料以及相關的電子簽章
去否認雲端服務提供商遺失最新版本的資料。因此 C&L Scheme[14]被提出,利
用雜湊鏈結搭配嵌入 LSN(Local Sequence Number)、客戶識別名稱(ClientID)
以及時代識別名稱(EpochID)於證據中,確保了雙方的不可否認性可以成功抵
禦服務提供者發起的回捲式攻擊。但是此種做法的稽核必須呼叫所有的使用者上
線,並取得所有使用者的最後一筆證據,因此並不能達到即時稽核。本實驗室過
去提出的以部分雜湊樹達成有效率的雲端儲存系統即時稽核[10]研究已經能夠
達到即時稽核的功能,該篇論文中提出了一個機制,將用戶整個資料夾以及檔案
以雜湊樹(hash tree)方式儲存,稱為 Merkle tree,以及利用雜湊樹產生之 root hash
來確保整個架構的唯一性,而雲端服務提供商保存著每次與客戶端交換訊息所產
生的證據,並交換 root hash,確保雙方狀態是一致的,用戶讀到的檔案也為最新
且正確的。以上狀況在單一用戶是可行的,但是當有用戶使用其他設備時,目前
資料夾的狀態就必須更新至其他設備,因此有一個同步伺服器的機制,讓其他設
備先暫時無法向伺服器溝通,必須等待正在請求服務的設備與伺服器完成一個完
整的運作(讀取或者寫入的動作 ),才可以解開同步伺服器,避免造成廣播
(broadcasting)不完備的情形。雖然同步伺服器的機制會增加其他設備等待的時
間,但是藉此讓許多設備透過同步伺服器之中交換證據,等到要做操作時才會更
新設備所儲存之 Merkle tree,可以降低許多時間,以達到真正的即時稽核
本篇的做法與上述兩個系統比起來更加完善,既可以達到即時稽核,又不需
要架設同步伺服器的機制、Merkle tree 跟廣播(broadcasting)。比起 C&L Scheme,
架構一樣卻可以達到即時稽核,且使用者不需要額外產生 LSN(Local Sequence
Number);比起以部分雜湊樹達成有效率的雲端儲存系統即時稽核,架構上更加 輕量化,也就是說不需要架設同步伺服器及建立 Merkle tree。