Signal如何验证联系人的安全号码?

为什么需要验证安全号码
Signal 的核心安全承诺是端到端加密:只有你和接收方可以读取消息内容。但这一承诺的前提是——你确实在跟“正确的人”通信。如果攻击者在中途拦截了密钥交换(即中间人攻击),加密会被破坏,而双方可能浑然不觉。安全号码(Safety Numbers)就是 Signal 用来验证对方身份、排除中间人攻击的机制。每个 Signal 账号都有一组唯一的、由数字和字母组成的60位安全号码,它基于双方的公钥计算得出。当双方比对安全号码一致时,就能确认无人篡改密钥。了解 Signal 如何验证联系人的安全号码,是使用这款隐私工具的第一步。
示例:假设你与好友 Alice 交换密钥,但攻击者 Eve 在服务器上替换了 Alice 的公钥。你实际上与 Eve 建立了加密通道,而 Alice 也在与 Eve 通信。此时你看到的 Alice 安全号码与 Alice 本人计算的不一致。通过面对面比对,你就能发现这个异常。
提示:安全号码并非密码,而是“身份指纹”。即使你从未手动验证,Signal 仍会加密,但无法保证中间人防御。验证后的对话会显示“已验证”标记。
安全号码的工作原理(简版)
安全号码基于 Signal 的 X3DH 密钥协议生成。当你首次联系某人时,Signal 会从服务器获取对方的公钥,并在本地计算出一个 60 位的安全号码。这个号码只有你和对方才能通过各自的私钥验证。如果攻击者替换了服务器上的公钥,计算结果会不同,安全号码自然不匹配。因此,验证安全号码的核心动作就是“面对面比对”——无论通过数字还是二维码。
X3DH 协议确保了即使在服务器不可信的情况下,双方也能安全地建立共享密钥。安全号码本质上是对这个密钥交换过程的一次“人类可读的校验和”。
分平台验证步骤
Android / iOS 移动端
- 打开与目标联系人的对话窗口。
- 点击顶部的联系人姓名或头像,进入联系人详情页。
- 选择“查看安全号码”(View Safety Number)。
- 此时会显示一组数字及一个二维码。你可以:
- 数字比对:逐位朗读给对方,确认完全一致。
- 二维码扫描:点击“扫描二维码”,扫描对方手机上的二维码(需面对面,不可使用截图)。
验证成功后,对话顶部会出现“已验证”的绿色挂锁图标。如果二维码扫描失败,请检查摄像头权限或光线是否充足;也可改用数字比对。注意:扫描时请确保双方手机屏幕亮度适中,避免反射。
桌面端(Windows / macOS / Linux)
- 同样进入与联系人的对话窗口。
- 点击窗口顶部右侧的联系人名称(或右键点击对话列表中的联系人,选择“查看安全号码”)。
- 桌面端会显示一个较大的二维码以及下方的数字串。你可以:
- 让对方扫描你桌面上的二维码(移动端点击“扫描二维码”对准屏幕)。
- 或直接比对数字。
桌面端本身没有摄像头,因此只能提供二维码供对方扫描。建议在面对面场景下使用移动端验证,更便捷。如果对方使用移动端扫描你的桌面二维码,请确保二维码完整显示且无遮挡。
注意:安全号码验证仅适用于“首次”建立信任或对信任状态存在疑虑时。每次验证后,Signal 会记住结果,直到安全号码再次变更。
安全号码变更的常见原因与应对
安全号码并非永久不变。当你发现之前已验证的联系人突然显示“安全号码已变更”时,不必惊慌。以下是最常见的原因:
- 对方重新安装 Signal:新安装会生成新的密钥对,导致安全号码改变。
- 对方更换设备:新设备上的 Signal 账号会生成新密钥。
- 对方恢复了旧备份(仅限 Android):如果备份中包含旧密钥,可能会恢复出不同的安全号码。
- 服务器端密钥轮换(极少发生):Signal 可能因安全原因强制要求密钥更换(官方曾有过此类说明,但非常罕见)。
当安全号码变更时,Signal 会在对话中显示一条提醒消息:“安全号码已变更”。你需要重新验证一次。重新验证的步骤与首次完全相同。如果变更频繁,请与对方确认是否在短时间内多次重装或换机。
经验性观察:在部分 Android 设备上,如果开启了“自动备份到 Google 云端”并恢复,可能引起旧密钥被重新启用,导致安全号码回退。如需验证,可请对方在“设置 > 隐私 > 安全号码”中查看当前号码,并与备份前对照。
验证的安全边界:何时需要验证?
验证安全号码并不是必须的日常操作。对大多数普通用户而言,Signal 的端到端加密已经足够安全,中间人攻击的门槛很高。但当你处于以下场景时,建议进行验证:
- 高度敏感通信:如记者与线人、律师与客户、商业机密谈判。
- 你怀疑设备或网络已被入侵:例如收到可疑的验证码或账号异常登录提醒。
- 对方身份有外部验证必要:例如通过电话或当面确认身份后,再验证安全号码作为“物理锚点”。
反之,日常聊天、群组讨论、家庭群等场景,除非你特别在意,否则不必专门验证。验证不会提升消息加密强度,而是防止“有人冒充”。
注意:即使你验证了安全号码,也并不意味着对方账号不会被盗用——如果对方设备被植入恶意软件,攻击者仍可读取消息。验证仅保证你与目标账号之间的通道未被篡改。
验证失败后的排查思路
如果多次验证仍不成功,请按以下顺序排查:
- 网络问题:双方需保持联网,因为验证过程中 Signal 会向服务器校验密钥。尝试切换 Wi-Fi 或移动数据。
- 二维码扫描问题:确保二维码完整显示在屏幕中央,避免反光或遮挡;移动端摄像头需对焦清晰。如果使用桌面端二维码,请确保屏幕亮度足够且二维码未变形。
- 数字比对不一致:如果数字完全对不上,说明密钥不匹配——可能是对方账号异常或你连接到了错误的联系人。请确认你添加的联系人电话号码正确。
- 安全号码持续变化:如果每次验证后不久又提示变更,可能是对方设备反复重装 Signal。请与对方沟通,并建议其检查是否开启了自动备份恢复。
如果以上步骤均无效,可以尝试在双方设备上清除 Signal 的本地数据(注意备份消息)后重新登录,再重新验证。
经验性观察:在部分 Android 设备上,如果开启了“自动备份到 Google 云端”并恢复,可能引起旧密钥被重新启用,导致安全号码回退。如需验证,可请对方在“设置 > 隐私 > 安全号码”中查看当前号码,并与备份前对照。
适用与不适用场景清单
适用场景
- 双方能够面对面(或通过视频通话比对数字)
- 使用 Signal 进行敏感信息交换
- 需要确认对方不是伪造账号
在这些场景中,安全号码验证是抵御中间人攻击的最后一道防线。
不适用或不必强求的场景
- 远距离且无法通过其他安全渠道比对数字
- 群组聊天(群组内无法直接验证每个成员的安全号码,需单独对话)
- 日常闲聊,无高安全需求
对于这些情况,Signal 的默认加密已经足够,不必增加操作负担。
最佳实践清单
以下是经过验证(非官方)的推荐做法,可帮助你高效且安全地管理安全号码:
- 首次验证后截图保存:将安全号码截图(注意不要包含其他敏感信息),保存在安全位置。当对方声称安全号码变更时,可拿出旧截图比对数字差异。
- 使用二维码避免人为错误:数字比对容易出错,优先使用二维码扫描。
- 验证后,不要再通过同一对话发送敏感信息?不对——验证后对话更安全,应继续使用。但验证本身不会改变加密强度。
- 定期检查已验证联系人的状态:Signal 会自动提醒变更,但如果你长期不聊天,可能忽略提醒。建议每月或每季度查看一次关键联系人的安全号码。
此外,如果你与多个设备上的同一联系人通信,需要在每个设备上分别验证,验证状态不会自动同步。
常见问题(FAQ)
安全号码和指纹是同一个概念吗?
本质相同。Signal 中文版将“Safety Numbers”翻译为“安全号码”,而在其他加密软件(如 WhatsApp)中常称为“安全指纹”或“密钥指纹”。它们都是基于公钥生成的可读标识,用于验证身份。
安全号码变了,是否意味着有人攻击我?
不一定。绝大多数情况下是对方重装 Signal 或换设备。但也存在极小概率的中间人攻击。如果你怀疑被攻击,请立即通过其他安全渠道(电话、当面)与对方确认其安全号码,并检查是否收到异常登录通知。
验证后,我的所有消息都会自动被标记为“已验证”吗?
是的。一旦你验证了某个联系人的安全号码,该对话中所有后续消息都会显示“已验证”标记(绿色挂锁)。但注意:这个标记仅代表你曾经验证过,并不代表安全号码从未变更。如果号码变更,标记会消失,需要重新验证。
我可以同时验证多个设备上的同一个联系人吗?
可以。每个设备上的 Signal 账号独立,但安全号码基于同一套密钥体系。你可以在手机和电脑上分别验证同一个联系人,结果相同。但注意:如果你在电脑上验证了,手机上的验证状态不会自动同步——需要各自验证。
总结:主动验证,被动信任
安全号码验证是 Signal 提供的最强身份保障机制,但它需要用户主动执行。通过本文的操作指南,你应该已经掌握了 Signal 如何验证联系人的安全号码:从移动端到桌面端的每一步、何时需要验证、以及变更后如何应对。建议你从最重要的联系人开始,当面验证一次,并截图保存。不要过度依赖“已验证”标记——如果号码变更,标记会消失,你是第一个知道的。保持对安全号码的关注,是维护你隐私边界的关键动作。
如果你在验证过程中遇到任何本文未覆盖的问题,请检查 Signal 官方帮助中心(support.signal.org)获取最新信息,或通过社区讨论。请记住,安全不会自动发生,它需要你每次一点点的主动参与。
展望未来,随着量子计算技术的发展,Signal 可能会采用更强大的密钥协议(如 CRYSTALS-Kyber 等后量子密码学),届时安全号码的生成方式也可能随之进化。但无论技术如何演变,面对面的身份验证原则始终不变——人的信任是安全链条中不可或缺的一环。


