目前常見的一些雲端儲存系統,像是 Google Drive [1], Dropbox [2], iColud
[4], SugarSync [5], OneDrive [3] 以及 Box [6],他們沒有提供擁有雙方不可否 認性的 SLAs。欲將伺服器上被錯誤更改的檔案回復,有一種做法是基於將資料 備份到多個伺服器上 [19] [20] [21] [22] [23] [24]。例如 Plutus 是一個加密的儲存 系統,使用者不用依賴檔案伺服器是否能被信任,就可以分享機密的檔案 [19]。
所有的資料都被加密的形式儲存,而且所有金鑰的分配是以分散的方式管理。客 戶端的設備每一次讀寫都更改所有的備份檔,只要有足夠數量的備份檔,客戶端 的設備就可以將損毀的檔案回復。然而,這些系統沒辦法提供任何形式的 POV。
挑戰-回應協定 (challenge-response protocol) 和可檢索的證明 (proofs of
retrievability, POR) 被提出來實行檔案系統的遠端完整性證明 [25] [26]。在這些 方法中,驗證者會定期地傳送一個請求給伺服器,伺服器需要計算指定的檔案的 驗證碼(checksum),然後將結果回傳給驗證者。驗證者接者會拿自己儲存的驗證 碼來比較回傳的結果是否正確。最近提出的一些基於 POR 的遠端完整性證明提 供讓第三方的稽核者可以在遠端的伺服器上檢查資料的完整性 [27] [28]。稽核者 必須是一個被信任的組織(如政府),才能在資料擁有者以及雲端伺服器之間提供 沒有偏頗的稽核結果。由於稽核是由稽核者來執行,當使用者的數量愈多時就需 要提供更多的伺服器。稽核者通常只會隨機的挑選各別的檔案或是檔案區塊,因
測是否有違反寫入的順序性和讀取的新鮮性。
有些系統考量雲端儲存系統是無法信任的,因此他們提供不需要將資料備份 或使用信任的第三方的方法來偵測檔案的完整性、寫入的順序性以及讀取的新鮮 性是否被違反。SiRiUS 是一個安全的檔案系統,他是實作在分層設計的不安全 的網路之中 [9]。儲存在檔案伺服器上的檔案保留兩個部份:第一個部份包含檔 案的後設資料 (metadata, md-file),另一個部份是加密後的資料 (d-file)。SiRiUS 利用一個雜湊樹來保證 md-file 的新鮮性。使用者客戶端的設備會建立一個包含 他所有 md-file 的雜湊樹。但是 SiRiUS 所保證的新鮮性只有在 md-file 上,因 此是有可能被發動回捲攻擊,將最新版本的 d-file 替換成較舊的版本。SUNDR 是一個設計成可將資料安全地儲存在不被信任的伺服器上的網路檔案系統。
SUNDR 讓客戶端設備可以偵測任何企圖以未經認証的方式修改檔案的惡意伺服 器操作或是惡意使用者 [10]。SUNDR 使用的協定是實作了一種稱為 fork
consistency 的特性,他能夠保證客戶端的設備只要可以看到每個檔案的修改,就 可以偵測完整性和一致性發生的錯誤。客戶端的設備保留一個清單,其包含儲存 伺服器上的檔案五個版本的紀錄。當使用者 U 執行一個檔案操作,他的客戶端
的設備取得一個全域的 Lock,然後為每個使用者和群組下載最新版本的清單。
這些版本清單可以用來偵測是否違反。SUNDR 利用一個稱為 forking semantics 的方法處理違反偵測的問題,這個方法也被其他的研究所使用 [29] [30] [31]。上 述的解決方法保證完整性,並且在客戶端設備中增加一些額外的頻外
(out-of-band) 通訊來實現一致性的相關概念。Venus 系統解決的這個通訊的問題,
透過延遲建立操作的一致性直到他們結束後的一段時間 [32]。總的而言,上述的 這些方法只能支援偵測違反,他們沒有辦法提供一個方法來向第三方證明違反的 發生。
Iris 是一個雲端檔案系統,他提供即時的完整性檢查。他保證消費者可以在 任何時候驗證檢索的檔案是否違最新的版本,因此就可以預防回捲攻擊將檔案回 復成之前的狀態 [11]。Iris 被設計為可以讓企業所使用。一個集中且被信任的入 口網站置於企業信任的邊界,扮演著企業客戶端設備與雲端之間所有通訊的中介 的角色。入口網站保留最近被企業用戶所處理的檔案以及使用者檔案的雜湊樹。
此入口網站佈署了一個 semaphore 以確保共同處理暫留的雜湊樹,這可能會是這 個系統的瓶頸處。雖然他可以提供動態的 POR,Iris 仍無法提供 POV。
Yumerefendi 和 Chase 提出了一個框架,CATS,他能夠提供課責性
(accountability) 於網路儲存系統 [15]。CATS 伺服器從有效的寫入操作讀取回復 的結果來提供密碼學的證據。每一份 CATS 的請求和回復都包含了一個數位簽章,
用以證明發送者的唯一的身份驗證以及證明訊息的完整性。為了支援寫入的順序
性和讀取的新鮮性,當寫入者得到的寫入物件的版本戳章與目前完全一樣,如此 的寫入請求伺服器才會允許。CloudProof 能夠提供基於 epoch 的 POV [33]。使 用者不只能夠偵測完整性的違反、寫入的順序性、讀取的新鮮性,他們還能夠向 第三方提出以上違反事件發生的證明。使用簽章以及鏈雜湊值(chain hashing),
CloudProof 的架構能夠提供不可否認以及寫入的順序性的特性。新鮮性是由定期 的稽核資料所保證。然而客戶端的設備如果對同一個帳戶做操作,就必須和設備 們交換取得最新的使用者端的證據,否則客戶端的設備就必須保留全部使用者端 的證據。
在我們先前的一篇研究 [34],我們提出了一個新的方法,客戶端的設備不需 要儲存任何檔案的雜湊值。使用者帳號的檔案,將其雜湊值儲存成 FBHTree 的 格式,存放在服務提供者的伺服器。使用者帳號的原始資料夾和檔案結構利用索 引函式對應成 FBHTree。一個 FBHTree 是設計成儲存於一維的矩陣,因此我們 能夠非常快速的讀取或寫入裡面的內容。並且設計了多個步驟的握手協定,使得 服務提供者可以傳送一個 FBHTree 的片段給客戶端設備來提供即時的稽核以及
POV。實驗結果顯示此方法速度優於之前的研究,效能提升了一至兩個數量級。
這個方法在任何的情況下,都能比正常、沒有 POV 的檔案傳輸所需的兩倍時間 內完成檔案的操作傳輸。雲端儲存的服務提供者能夠使用這篇論文中提出的方法,
在他們的服務層級協議中提供一個互相不可否認的保證。但是本論文提出的方法 能夠同時將檔案備份數份,更增加了檔案的安全性,這是之前這篇論文無法做到
的優點。