cassandra - Apache Cassandra 是否提供可以用来防止数据破坏(恶意节点)的测量方法?

标签 cassandra distributed cassandra-3.0 distributed-system decentralized-applications

我们正在开展一个有 20 人的大型学校项目。本案是一个去中心化的匿名聊天平台。所以我们不允许设置中央服务器,因此我们正在研究分布式数据库并发现 Cassandra 最适合我们的项目。

这意味着运行该应用程序的每个人也将是一个 Cassandra 节点。这引起了我的很多担忧,主要是恶意节点。如果每个人都在他们的计算机上运行 Cassandra 节点,我们如何防止他们操纵/破坏甚至直接删除数据?

我正在做一些研究,我开始得出结论,Cassandra(以及我研究过的其他分布式数据库)适用于公司拥有、运行和维护数据库的企业解决方案。在我们的案例中,情况并非如此,因为一旦应用程序启动,就不会有“所有者”。每个用户都是系统的同等部分。

我知道在分散/分布式系统中防止恶意节点的一种(或者可能是唯一的)方法是让节点相互检查。我发现在 Cassandra 中没有办法做到这一点,因此我的问题是,我们可以防止数据破坏和恶意节点成为威胁吗?

最佳答案

正如您所提到的,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 已经在使用一种八卦机制来让每个节点与其他节点保持一致。

    关于cassandra - Apache Cassandra 是否提供可以用来防止数据破坏(恶意节点)的测量方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59086628/

    相关文章:

    azure - HDInsight 服务器本地多节点 |不在 Azure 上

    cassandra - Spring 数据 : Connect to Cassandra via SSL

    Cassandra 抛出 NoHostAvailableException : All host(s) tried for query failed (tried:/127. 0.0.1 (null))

    system - 分布式系统中的消息排序

    json - 使用 python 客户端将 JSON 数据写入 Cassandra,主键选择问题

    mysql - 如何使用 ruby​​ on Rails 配置 cassandra 以及使用哪个 ORM?

    Cassandra 快照 : Unable to create hard link from errno 1

    cassandra - 如何恢复 Cassandra 快照?

    cassandra - cassandra主键列不能被限制

    algorithm - raft 如何处理前一个的提交条目?