Signal 的安全号码(Safety Number)是一项关键的安全功能,用于验证你与联系人的端对端加密是否安全。理解并正确使用安全号码验证,可以帮你防范中间人攻击(MITM),确保你的通讯真正安全。本文详细介绍安全号码的工作原理和验证方法。
什么是安全号码?
安全号码是 Signal 为你和每个联系人之间生成的一组数字指纹。这组数字代表了你们之间端对端加密的加密密钥。如果加密密钥发生变化——例如有人试图在你们之间进行中间人攻击——安全号码也会随之改变。
简单来说,安全号码就像你和联系人的"加密身份证"。如果两边的安全号码一致,就说明你们的通讯是安全的。如果不一致,就说明可能存在安全问题。
为什么需要验证安全号码?
Signal 的端对端加密默认保护你的消息,但在极端情况下,攻击者可能尝试中间人攻击(MITM):
- 攻击者截获你与联系人的通讯
- 分别与你们建立独立的加密通道
- 转发消息,让你们以为在直接通讯
- 实际上攻击者可以阅读所有消息
虽然实施这种攻击的难度极高(需要控制网络基础设施或入侵 Signal 服务器),但对于面临高安全风险的用户(记者、律师、活动家),验证安全号码是必要的额外保护措施。
Signal Foundation 官方建议至少与重要的联系人完成一次安全号码验证。
如何验证安全号码
Signal 提供了两种验证方法,你可以根据实际情况选择。
方法一:QR 码扫描验证(推荐)

QR 码验证是最快最方便的方式,适合面对面验证:
- 打开与联系人的聊天界面
- 点击联系人名称进入聊天设置
- 点击"查看安全号码"
- 如果面对面:让对方展示他们的 QR 码,你用手机扫描;然后你展示你的 QR 码让对方扫描
- 如果远程验证:你展示 QR 码并通过其他安全渠道(电话、其他通讯应用)让对方确认
QR 码中包含了你的完整安全号码信息,扫描后会自动对比验证。
方法二:数字指纹对比

数字指纹验证适合远程验证(通过电话或视频通话):
- 打开与联系人的聊天界面
- 点击联系人名称 → “查看安全号码”
- 你会看到一组 60 位数字
- 通过电话或视频通话与对方逐段对比数字
对比技巧:安全号码通常显示为多组数字(每组 6 位),你和对方逐组核对即可。不需要每次都对比全部 60 位数字,至少对比前 12 位和后 12 位即可获得足够的安全性。
安全号码什么时候会变化?

安全号码在以下情况下会自动更新:
- 联系人重装 Signal:卸载后重新安装会生成新的加密密钥
- 联系人更换设备:在新手机上登录 Signal 会生成新密钥
- 联系人更换手机号:使用新的手机号注册相当于新账号
- 安全号码自动轮换:Signal 会定期自动轮换加密密钥(约每 100 条消息或每 7 天)
当安全号码变化时,Signal 会自动在聊天中显示安全号码已更改的警告消息。你需要确认这个变化是否合理(例如对方确实换了新手机),还是可能存在安全问题。
安全号码与已验证状态
完成验证后,联系人的安全号码旁边会显示一个蓝色对勾标记,表示你们之间的加密关系已验证。如果之后安全号码再次变化(例如对方换了新手机),蓝色对勾会消失,提示你需要重新验证。
常见问题
验证安全号码后还会变化吗?
会。安全号码会在联系人重装应用、更换设备或定期轮换时变化。每次变化时 Signal 会通知你,你需要根据情况决定是否重新验证。
安全号码验证失败怎么办?
如果数字或 QR 码不匹配,请立即停止通过 Signal 发送敏感信息。通过电话或当面确认对方是否更换了设备或重装了 Signal。如果对方确认没有做这些操作,可能存在安全问题。
需要和所有联系人都验证吗?
不是。建议至少与最重要的联系人(家人、亲密朋友、商业伙伴)完成验证。对于日常闲聊的联系人,Signal 的默认端对端加密已经提供了足够的安全保护。
安全号码和 Signal 设置教程 中提到的 PIN 码有什么区别?
安全号码用于验证加密关系(你与联系人之间),PIN 码用于保护你的账户(防止他人注册你的手机号)。两者作用不同,建议同时启用。
不验证安全号码安全吗?
在绝大多数场景下,Signal 的默认端对端加密已经提供了极强的安全保护。根据 Signal 安全评估报告,Signal 的加密实现经过 Cure53、ISE 等多家独立安全机构的审计,中间人攻击的实施难度极高。但对于面临高安全风险的用户(记者、律师、活动家),验证安全号码是值得花几分钟完成的重要步骤。
相关推荐:Signal中文指南 · Signal加密通讯 · Signal使用教程
