O2 VoLTE:通过电话呼叫定位任何客户

隐私已死:在过去的几个月里,任何 O2 客户的位置信息都可以在不知情的情况下暴露给呼叫发起者。 大约阅读 6 分钟。发布于 2025 年 5 月 17 日 13:30

本文是由 Daniel Williams 撰写的客座文章。

目录

简介

Voice over LTE (VoLTE) 是一种通过基于互联网的协议在移动网络上进行呼叫的方式,它使用一种名为 IP Multimedia Subsystem (IMS) 的标准。 IMS 的实现历来会因为其复杂性和设备之间的相互依赖性而导致问题。这种复杂性的增加通常只会在外部表现为设备不兼容问题。过去,我们经常会发现某些设备需要特殊的固件才能使用 VoLTE 和 WiFi Calling。

然而,我一直对这种复杂性增加带来的另一种风险感兴趣。安全性。

在 IMS 实现中,移动网络可以自行选择如何实现服务以及使用哪些配置。然后,您的手机直接与这些服务器通信。移动网络有责任确保这些服务器保持最新和安全,并且它们的配置不会导致不必要的数据暴露。

不幸的是,今天我们将看到一个很好的例子,说明一个移动网络验证了我的担忧。

O2 UK

2017 年 3 月 27 日,O2 UK 推出了他们的第一个 IMS 服务。[1] 该网络称之为 "4G Calling",它提供了更高的语音质量和更好的通话中数据体验,因为客户在通话时不会降到 3G。

作为一名最近转到 O2 的用户,我对该网络的 IMS 实现非常感兴趣,特别是该网络在 4G/WiFi Calling 上进行呼叫时支持哪些语音编解码器。

我在已 root 的 Google Pixel 8 上使用名为 Network Signal Guru (NSG) 的应用程序,呼叫了另一位 O2 客户(使用兼容 4G VoLTE 的设备),试图确定音频质量。

现代 Google Pixel 设备与 Samsung Modems 中的 NSG 的一个 Bug 意味着应用程序的 VoLTE 部分不会自动填充当前呼叫使用的编解码器,这意味着我必须查看设备和网络之间发送的原始 IMS 信令消息才能找到答案。

信令消息

很快我就意识到有些不对劲。我从网络收到的响应非常详细和冗长,与我在其他网络上看到的任何响应都不同。这些消息包含的信息包括 O2 使用的 IMS/SIP 服务器(Mavenir UAG)以及版本号、C++ 服务处理呼叫信息时引发的偶发性错误消息以及其他调试信息。然而,最值得注意的是消息底部的五个标头:

SIP Msg
...
 P-Mav-Extension-IMSI: 23410123456789
 P-Mav-Extension-IMSI: 23410987654321
 P-Mav-Extension-IMEI: 350266809828927
 P-Mav-Extension-IMEI: 350266806365261
 ...
 Cellular-Network-Info: 3GPP-E-UTRAN-FDD;utran-cell-id-3gpp=2341010037A60773;cell-info-age=26371

IMS 信令消息的综合摘录,仅用于演示;不是真实的 IMEI/IMSI/小区 ID。

两组 IMSI,两组 IMEI 和一个 Cell ID 标头。真奇怪…

果然,当将消息中的 IMSI 和 IMEI 与我自己的设备的 IMSI 和 IMEI 进行比较时,我得到了我发起呼叫的手机的 IMSI 和 IMEI,而且还得到了呼叫接收者的

出于好奇,我研究了 Cellular-Network-Info 标头。我以前从未见过这个 SIP 标头,但快速研究后,我学会了如何解码它。该值的开头 3GPP-E-UTRAN-FDD 表示小区数据适用于 4G(正式称为 E-UTRAN)FDD(频分双工)。以 utran-cell-id-3gpp 开头的后续部分分为 3 个部分:

最后一部分表示数据的新旧程度,以秒为单位。当设备当前未连接到网络时,例如当您没有信号或依赖 WiFi Calling 时,会显示此信息。

这意味着对于上面的示例,我们可以推断出接收者:

这很糟糕。

有了所有这些信息,我们可以利用公众众包数据,通过 cellmapper.net 等工具收集的信息,交叉引用此信息以确定用户的大概位置。

首先,我们将小区 ID 放入一个工具中,该工具会计算出该小区 ID 对应的站点 ID:

cell id calculator Cellmapper 的小区 ID 计算器 然后我们只需在 Cellmapper 的地图上搜索该站点:

cellmapper sector Cellmapper 上的 O2 UK eNB 501255 在这里,您可以看到用户在通话时所在的宏小区。虽然这有一个相对较大的覆盖范围(如带有蓝色轮廓的选定多边形所示),但密集的城市区域将使用非常多的站点(例如通常直接安装在路灯上的小型小区),这些站点具有较小的覆盖范围。这些区域中的每个站点通常可以覆盖小至 100 平方米的区域。在城市中,这成为衡量位置的_极其_精确的方法。

我还测试了与另一位在国外漫游的 O2 客户的攻击,攻击非常有效,我可以将他们精确定位到丹麦哥本哈根的市中心。

dk site 3DK 上 eNB 107258 的位置,靠近哥本哈根的 Vesterport St.

我认为在这里需要注意的是,我的设备绝不特殊。它没有对网络做任何奇怪的事情,也没有表现出任何不同的行为。它所做的只是让我看到发送给它的信息。这实际上意味着每个在 IMS(4G Calling / WiFi Calling)上进行电话呼叫的 O2 设备都会收到可以用于轻松对呼叫接收者进行地理定位的信息。

我希望看到的改变

O2 必须从所有 IMS/SIP 消息中删除突出显示的标头,以保护客户的隐私和安全。禁用调试标头也是合乎逻辑的,因为我可以想象会出现无意中泄露更多信息的场景。网络核心之外的任何设备都没有理由看到这些标头。

作为 O2 客户,我非常失望地看到缺乏任何升级途径来报告此类潜在的攻击媒介。竞争对手网络 EE 拥有一条清晰且定义明确的升级途径(请参阅 https://www.bt.com/about/contact-bt/responsible-disclosure),我认为这本可以避免公开共享此信息的需要。我不想成为敌人,我只是想安心地使用我的手机。

结论

任何 O2 客户都可以被即使对移动网络有基本了解的攻击者轻松定位。

作为 O2 客户,也无法阻止这种攻击。禁用 4G Calling _不会_阻止这些标头被泄露,并且如果您的设备无法访问,这些内部标头仍会显示您上次连接到的小区以及连接到该小区的时间。

2025 年 3 月 26 日和 27 日,我尝试通过电子邮件(发送给 Lutz Schüler,CEO 和 securityincidents@virginmedia.co.uk)联系 O2,报告此行为和隐私风险,但我尚未收到任何回复或看到任何行为改变。

注释

[1] https://www.engadget.com/2017-03-29-o2-wifi-4g-calling.html 本文由 David Wheatley 编辑。 发现这篇博文有什么不对劲的地方吗?请通过 blog@mastdatabase.co.uk 或 t.me/davwheat 联系我并告知我。 返回文章列表 © 2025 David Wheatley 在 GitHub 上查看此站点 • 此站点收集匿名分析数据,不跟踪单个用户。了解有关 Cloudflare 分析的更多信息 上次更新时间 2025-05-17 12:49 UTC (8fee03)。 在线关注我 主页博客David Wheatley