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