在 Seny Kamara 的帶領下,微軟專家成功地從存儲在 CryptDB (PDF) 中的健康記錄中獲取了大量數據,這是一種使用多層加密的數據庫技術,允許用戶在不暴露內容的情況下進行搜索。
由 MIT 開發的 CryptDB 作為標準結構化查詢語言 (SQL) 數據庫的補充,允許應用程序與加密數據進行交互。類似于具有多層的洋蔥,CryptDB 結合了舊形式的加密,其中一些允許進行計算。覆蓋不同層的數據庫允許用戶剝離到允許數學運算的加密,例如分析算法。數據的所有點都使用不同的密鑰進行加密。
雖然 CryptDB 旨在防止對數據庫服務器應用程序的破壞,但它的創建并不是為了防止對用于訪問信息的聲明的攻擊。它通過限制可能泄露的密鑰可訪問的數據泄露,部分限制了這種類型的攻擊。為了破解加密,還需要 SQL 服務器處理數據。攔截發送到服務器的查詢可能會泄露數據,具體取決于它們的結構。
為了破解加密數據庫,微軟專家研究了 CryptDB 中最薄弱的環節:保序加密 (OPE) 和確定性加密 (DET 或 DTE) 結構。OPE 使諸如“ORDER BY”之類的 SQL 查詢能夠執行,而 DTE 允許數據庫“通過確定性地為相同的明文生成相同的密文”來搜索匹配值,正如開發人員在他們的研究論文中所描述的那樣。“這個加密層 (DTE) 允許服務器執行相等檢查,這意味著它可以使用相等謂詞、相等連接、GROUP BY、COUNT、DISTINCT 等執行選擇。” 這兩種方案是 CryptDB 中最容易發生數據泄露的。
伊利諾伊大學厄巴納香檳分校的 Kamara、Muhammad Naveed 和波特蘭州立大學的 Charles Wright 使用了一個簡單而古老的技巧來破解加密:頻率分析。使用與目標內容相似的數據源,專家分析了文本中字符的重復率,并將其與 DTE 加密數據列中數據的規律性進行匹配。正如研究論文中所寫,他們還使用了他們自己的三種新攻擊,這些攻擊來自數百年的頻率分析:
Lp 優化:是我們引入的一個新的攻擊系列,用于解密 DTE 加密的列。該族由 lp 規范 [對值之間的預期差異的分析] 參數化,并基于組合優化技術。
排序攻擊:是一種對 OPE 加密列進行解密的攻擊。這種民間傳說攻擊非常簡單,但正如我們所展示的,在實踐中非常強大。它適用于“密集”的列,因為消息空間的每個元素都出現在加密列中。雖然這似乎是一個相對強的假設,但我們表明它適用于許多現實世界的數據集。
累積攻擊:是我們引入的一種新攻擊,用于解密 OPE 加密的列。這種攻擊甚至適用于低密度列,并且還利用了組合優化技術。
為了測試這些攻擊,研究人員使用來自醫療保健成本和利用項目 (HCUP) 的國家住院患者樣本 (NIS) 數據庫的真實患者數據,使用 OPE 和 DTE 對數據進行加密。頻率分析和 Lp 攻擊揭示了“200 家最大醫院中至少 99% 的 100% 患者的死亡風險和患者死亡”屬性,以及數據中 200 家醫院中 51% 的 100% 疾病嚴重程度數據放。除了這些信息,微軟專家還能夠獲得 200 家醫院中大多數患者的入院月份、死亡風險和入院類型。
前 CryptDB 開發人員 Raluca Ada Popa 回應說,OPE 和 DTE 方案旨在用于“高熵”值,其中數據不會透露太多信息,而不是大量患者死亡率百分比等信息。“我接觸過的每個使用過 CryptDB 的人都對 OPE 的使用非常小心,”他指出。
評論