wispr 中文文档 下载 App

Wispr 首次联系为什么必须"接受"才能开聊:密钥交换的技术原因

现象

当有人第一次在 Wispr 中给你发消息时,你收到的不是正常消息,而是一条"联系请求"——内容类似"[用户名] 想与你建立加密会话",旁边有一个"接受"按钮。

你必须点击"接受",之后双方才能开始正常收发加密消息。

这不是好友验证,也不是反垃圾机制——这是加密协议的技术要求。

为什么需要这一步

问题的本质:公钥交换

Wispr 使用 VOBP 加密协议建立端到端加密会话。加密的前提是:你的设备和对方的设备各自持有对方的公钥,这样才能用对方的公钥加密消息。

那对方怎么拿到你的公钥?

两种公钥分发策略

策略 A:自动上传到服务器(Signal、WhatsApp 路线)

策略 B:P2P 握手交换(Wispr VOBP 路线)

Wispr 选择了策略 B——这是 P2P 直连架构的自然延伸:如果公钥不经过服务器中转,就需要设备之间直接交换。

技术流程详解

对方发起第一条消息
    ↓
对方设备 → 发送包含自己公钥的会话请求 → 你的设备
    ↓
你的设备收到请求,弹出"接受"按钮
    ↓
你点击"接受"
    ↓
你的设备 → 发送包含自己公钥的响应 → 对方设备
    ↓
双方现在互相持有对方的公钥
    ↓
可以正常收发加密消息了 ✅

在你点击"接受"之前,你的设备没有对方的公钥,所以哪怕对方的消息已经送达,你的设备也无法解密——从技术上讲,那条消息就是一段看不懂的随机密文。

和好友验证有什么区别

维度Wispr 首联接受微信/QQ 好友验证
目的交换加密公钥,建立加密会话社交关系确认
验证通过后双方互持公钥,可加密通讯双方加为好友,可见朋友圈等
拒绝的影响对方无法给你发加密消息对方无法加你为好友
是否重复只需要第一次做,之后不用每次新好友都要
技术本质密码学握手社交关系管理

安全验证:区块链锚点

VOBP 协议在这个过程中还有一个额外的安全机制:当你和对方完成密钥交换、建立会话时,会话元数据会被记录到区块链上。

如果之后你怀疑有人可能在中间劫持了会话(中间人攻击),可以通过对比区块链上记录的会话公钥指纹来验证——如果指纹匹配,说明对方的公钥确实是他本人发布的,没有被替换。

这个机制值得改进吗

从用户体验的角度,"首联需要接受"这一步确实会让人困惑——很多人第一次用 Wispr 都会以为这是某种奇怪的好友验证,甚至因为看不懂而放弃。

但从安全的角度,这正是 Wispr 对 P2P + 零服务器可见性承诺的必然代价:你不能既要求公钥不经过服务器中转,又要求自动完成密钥交换。 两者不可兼得。