一尘不染

静态加密数据时ElasticSearch的工作方式

elasticsearch

我的数据存储在DynamoDB中。为了启用全文本搜索,我正在使用Lambda函数将其转发到ES索引。但是,我希望在不影响搜索效率的情况下尽可能对数据进行加密。但是我不确定我的搜索在这里如何工作。当静态加密数据时,我找不到任何文档/文章如何在内部进行搜索。

例如说:

{"message": "Hello World"}

数据加密后,将是这样 "asdasdeiurnjiluoikpourqjrqurioqurioimlkhoih"

当我发送获取请求以搜索“ Hello World”时。这将如何回应。

任何帮助/方向真的很感激。谢谢。


阅读 715

收藏
2020-06-22

共1个答案

一尘不染

没有简单的答案。如果希望对数据进行适当的加密和适当的保护,则任何可能的解决方案都会削弱安全级别。首先,请仔细考虑用例:

  1. 全文搜索需要哪些属性?也许可以将它们分开,以使它们不会形成个人可识别的信息,并且您可以通过它们进行全文搜索。这样就可以将这些内容保留在Elasticsearch中(或仅包含全文索引的RDB中)。
  2. 您期望导致全文索引的典型搜索查询是什么?也许您可以将其范围缩小为使用数据块进行精确匹配(例如,通过“ john”进行搜索并找到“ John Smith”,因为它可能有两个块:“ john”和“ smith”)–这些块则可以正确加密,因此对于给定的条目,您只需找到其中一个即可。
  3. 根据系统的风险分析,对数据保护有哪些精确要求?也许允许您使用应用程序内加密,并在使用加密保留静态数据时使用纯文本数据的内存索引。
2020-06-22