authentication - 去中心化的用户身份验证——可能吗?

标签 authentication language-agnostic p2p software-design

我正在设计一个完全分布式 P2P 消息应用程序。

编辑:不仅仅是任何消息应用程序——特别是公共(public)论坛。消息从一个邻居传递到另一个邻居,因此消息可能来自原始作者以外的其他人。通信的保密性并不重要。然而,消息作者的验证至关重要。

问题需要介绍:

在客户端-服务器模型中,每个客户端都可以确保消息的来源与消息所说的一样,因为有一个“中间人”身份验证服务器检查用户的凭据(用户名、密码)是否与条目匹配在将消息转发到接收客户端之前,先将其存储在内部 secret 数据库中。

问题是:这可以在纯 P2P 中实现吗?

假设每个客户端都存储完整的用户凭据集。当然,不同之处在于客户端不能查看它们——因此它们将以加密格式存储。必须检查加密凭据是否与另一组加密凭据相等,而无需完全解密任一组

这可以做到吗?有更好的方法吗?
(记住:100% P2P。没有服务器。)

最佳答案

我建议您研究一个名为 Web of trust 的模型。例如 PGP 使用它来分散身份验证。

这句话总结得很好:

As time goes on, you will accumulate keys from other people that you may want to designate as trusted introducers. Everyone else will each choose their own trusted introducers. And everyone will gradually accumulate and distribute with their key a collection of certifying signatures from other people, with the expectation that anyone receiving it will trust at least one or two of the signatures. This will cause the emergence of a decentralized fault-tolerant web of confidence for all public keys.

关于authentication - 去中心化的用户身份验证——可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6417440/

相关文章:

客户端通过身份验证时的安全性和 TLS 握手

windows - 在 Win7 登录屏幕上运行应用程序

node.js - 如何通过社交服务进行用户认证

api - REST API key 生成策略

language-agnostic - 从 Outlook 2007 中提取自动完成电子邮件

networking - 自 2001 年以来的 P2P 覆盖网络?

java - Apache shiro + kerberos 身份验证

language-agnostic - 如何实现文本选择?

language-agnostic - 谁在对功能和可用性的测量进行调查?

c# - 给定两个 IP 地址,lidgren-network 库能否直接对等连接