我检查了类似的帖子,但我认为这里的问题可能略有不同。
问题是在两个对等方(例如A和B)之间提供安全通信,这两个对等方可能没有,怎么说,"强耦合"之前(比如A将其公钥保存在B上,那种事情)。
信任基于进行初始认证的公共信令服务器(例如,XMPP)。假设A和B都登录到该服务器。他们将如何进行安全和直接的沟通?我猜相关的关键字,使用XMPP示例,将是XMPP安全socks5(到目前为止,这个主题在doc中发现)。感谢您对我如何开始实施的建议,最好使用可用的工作量较少的库。
答案 0 :(得分:0)
要查看的一个协议是Off the Record,它已经在很多项目中与XMPP一起使用。您将面临的挑战是用户如何以抵抗中间人攻击的方式相互进行身份验证。 OTR使用Diffie-Hellman交换AES密钥进行批量加密和SHA256-HMAC。然后,用户可以使用共享密钥(如密码)对彼此进行身份验证,或者在带外比较公钥指纹。
我不知道它是否算作“强耦合”,但另一种方法是使用由受信任的第三方签名的证书。如果A有您签署的证书,并且B有您签署的证书,则A和B可以安全地进行通信,而无需先验地确定每个其他密钥。