实现可伸缩的加密数据库模型


Implementing a scalable encrypted database model

难题来了。我们最近决定将mongoDB作为处理大量联系人数据的选择。在我们做出这一决定后,管理层实施了一项要求我们加密数据的策略。我们还没有从Postgres数据库中移植我们当前的联系人,因为我们正试图以一种可扩展的方式来做这件事。

问题是,我们希望能够查询加密的数据库数据。如果我们使用mongo,我们将需要提取客户端的整个数据集,解密它,然后应用我们想要的任何过滤器。如果我们使用postgres,我们得到了内置的加密/解密处理,但我们希望允许用户创建自己的字段,我们不希望使用包括添加和删除列的功能。

我们的想法:

  1. 合并Hadoop并允许它处理所有数据处理(并坚持使用MongoDB)

  2. 为更有针对性的查询分组数据(即此表容纳用户20 <年龄&>

我们对任何可能的解决方案都持开放态度,包括其他数据库替代方案(尽管我们想坚持使用MongoDB)。

如何加密文件系统?

我将重写序列化器的默认序列化/反序列化方法,并传入一个加密策略。作为mongo序列化器,我将原则上使用ODM (http://www.doctrine-project.org/projects/mongodb_odm)。虽然从未使用过它,但在Doctrine的ORM中获得了很好的经验:)