【问题标题】:Selecting a Secure DBMS against direct disk access选择针对直接磁盘访问的安全 DBMS
【发布时间】:2012-05-21 05:16:40
【问题描述】:

我将创建一个 Java 应用程序来收集一些企业信息。
我的问题是 DBMS 安全性。
编辑:我的应用程序未连接到网络以及整个数据库和应用程序。位于该应用程序的系统上。从那里访问;用户有 ACL,所以我不希望用户能够通过使用磁盘上的数据库文件来读取无法访问他们的数据。
我需要一个对磁盘上的数据进行加密的 DBMS,以保护数据免受使用文本/十六进制编辑器或其他 SQL 浏览工具(如没有安全机制的 SQLite 或......)的人的侵害!

我可以使用哪个 DBMS 来确保只能通过我的应用程序(当然还有 DBMS 本身)而不是直接从磁盘访问数据?

MySQL或PostgreSQL有这样的直接磁盘访问保护机制吗?

谢谢

【问题讨论】:

  • 为什么磁盘对攻击者可用?这应该是第一个问题!
  • 请进一步指定读保护,您是否需要防盗保护(然后您可以使用几乎任何加密文件系统,如 TrueCrypt 或 Postgre 的内部机制等)或者您是否需要读保护在运行时(挂载文件系统时)?
  • @Len:我编辑了问题并描述了原因。
  • @ChristianUhl:当文件系统被挂载时。
  • 为什么不用操作系统的用户分离呢?使用不同的帐户和 ACL 运行数据库,以便只有数据库用户有权访问。还是您将管理员视为攻击者?

标签: security encryption disk database data-protection


【解决方案1】:

如果个人可以访问磁盘本身,那么他很有可能可以访问您的应用程序的代码和其他数据。并且加密密钥(用于加密数据库文件)也将可用。如果计算机设备落入不法分子的手中,则此问题没有通用解决方案(请参见下面的一种方法)。

抛开以上内容,您有几个选择:

  1. SQLite 有whole-DB encryption plugin
  2. 您可以使用 TrueCrypt 或其替代方法之一安装磁盘
  3. 我们有几个产品(即 SolFS 和 CallbackFilter),让您可以使用虚拟磁盘 (SolFS) 或通过过滤文件 I/O 请求 (CallbackFilter) 动态加密/解密文件来动态加密 DB 文件.

如果您能够让用户以某种方式提供密码/密钥,那么您可以使用会话密钥来加密数据库数据,然后使用每个用户的密码加密此会话密钥。然后,当用户想要访问数据时,您要求他输入密码,解密会话密钥并使用该密钥访问数据库。通过这种方式,用于加密数据的密钥不会以“明文”形式存储,并且对磁盘进行物理访问不会泄露数据。

【讨论】:

    猜你喜欢
    • 2016-12-10
    • 2010-11-26
    • 2014-04-05
    • 1970-01-01
    • 1970-01-01
    • 2014-07-21
    • 2011-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多