x 最近推出了新版本的端到端加密私信,结果被人一通分析,发现这根本不是端到端加密,或者说这不是可信任的端到端加密,最关键的一点是,发送方没有办法验证收到的公钥到底是接收方的,还是中间人的。。。
简单来说,每个人都会有一个公私密钥对,a 要给 b 发消息,a 就用 b 的公钥加密消息,b 收到之后用自己的私钥解开才能看见,其他任何人收到加密的消息,只要没有 b 的私钥都解不开。
问题在于,a 现在不能确认自己用的就是 b 的公钥,很可能用的是一个中间人的公钥(x 公司就可以当这个中间人),所以 a 用中间人的公钥(a 认为是 b 的公钥)加密,发给了中间人,中间人用自己的私钥解开(就看到的消息原文), 然后再用 b 的公钥加密原文发送给 b,b 再用自己的私钥解开(也能看到原文)
关键在于,a 和 b 都以为消息自始至终都是加密的,但是中间人无形中看到了所有消息内容
这不是我在这乱说,X 官方在文档里就这么承认的(当然说后续会解决这个问题)。。。
这真的是一个草台班子...