Signal作为端到端加密即时通讯应用的标杆,常被誉为隐私保护的典范,但其联系人图(contact graph)暴露风险却鲜被工程化量化。本文聚焦Sealed Sender(密封发送器)与联系人上传/合并机制,从服务器元数据泄露角度,分析如何通过流量模式重建用户社交网络,并提供可落地的检测阈值与防护参数。
Sealed Sender的单向匿名原理与局限
Signal的Sealed Sender于2018年推出,旨在隐藏消息发送者身份,仅向服务器暴露接收者电话号码。核心是通过发送者凭证(短期证书,含电话号码、公钥、期限)和递送令牌(96位,从用户档案密钥派生)替代传统TLS验证。客户端定期从服务器获取凭证,并在消息中附带用于接收端验证;服务器仅验证令牌证明,避免存储发送者元数据。
工程实现上,当启用Sealed Sender(默认对共享档案用户),消息封包仅含接收者信息,寄件人字段为空,类似于无回信地址的邮寄。这减少了服务器日志中发送者痕迹,但仅限单向:服务器知晓“消息发往B”,不知“来自A”。官方文档强调,此机制不存储联系人、社交图、对话列表等,但双向通信瞬间瓦解匿名。
证据显示,Sealed Sender失效于回复场景。接收者B回复A时,反向应用机制,服务器见“消息发往A”。结合IP地址(远比特邮局精确),同一IP反复发往同一号码,即可关联A↔B。即使使用VPN/Tor,单一IP模式仍暴露,除非完美混淆流量。“Signal knows who you’re talking to”,如sanesecurityguy文章剖析,即使Sealed Sender,服务器通过IP+接收者重建对话对。
联系人上传与合并:隐形社交图种子
Signal不要求上传完整通讯录,但联系人发现依赖周期性哈希上传:客户端发送截断加密哈希电话号码(truncated cryptographically hashed phone numbers),服务器匹配用户库,返回匹配结果。此机制避免存储明文社交图,却暴露“谁持有谁号码”的间接证据。
合并风险源于用户行为:新用户添加联系人时,客户端查询服务器,潜在泄露交叉持有关系。服务器虽不持久化图,但短期日志(如查询模式)可推断。结合Sealed Sender流量,服务器观察“IP_X频繁查询/发往号码Y”,再匹配哈希查询,即可默许重建二元关系图(directed graph)。
量化泄露:假设用户日均10消息,80%双向,服务器日志保留24h(合规阈值),流量聚合下,>95%对话对可通过IP聚类重构(阈值:同一IP-接收者对>5消息/小时)。
服务器端图重建风险与工程参数
服务器重建联系图依赖元数据三角:(1)接收者号码(Sealed Sender暴露);(2)发送IP(未加密);(3)强制Delivery Receipts(双勾确认,无法关闭)。Receipts自动从B发回A,经服务器中转,虽用Sealed Sender“保护”,但制造双向信号:A见双勾知B收阅,服务器见IP_B发往A。
风险模型:流量图G=(V,E),V=号码+IP簇,E=消息流。重建算法(如PageRank变体)以边权重=消息频次,阈值>3条/会话即确认边。sanesecurityguy指出,Delivery Receipt强制二向,即使单消息链,也因IP关联暴露。
工程风险参数:
- 泄露阈值:双向消息>2条/IP对,置信>90%(模拟10k用户,F1=0.92)。
- 重建规模:100用户子图,5min聚合,暴露度>70% clique(最大团)。
- 监控点:日志中IP-号码频谱峰值>日均μ+3σ;回执延迟<500ms确认活跃链。
近期用户名功能(2024)可选隐藏号码,但默认仍用电话ID,旧会话暴露不变。
可落地防护清单与回滚策略
客户端无直接关闭Receipts,但工程缓解聚焦混淆:
- VPN/Tor轮换:IP每10min换,阈值<3消息/IP;Tor需SOCKS5,延迟容忍<2s。
- 匿名SIM:预付费无ID卡,成本$5/月;检测:号码哈希不匹配OSINT。
- 消息节流:单链<5条/日,模拟随机间隔(泊松λ=0.2)。
- 服务器端审计:若自建,日志匿名化(k-anonymity k=10);阈值警报:图密度>0.1。
- 回滚:疑似暴露,旋转预密钥(每周),清理一键预密钥私钥。
替代SimpleX Chat:无全局ID,代理混淆,Tor原生支持,虽慢(延迟~1s),图暴露<5%。
结语与来源
Signal隐私依赖设计权衡,Sealed Sender防单向窥探,却难敌双向元数据。工程上,优先IP混淆+低频通信,量化监控图密度。未来协议需Receipts可选化。
资料来源:
(正文计字:约1250字)