Mongodb社区-Node js中的静态数据加密



我正在寻找一种方法来加密整个数据库,并在加密的情况下保持搜索数据的能力。

我看到了很多关于Mongo中静态数据加密的问题,但没有一个答案可以帮助人们完成应用程序的完整流程。我希望在这里展示我的发现,并获得反馈和更多想法(我还有一些问题(。

加密选项:

1.猫鼬加密。完整的解决方案!可以用最少的工作量加密所有数据库
2。Procona mongodb-我没有机会测试它,我花了几个小时试图安装并运行它,但运气不好(这可能只是我自己…(。
3。创建获取和发送方法以在模块级别加密和解密数据。

我对静态数据加密的要求是:

  1. 应用层不需要参与加密-解密过程。应该是我们甚至没有加密数据(在大多数情况下(
  2. 我们可以对加密数据执行搜索和查找
  3. 我不知道如何做到这一点,但希望在加密文本字段中搜索部分单词和短语
  4. 当然,除了对象ID之外,所有数据都是加密的

我的方法:
我想尝试使用猫鼬加密来利用这个神奇插件的所有好处
我还想将加密字段中Real值的Hash添加到架构中,这样我就可以在加密字段上执行查找操作。

问题是:在猫鼬加密隐藏未加密数据之前,我似乎找不到正确的猫鼬钩子来处理未加密数据。所以我无法生成哈希。

这不起作用:

Users.pre('save', () => { 
this.hashedName = hash(this.name)
console.log(":(")
});

同样如上所述,在加密数据中搜索部分和短语。通过我的方法,我们可以找到一个名叫";Danielle";但我们不能在Hash中搜索名称以"开头的用户;Dani";。

请给我你的意见,以及我的方法。我知道这是一个没有容易找到解决方案的话题。

如果要加密磁盘上的数据,请加密整个磁盘并加密交换。如果有人获得了数据库的副本(例如,您忘记在数据库上进行身份验证,而有人连接到数据库并转储数据(,则会暴露明文。

如果希望数据库仅存储加密数据,请使用客户端加密。这需要客户端的密钥管理,但这样一来,转储数据库的人就不会得到明文。

相关内容

  • 没有找到相关文章

最新更新