简体   繁体   English

加密Neo4j关系

[英]Encrypting Neo4j relationships

I know that Neo4j does not support explicit encryption and that data can be encrypted by the application before persisting the data into the graph database. 我知道Neo4j不支持显式加密 ,并且可以在将数据持久保存到图形数据库之前由应用程序对数据进行加密。 But this raises an issue: Suppose the data in the nodes are encrypted, but the relationships between these nodes are still maintained in plaintext. 但这带来了一个问题:假设节点中的数据已加密,但是这些节点之间的关系仍然以明文形式维护。 This results in a graph of nodes containing encrypted information, but strictly speaking, there is still data to be gleaned from the relationships, even if the name of the relationship (or the data) is encrypted. 这会导致包含加密信息的节点图,但是严格来说,即使关系(或数据)的名称已加密,仍然需要从关系中收集数据。 For example: 例如:

在此处输入图片说明

Is there a way to encrypt or secure the relationships in a Neo4j database such that an attacker cannot glean the structure of the graph (even if the data itself is secure)? 有没有办法加密或保护Neo4j数据库中的关系,以使攻击者无法收集图的结构(即使数据本身是安全的)?

You can try to obfuscate your data structure by adding a reasonably large number of nonsense relationships (and possibly also nonsense nodes). 您可以尝试通过添加大量的废话关系(可能还包括废话节点)来混淆数据结构。

A nonsense relationship can have a nonsense type, or have a special property value that flags it as a nonsense relationship. 废话关系可以具有废话类型,也可以具有将其标记为废话关系的特殊属性值。 The property used could even be a "real" property. 所使用的属性甚至可以是“真实”属性。 And these nonsense relationships can be connected to both real and nonsense nodes. 这些废话关系可以连接到真实节点和废话节点。

A nonsense node can have a nonsense label, or have a special property value that flags it as a nonsense node. 废话节点可以具有废话标签,或者具有将其标记为废话节点的特殊属性值。

Of course, your queries would have to be crafted to ignore the nonsense nodes and relationships, but that may not be difficult. 当然,您的查询必须经过精心设计以忽略废话节点和关系,但这可能并不困难。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM