分布式—ApacheCassandra是否提供了可用于防止数据破坏(恶意节点)的度量?

olhwl3o2  于 2021-06-10  发布在  Cassandra
关注(0)|答案(1)|浏览(351)

我们正在做一个有20个人的大型学校项目。本案是一个分散匿名聊天平台。所以我们不允许设置中央服务器,所以我们研究了分布式数据库,发现cassandra最适合我们的项目。
这意味着运行应用程序的每个人都将是cassandra节点。这引起了我的许多担忧,主要是恶意节点。如果每个人都在他们的计算机上运行一个cassandra节点,我们如何防止他们操纵/破坏甚至直接删除数据?
我做了一些研究,我开始得出这样的结论:cassandra(以及我研究过的其他分布式数据库)是为公司解决方案设计的,公司拥有、运行和维护这些数据库。在我们的例子中不是这样的,因为一旦应用程序启动,就不会有“所有者”。每个用户都是系统的一部分。
我知道,在分散/分布式系统中防止恶意节点的一种(或者可能是唯一的)方法是让节点相互保持控制。我发现没有办法做到这一点在Cassandra因此我的问题,我们可以防止数据破坏和恶意节点的威胁?

flvtvl50

flvtvl501#

正如您所提到的,cassandra的设计假设您将控制所有节点,因为一旦任何第三方访问了您的数据副本,您就失去了对他们可以使用它做什么的控制,类似于互联网上的任何帖子。
一个确保只有“授权节点”加入集群的选项是,您可以强制ssl节点间加密,这可以给您一些控制权,但有一些注意事项:
如果一个节点在被授予访问权限后变成流氓或者受到攻击,那么将很难将其踢出去。
使用过期证书的节点将能够继续与集群交互,直到服务重新启动。
ssl证书的管理增加了管理的另一层复杂性。
关于声明 I know one (or maybe the only) way to prevent malicious node in a decentralized/distributed system is to have nodes keep each other in check. Cassandra已经在使用八卦机制来保持每个节点与其他节点之间的联系。

相关问题