如何保护密钥免受其他应用程序的侵害?

时间:2011-04-16 09:32:58

标签: security sqlite storage

设置

  1. 我有一个SQLite数据库,其中包含机密的用户信息。
  2. 此数据库可以在其他计算机上复制
  3. 我信任用户,但不信任其他应用程序
  4. 用户偶尔可以访问全局服务器
  5. 安全目标

    1. 除授权的(我的)以外的任何程序都无法访问SQLite数据库。
    2. 在一台计算机上破坏安全性不会破坏其他计算机上的安全性
    3. 系统必须是可更新的(意味着如果某些算法(如特定密钥生成算法显示有缺陷,则可以更改)
    4. 建议设计

      使用加密的SQLite数据库将密钥存储在操作系统安全存储中。

      问题

      任何Windows hack都允许此人访问违反目标#2的所有计算机的密钥

      备注

      1. 与此方法类似,如果我将密钥存储在可执行文件中,则破坏安全性将使所有系统都崩溃。
      2. 另外,我引用了windows安全存储。虽然如果必须的话,我会去一个特定于操作系统的解决方案,我更喜欢非特定于os的解决方案
      3. 关于如何实现设计目标的任何想法?

1 个答案:

答案 0 :(得分:0)

我认为你需要使用TPM硬件,例如通过TBS或类似的东西来实际制作一个安全的版本。我的理解是,TPM允许应用程序检查它是否未在软件级别进行调试或跟踪,并且操作系统应该阻止任何其他应用程序假装TPM模块它是您的应用程序。我可能错了。

你可以使用某种安全隐藏的方法,但除非你使用TPM,否则它将被调试器破解。

相关问题