我有一个应用程序服务器的连接数据库服务器。我想要能够为用户提供安装和与中等程度的安慰,相信,数据库架构是安全的。

我的理解是,有一些风险,我将只需要接受与无控制的计算机上安装一个确定人权的工具和知识,能够直接看存储器中拉出的信息。

起初我以为我的区域的重点只会增加的全权证书安装没有他们正在观看平凡在一个六角的编辑。

然而,正如我开始研究我了解到,为PostGreSQL,甚至如果我安装的数据库默默并不提供全权证书用户--他们可以简单地改变基于文本的配置文件(pg_hba.conf),并重新启动服务器,使得能够全面进入该数据库没有凭证。

是这种情况下有担保的其他DBMS?怎么做大多数的商业产品,保护他们的模式,在这种情况?就多数产品使用嵌入数据库?


编辑:我认为(也许错误地这样),有些产品的依赖于数据库的用户实际上从未触及。我当然从来没有看到他们,因为他们设计它在这样一种方式,用户不需要-可能使用嵌入式的数据库。

有帮助吗?

解决方案

大多数商用产品没有保护自己的模式。它们分为两个阵营:

他们要么正在利用一个企业级数据库的该产品的关键部件(例如,工资系统),在这种情况下,没有作出隐藏模式/数据的尝试。在大多数情况下,客户需要对数据库的控制无论如何 - 配置数据库的方式备份,以便能够使集群环境,等等。

在另一种情况是,如果你的“数据库”不过是一个小设置或存储文件的桌面应用程序(例如:在Firefox中的历史和书签库)。在这种情况下,你应该只使用嵌入式数据库(如SQLite的,同火狐)和添加流加密层(有此称为SEE的正式版),或者只是使用嵌入式数据库,忘了加密层,因为用户将需要有自己安装数据库工具读取摆在首位的文件。

其他提示

因为我记得,没有商业的产品 "保护" 他们的模式。你想要什么的架构,以保护反对?

请考虑以下几点:

  • 毕竟,只有人可以保护任何在一个关系数据库是一个数据库服务器管理员。和你想要的架构是保护这个人吗?

  • 如果我是一个顾客和我 我的数据 在你的架构,我不会只喜欢,但是期望能够看到和消耗。

  • 你真的需要来保护你的关系的设计?真的很有趣吗?你发明了一些值得在隐瞒什么?我真的不认为如此。我提前道歉,如果你有。


编辑:额外的评论:

我不关心数据库内产品的使用。这是另一个原因,我认为他们中的大多数不采取任何行动来保护他们。他们中的大多数都不是很有趣。

在一边,我强烈认为,用户应不需要知道或关心内部的数据库。但在同一水平,作为开发者,我不认为这是值得尝试保护他们。隐藏他们从用户,是的。保护他们免受直接访问,在大多数情况下,没有。并不是因为我认为这是错误的保护你的架构。这是因为我认为这是一个非常困难的事情要做,这是不值得你花时间作为一个开发商。

但在结束时,如有任何安全有关的主题,唯一正确的答案是关于什么的 风险 参与 费用 实施安全措施。

目前的数据库引擎、嵌入式或服务风格,是不是设计为容易隐瞒的方案的数据库,因此,发展成本,这样做是远远大于所涉及的风险,对于大多数人。

但你的情况可能有所不同。

什么问题是你想解决?没有任何东西可以从做一切他要标准数据库停止DBA *,和其他人指出这是积极的敌对与特定的站点需要像备份和数据库升级干涉。最多可以加密数据库中的内容,但即使如此,你必须为你的应用程序实际运行和动机和敌对DBA也许可以颠覆它的解密密钥。

在军事和情报社区undoubtably有地方连架构高度机密的数据库,但我不知道他们是不是通过技术手段或者只是大男人拿着枪保护。

(*)DBA或系统管理员能够修改文件等的pg_hba.conf。

  

如何做最商业化的产品   保护他们的模式在这   方案

我不相信大部分的商业产品做任何事情来保护自己的模式。

如何嵌入式数据库管理系统可以阻止别人用它的存储鼓捣(文件中的非嵌入式硬件上下文)当这种人有到这个DBMS运行的机器的物理访问? 安全是一个危险的命题。

这个想法会从同样的问题DRM受到影响。您不能防止由确定的访问,并且你只会引起一般的痛苦和苦难为您的客户。只是不这样做。

SQLite的包装整个数据库格式到一个单一的文件,你可以想见,加密和就地对其进行解密。该缺陷,当然,是用户需要的关键,现在使用的数据库,以及可能发生的唯一方法是,如果你把它送给他们,或许是硬编码在编译时(通过隐藏的安全)或电话入户方案(理由一大堆,为什么这一次是一个坏主意)。加上现在他们会恨你,因为你已经挫败了在有用的备份系统中的任何企图,他们得到可怕的表现启动。

此外,没有人真正在乎的模式。恨打破它给你,但架构设计是不是一个很难的问题,当然也从来没有一个合法的竞争优势(如知识表示和数据仓库,也许一些特定的领域之外)。模式是一般不值得保护在首位。

如果它真的对你那么重要,做一个托管的应用程序来代替。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top