2011-11-10 48 views
1

我需要在本地存儲加密密鑰以允許用戶在斷開模式下使用我的CouchApp。我將發送的數據非常敏感,需要通過法律加密。但是,我們希望在斷開連接時提供對數據的完全訪問權限。目前我們有一個密碼密鑰生成器,但這需要用戶在每次查看記錄時都輸入密碼。此外,這似乎並不安全,因爲有經驗的用戶或高級用戶可能會訪問加密密鑰,然後訪問本地數據庫。我基本上想知道是否有人對斷開連接的安全模型有所瞭解,或者如果您可以提供關於如何在維護安全性的同時允許訪問的指針。在本地爲斷開模式存儲加密密鑰

回答

2

如果您的客戶端直接連接到數據庫,則所有用戶都可以訪問整個數據集。顯然你相信你的用戶......一切。這個功能在這裏打破了最常見的數據保護模式。攻擊者不需要sql注入或不安全的直接對象引用,他可以抓住任何他,因爲你給他所有的東西。

我不明白密碼學是如何解決你的問題的。它看起來像一本教科書CWE-602 violation

+0

您是否熟悉CouchApp?這背後的想法是,數據庫在本地提供,並從主副本複製。用戶沒有密碼就無法直接訪問數據庫,並且數據在本地進行了加密。然而,這意味着我需要在本地存儲解密密鑰或至少部分解密密鑰。 (這是如果我繼續使用密碼方法中的部分密鑰生成)。 – Jlange

+0

@Jlange看到加密永遠無法這樣工作。該設備的用戶比開發人員擁有更多的控制權。沒有地方可以隱藏攻擊者無法找到的祕密。 **你一直信任用戶。** – rook

+0

@Jlange那麼等一下設備是否可以上傳他們自己的數據庫副本來覆蓋所有內容? Outch哥們,這真的很糟糕。 – rook