2011-04-16 48 views
0

設置如何保護密鑰免受其他應用程序的侵害?

  1. 我有一個具有保密用戶信息的SQLite數據庫。
  2. 該數據庫可以在其他機器上覆制
  3. 我信任用戶,而不是其他應用
  4. 用戶必須在全球服務器偶爾訪問

安全目標

  1. 除了授權的程序(我的)以外的任何程序都無法訪問SQLite數據庫。
  2. 打破一臺機器上的安全性不會破壞在其他機器上的安全
  3. 該系統必須可更新(這意味着如果是有缺陷的一些算法,例如一個特定的密鑰生成算法中示出,它可以被改變)

設計建議

使用加密的SQLite數據庫存儲OS安全存儲中的關鍵。

問題

任何窗口破解將允許人來訪問密鑰違反目標#所有機器2

注意

  1. 這種方法類似,如果我將密鑰存儲在可執行文件中,破壞安全性將會包含所有系統。
  2. 此外,我引用了Windows安全存儲。雖然,如果必要的話,我會採用特定於操作系統的解決方案,但我更願意使用非特定於操作系統的解決方案

關於如何滿足設計目標的任何想法?

回答

0

我想你需要使用TPM硬件,例如通過TBS或類似的東西,實際上製作一個安全的版本。我的理解是,TPM允許應用程序檢查它沒有在軟件級進行調試或跟蹤,並且操作系統應該阻止其他任何假裝TPM模塊的應用程序將它作爲您的應用程序。但我可能是錯的。

你可以使用某種安全通過默認的kludge,但除非你使用TPM,否則它將被調試器破解。

相關問題