MongoDB静态加密:查询是否仍然有效?

jyztefdp  于 2023-01-04  发布在  Go
关注(0)|答案(2)|浏览(142)

这只是一个澄清问题。
那么,如果我们在mongoDB中实现静态加密,它会影响任何查询吗?
我问这个问题是因为我目前在客户端上手动加密字段,并且我需要对加密字段进行排序,但是排序是在加密文本上进行的,而不是在纯文本上进行的。我读到的内容相当含糊,通过在静态使用mongoDB加密,我们可以在纯文本上排序,同时在mongoDB中仍然对字段进行加密。
这是解决办法吗?
是否有任何文档对此进行说明?

h9vpoimq

h9vpoimq1#

Encryption at Rest是服务器端加密,其中数据在服务器内存中不加密,在写入磁盘之前加密。
Field Level Encryption在将数据发送到服务器之前在客户端对数据进行加密,因此服务器永远无法访问纯文本值。
使用静态加密时,所有可以进行身份验证并获得授权的用户都可以读取数据。字段级加密增加了用户有权访问该字段的解密密钥的附加要求。
FLE和EAR可以同时使用。
静态加密允许服务器看到纯文本值,因此它可以对这些值进行正常查询和排序。
对于极其敏感的字段,这是一个安全性权衡,如果您在服务器端加密,您可以正常查询和排序,但数据在服务器内存中是纯文本的,任何人都可以使用正确的用户名和密码访问。
将FLE与可查询加密一起使用,可以在对数据进行排序和范围查询的同时保持数据加密,但缺点是加密算法的功能不强。密文排序顺序与明文排序顺序相同,这一简单事实可能会泄漏有关数据的信息。有关讨论,请参阅Searching and sorting encrypted data
使用具有确定性加密的FLE为字段提供了更强的加密,但是在服务器端排序变得不可能,并且可以执行的唯一有意义的查询是相等查询。
使用随机加密的FLE,相同的纯文本数据每次都将产生相同的密文。这是最高级别的加密,但不支持任何有意义的查询。

edqdpe6u

edqdpe6u2#

我想你问了两个问题,
1.如果选择确定性加密,则可以基于精确值 * 查询 * 字段-如果加密整个对象,则“精确”表示整个对象-而不是它的子字段。
1.无论使用哪种加密方案,都无法进行有意义的排序
保持顺序的加密算法很难设计成仍然被有效地加密。

相关问题