我目前正在为一些安全的完整系统提出建议,目前缺少的是数据库安全性。
但是,我不想在那里使用自己的密码,因此需要一种安全的、经过一定审查的/标准的方法来加密数据库。为此,我查看了CryptDB,但是它缺乏我认为需要的身份验证,除了“端到端”加密之外,我很难找到ZeroDB提供了什么。
在这种情况下,我对“最佳”的定义是:提供真实性和保密性(最重要的是),提供整个数据库的完整性(不沉默地删除数据),尽可能少地向服务器泄漏信息,不需要隐藏访问模式,允许复杂的(加密强制的)访问规则。
可以假设客户确实使用/拥有公共/私钥对和/或密码,没有有效密钥的每个人都被认为是他无法访问的数据的对手,也就是说,攻击者可能不会不被检测到修改、添加或删除数据,或者如果他们破坏了客户端以外的所有内容,就可以读取数据。
服务器应该保存数据库的唯一副本,如果可能的话,不应该将其分发出去(因为大小)。至于API,更多的标准API (SQL?)是首选的,但是定制的查询也是可以接受的,只要它们支持通常的查询(比如ZeroDB和CryptDB )。
发布于 2015-12-25 15:58:28
阅读您的消息,我们(在ZeroDB中)意识到,我们需要在文档中添加一些内容。
提供真实性和保密性(最重要)
我们现在已经有了
提供整个数据库的完整性(没有无声的数据删除)
我们几乎把它建立在ZODB的基础上(符合酸性)。
尽可能少地向服务器泄漏信息,不需要隐藏访问模式
我们不会泄露像CryptDB这样的加密数据的属性,但是我们会缓慢地泄漏访问模式。似乎适合你
允许复杂(加密强制)访问规则。
在github当前的版本中,访问规则非常简单(用户拥有自己的子数据库,但也有"admin“用户)。我们有一个带有代理重新加密的版本,并且有可能以端到端加密的方式(基于列和行)授予/撤销访问权限。
可以假设客户确实使用/拥有公共/私钥对和/或密码,没有有效密钥的每个人都被认为是他无法访问的数据的对手,也就是说,攻击者可能不会不被检测到修改、添加或删除数据,或者如果他们破坏了客户端以外的所有内容,就可以读取数据。
在当前实现中,默认情况下,客户端的私钥派生自密码(虽然添加使用证书的可能性很小)。攻击者可能不会修改或添加数据,尽管我们需要添加一些防止数据丢失的额外保护(检测到攻击者删除了数据的一部分是可能的,但目前需要一段时间)。
服务器应该保存数据库的唯一副本,如果可能的话,不应该将其分发出去(因为大小)。
这就是它在ZeroDB中的工作方式
至于API,更多的标准API (SQL?)是首选的,但是定制的查询也是可以接受的,只要它们支持通常的查询(比如ZeroDB和CryptDB )。
看来您非常熟悉我们的查询语言:-)将来,我们将添加SQL兼容性,因为很多人都要求这样做。请问:您需要什么样的查询?
是的..。圣诞快乐:-)
https://crypto.stackexchange.com/questions/31475
复制相似问题