想象这么一个场景 client A 、B 都在 NAT 内部,它们需要通信,那么就需要经过 server 进行协商握手。不论后续是否成功进行 p2p ,亦或借助 server 进行转发,server 俨然就是一个中间人的角色,在协商阶段把 A 、B 的密钥全都替换成 server 的。
只有两种种场景是可以端到端加密的:
- 有个公告板,大家都把自己的公钥发布上去,这时候 server 是做不了手脚的。
- 其中之一方在公网,且它的地址被另一方知道,双方直接通信,不借助 server 打洞。
不知道描述得是否正确,请指正。