2011-09-13 20 views
1

有沒有辦法設計一個數據庫,用戶的個人資料數據可以在系統入侵的情況下受到保護?用戶隱私和數據庫中的數據安全

例如,私人數據可能是有價值的,即使它可能不直接與金融交易或密碼相關。 [電話號碼,電子郵件地址等可能被轉售]

有沒有一種方法來設計一個基於成員的網站,其中個人信息由網站的授權代理存儲和操縱。但是,在這種情況下,如果數據庫與系統斷開連接,數據可能會貶值。

我意識到,大部分用戶隱私和數據問題主要集中在用戶界面上,並防止未經授權的用戶訪問與他們無關的數據。但是,我的問題是用戶信息如何在後端本身內得到保護。我也意識到這是一個失去數據訪問的情況[並且你可以做任何反應性的(技術上明智的)],但是我試圖發現的是,是否可以主動地採取措施來減輕這種打擊。

我的問題是:個人數據如何得到保護,而不會影響數據的實際目的?

我可以看到需要加密所有信息,但這會阻止組訪問與用戶相關的數據。例如,您可以使用私鑰加密用戶的郵政編碼,但您將如何保留使用該郵政編碼的位置信息的能力。 [也許向用戶聲稱「這些人可能會在你附近」]

在這種假設的情況下,攻擊者被給予一個被利用的數據庫。他們不能使用原始系統來操作數據庫。

回答

0

在您的示例中,正確的訪問控制可能是最明智的方法,因爲您不想放棄,例如對有問題的字段進行排序或查詢的能力。

+0

如果數據庫有缺口,訪問控制並不意味着什麼。 – monksy

1

如果您僅在登錄時訪問用戶的信息,則可以使用其密碼來解密數據庫中的數據。在此期間,您可以計算郵政編碼中的單向散列,並存儲未加密的散列。但是,如果您在網站的整個生命週期內開發數據庫,​​您將無法更新永不登錄的舊用戶的信息。也許這在實踐中並不是問題。

+0

我喜歡這個答案,但肯定有一種方法可以在不刪除數據含義的情況下進行單向轉換。例如:以這種方式轉換郵政編碼的方式,在這種方式下,您可以比較兩個地方,並仍然可以確定它們是不同的地點。 – monksy

+0

@monksy不可以。雖然您可以應用單向轉換(如哈希),但zip地址的空間非常小,以至於對暴力操作來說都是微不足道的。 – CodesInChaos

+0

是的,絕對 - 那正是我所掌握的。與asdfghjkl的zip哈希值相同的用戶與具有相同哈希拉鍊的其他用戶的郵政編碼相同。但是你不能期望asdfghjkm接近,否則你就冒險泄露私人數據。 – tripleee

1

我打算假設您指示入侵者不僅獲得了訪問機器的權限,而且還獲得了任何MySQL密碼。

因此,我能想到的唯一解決方案就是在數據庫下使用加密的文件系統。即使在那裏,你仍然失去了設備的物理控制 - 所以如果入侵者已經找到了fs的解密密鑰,那麼你仍然是一個諺語的小溪。

另一種選擇是拆分應用程序,以便網站和數據庫不共享同一個系統。當然,通常以只讀用戶運行該網站是一個好主意™ :)

以散列或加密形式存儲數據庫是一個好的開始,但您仍然需要訪問解密密鑰,或者它將成爲gobbledygook。

最終,當然,保護數據庫的最佳方法是防止訪問 - 這不是一個可行的解決方案。

這是出現在新聞週期性如果/當在未經授權的形式訪問銀行或商店的客戶名單中的問題 - 該數據是安全只能通過接口/應用:它仍然以明文方式在某些時候在一切之下。

+0

我意識到,當你失去訪問權限時,你已經到了小溪。然而,我的問題是「如果所有安全層都從數據庫中剝離,你如何確保用戶的隱私」[即例如:如果你有一個完全受保護的數據庫,但數據庫中的原始數據[忽略CC和密碼],sql注入攻擊仍然會繞過文件系統加密,用戶帳戶等。 – monksy