2011-11-10 50 views
1

我需要在本地存储加密密钥以允许用户在断开模式下使用我的CouchApp。我将发送的数据非常敏感,需要通过法律加密。但是,我们希望在断开连接时提供对数据的完全访问权限。目前我们有一个密码密钥生成器,但这需要用户在每次查看记录时都输入密码。此外,这似乎并不安全,因为有经验的用户或高级用户可能会访问加密密钥,然后访问本地数据库。我基本上想知道是否有人对断开连接的安全模型有所了解,或者如果您可以提供关于如何在维护安全性的同时允许访问的指针。在本地为断开模式存储加密密钥

回答

2

如果您的客户端直接连接到数据库,则所有用户都可以访问整个数据集。显然你相信你的用户......一切。这个功能在这里打破了最常见的数据保护模式。攻击者不需要sql注入或不安全的直接对象引用,他可以抓住任何他,因为你给他所有的东西。

我不明白密码学是如何解决你的问题的。它看起来像一本教科书CWE-602 violation

+0

您是否熟悉CouchApp?这背后的想法是,数据库在本地提供,并从主副本复制。用户没有密码就无法直接访问数据库,并且数据在本地进行了加密。然而,这意味着我需要在本地存储解密密钥或至少部分解密密钥。 (这是如果我继续使用密码方法中的部分密钥生成)。 – Jlange

+0

@Jlange看到加密永远无法这样工作。该设备的用户比开发人员拥有更多的控制权。没有地方可以隐藏攻击者无法找到的秘密。 **你一直信任用户。** – rook

+0

@Jlange那么等一下设备是否可以上传他们自己的数据库副本来覆盖所有内容? Outch哥们,这真的很糟糕。 – rook