译文仅供参考,具体内容表达以及含义原文为准
Paper: 《Location leaks on the GSM air interface》
Author: Denis Foo Kune, John Koelndorfer, Nicholas Hopper, Y ongdae Kim
Advisor: Lenny Zeltser
Accepted: January 15th, 2020

摘要

由于手机使用无线媒体和它们的移动特性,它们会收听广播通信,这些通信可能会向监听的攻击者透露它们的物理位置。本文研究了通过简单地收听广播 GSM 频道来测试用户是否存在于小区域内或不在大区域内的技术。结合现成的硬件和开源软件,我们展示了实际的位置测试攻击,包括绕过旨在保护终端用户身份的临时标识符。最后,我们提出了可以在对系统影响较小的情况下改善用户位置隐私的解决方案。

0x01 Introduction

有三个主要实体会以不同的方式访问用户的位置信息:服务提供商可以访问其用户的所有位置数据; 执法机构有权力索要这些信息; 以及外部实体,包括没有明确访问位置信息的其他用户。位置泄漏的通信协议将意味着,即使实体没有访问的位置数据库也够从目标用户推断出一些位置信息。
我们集中在2层和3层的常见的较低的 GSM 堆栈层,同时关注广播频道对用户位置隐私的影响。我们展示了尽管 GSM 被设计成用临时ID隐藏终端设备的身份,但是仍可以将电话号码映射到临时ID。我们还证明,通过多个发射塔简单地查看网络发送的广播消息,就可以确定一个用户的设备是否在100km2的区域内。我们还展示了在一个发射塔上为一个用户进行测试的可能性,这个塔可以映射到一个相对较小的地理区域,大约1平方公里或更小。在这项工作中,我们还没有把范围缩小到确切的建筑,但是我们可以确定使用者是否在十几个街区之内。

0x02 Background

A. GSM 基础设施概述

一个 GSM 蜂窝网络由15个主要的逻辑实体组成。与本项工作相关的实体如下:

  • 访问者位置寄存器(VLR)负责一个或多个移动站可能漫游进出的区域。此实体处理移动站的临时ID(TMSIs)。
  • 基站系统(BSS)是一个由基站收发器(BTS)和控制器(BSC)组成的网络,负责直接与移动站通信。
  • 移动站(MS)是使用者携带的移动设备。它是由实际的设备和一个 SIM卡组成的。

下图展示了体系结构和实体之间的连接的总体情况。移动站和 BTS 通过无线 GSM 协议进行通信,也就是所谓的空中接口。在 GSM 空中接口规范中定义了多个信道用于 MS 和 BTS 之间的下行和上行通信。与这项工作相关的频道如下:

  • PCCH: 所有手机都会收听的广播下行频道。有多个频率可以用绝对射频信道号(ARFCN)来识别,这些频率可以用于该信道。
  • RACH: 任何在网络上注册的移动站都可以使用的随机接入上行链路信道。
  • SDCCH: 一个特定的上行通道,由 BTS 分配。

为了限制无线电资源的消耗,蜂窝网络将设法通过它的发射塔来限制通信量,只传送在该特定地区服务的手机所需的信息。因此,所述传呼请求广播消息通过位于特定位置区号(LAC)内的发射塔发送,该发射塔为所关注的移动站服务。这些消息是通过广播 PCCH 下行链路发送的,并用于通知移动站它需要联系 BTS 。移动站按照他们所选择的 BTS 的特定频率调谐(或驻留) ,并能够收到所有正在发送的寻呼。每个传呼请求消息包含预期目的地的唯一标识符,或者是全球唯一的国际移动台标识(IMSI) ,或者是临时移动用户标识(TMSI)。

B. 来电协议

GSM 网络中的无线接口在来电期间的逻辑流程如下 :

  1. BSS 试图找到移动站。BTSs 在最近的已知 LAC 看到设备,通过 PCCH 下行链路发送一个带有移动站 IMSI 或 TMSI 的寻呼请求(paging request)。
  2. 在接收到传呼请求后,移动站将确定 IMSI 或 TMSI 是否与自己的匹配。如果是,移动台将通过 RACH 上行链路发送信道请求消息,从 BTS 请求无线资源。
  3. BTS 会在同一个 PCCH 下行链路发送的即时分配消息中显示即将用于移动站的 SDCCH 的详细信息。
  4. 移动台在分配的 SDCCH 上行链路上回复一个寻呼应答。协议的其余部分允许移动台和 BTS 在传输数据(文本或语音)之前协商安全级别和其他设置参数。协议描述如下图所示。

寻呼请求信息: 寻呼请求信息可以是类型1、2和3,同时分别携带最多2、3和4个标识。传呼请求是针对每个发送到 LAC 内的移动站的呼叫或文本消息而发出的。对寻呼请求的响应是从移动台 通过SDCCH 上行链路发送到它选择的 BTS 。通常移动站会选择信号最强的 BTS。
即时分配消息: 即时分配是对来自移动站的信道请求消息的响应。它包含与通道请求消息匹配的标识符。由于立即分配消息是通过广播信道发送的,所述标识符允许移动站区分用于它的消息和用于其他移动站的消息。如果收到了上行信道请求消息,很容易与请求设备匹配,但通过观察 PCCH 下行链路来确定即时分配消息是否是来自寻呼请求消息的触发的结果则更为棘手。如果能够确定观察到的即时分配消息确实即将用于目标移动站,则表明该设备驻留在带有该消息的 PCCH 的 ARFCN 上。因此,这说明这个装置,和我们监听的那个在同一个信号塔上。

0x03 Preliminary Measurements

我们在一个主要城市群对 T-Mobile 和 AT&T 网络进行了初步测量,以描述实际部署的特征。

A. 测量平台

我们的测量系统(如下图所示)是基于Osmocom基带平台 ,再加上能够打出电话的地线电话。右下角是摩托罗拉C118连接到一台笔记本电脑上。我们用Osmocom的 GSM 第一层固件替换了 c118固件。新的固件从笔记本电脑调谐到请求的 ARFCN,并通过其串行端口将所有第一层消息中继到笔记本电脑。在笔记本电脑上运行是Osmocom,它将替换固件刷新到 c118,然后变成一个中继器,将数据包从串行端口转发到socket,供Osmocom的其他应用程序使用。在同一台笔记本电脑上运行的移动应用程序连接到socket,并实现 GSM 第2层和第3层。

图中左侧的T-Mobile G1(US)被用作我们的映射工具。它关注的是 AT+GSM 命令,查询基带当前关于 TMSI、 LAC、 ARFCN 以及相邻 ARFCNs 列表的信息。我们的补丁程序记录了这些信息,当现场测试应用程序查询时是1赫兹,这样我们就可以将这些信息与另一个设备上的 GPS 坐标进行匹配。那部手机后来被用作受害者的手机,因为它允许我们用设备的 TMSI 检查我们的答案。

B. 一般性观察

为了了解 PCCH 流量的总体趋势,我们在 T-Mobile 网络和 AT&T 网络上进行了一系列的捕获。24小时内的结果总结如下表所示。

接下来,我们测量了 PSTN 上的呼叫启动和 PCCH 上发出的寻呼信道请求之间的时间延迟。对于我们的40个电话样本,我们观察到平均延迟2.96秒,标准差为0.152。PSTN 呼叫启动和移动站上的实际环路之间的平均时延为8.8秒,标准差为4.5秒,中位数是7.0秒。我们还观察到,在 PSTN 呼叫启动后5.0秒之前中止呼叫,将导致设备上没有响铃或未接呼叫,但到那时,paging请求已发送。

C. 在 PCCH 上观察到的信息

最常见的Paging请求是类型1,允许为每条消息寻呼一个或两个移动身份。我们观察到超过90% 的Paging请求没有标识; 这些在下图中没有绘出,因为他们不会到达设备。在 AT&T 网络上捕获超过48小时的传呼请求摘要见下图。我们观察到本地人活动的一般趋势是,白天时间流量高达每分钟150次寻呼,凌晨零时至上午六时流量低至每分钟10次寻呼。

通过 T-Mobile 的21小时截图,我们观察了同一 TMSI 的两次呼叫的时差模式。如下图所示,在大约200秒的时差之前,分布会急剧下降,在600秒的时差之后,分布会趋于平稳,超过这个时差,同一 TMSI 的两次呼叫就不可能出现。在51小时的 AT&T 实验中,传呼请求信息的流量速率(2.32/秒)远远超过即时分配信息的流量速率(0.554/秒)。很明显即时分配消息仅限于移动站向 ARFCN (因此也限于移动电话发射塔)请求无线电资源。

0x04 Attack Description

A. 威胁模型

攻击者首先需要能够主动地为受害者引入 PCCH 寻呼请求,这可以通过短信或使用任何电话线的呼叫启动来实现。为了提高定时准确性和更好地控制中止呼叫协议的时间,避免在受害者手机的应用层发出通知,普通固定电话线是首选。攻击者还要求能够被动地听广播 GSM PCCH 寻呼信道。我们对攻击者的能力描述如下:

  • PSTN active: 攻击者通过拨打受害者的电话号码或给受害者发送短信,使寻呼请求信息出现在 GSM PCCH 上。
  • GSM 被动: 攻击者是 PCCH 广播纯文本上的被动监听者。不需要破解加密算法,因为在 GSM 协议的无线资源(RR)设置阶段,我们只需要4条消息的开始序列。

B. 当地的临时ID

蜂窝网络提供商必须跟踪移动用户的位置,至少是粗粒度的位置,以便有效地利用有限的无线资源。把一个大区域分隔成 n 个较小的地理区域,例如位置区号(LAC) ,并把广播讯息(包括传呼请求)平均定位于这些较小的区域,可把传呼流量减少至原来讯息数目的$\frac {1}{n}$倍。如果我们知道他们唯一的ID,通过观察呼叫请求,我们可以知道受害者是否在那个区域。然而,这个ID(IMSI 或 TMSI)是 GSM PCCH 上唯一可见的标识符,并且电话号码到 IMSI 或 TMSI 的内部系统映射事先不知道。

C. 暴露身份

TMSI 只有在设备所在的 LAC 内才有意义。为了进行定位测试,我们需要显示 PSTN 电话号码和 GSM PCCH 上可见的 TMSI 之间的映射关系。
首先定义呼叫启动后候选 TMSIs 的可能集合,在 tmin ≤ t ≤ tmax 定义的时间窗内限制标识符。根据第三部分的初步测量,假设公用电话交换机呼叫完成与传呼请求讯息之间的延迟时间相等,我们根据经验确定总时间为2.50秒,总时间最长为3.42秒,以涵盖与平均值最多3个标准偏差的情况,即总时间正态分布为2.50秒。具体来说,我们将给定时间窗口中可能的 TMSIs 集合定义如下。

其中1≤ j < n,tmin =-3,tmax = 3,µ, σ在校准阶段(第3部分)是 PSTN 对寻呼请求延迟的平均和标准差。我们重复这个过程 n 次,收集 n 组可能的独特 TMSIs。我们在每次调用之间至少等待 td > tmax秒给系统一个重置的机会。然后我们计算所有集合的交集来提取少量可能的 TMSIs。我们注意到,根据寻呼信道流量模式和 TMSI 重新分配策略,可能会得到0或更多 TMSIs。我们已经观察到 TMSI 的任务往往持续几个小时,这使得我们很有可能获得至少一个短暂的 TMSI,这是在200秒左右。我们只需要一个 n 的小数字,通常是2或3来缩小精确的 TMSI。最后,为了使测试成功,攻击者必须能够听到受害者设备的寻呼请求。根据经验,T-Mobile LAC 747d 的覆盖面积超过100平方公里,并在该区域内的每个 BTS 重复所有传呼请求。

D. 缺席测试

先前发现的一个自然延伸是缺席测试,以确定移动台是否不在该区域。得到的交集会产生一个空集。如果移动设备的缺失也表明用户的缺失,那么这些信息对攻击者来说也是有用的。从上面提到的显示 TMSI 的方法开始,假设 TMSI 在攻击测量期间不发生变化,我们以每次读取之间延迟一个 td 的时间间隔运行攻击 n 次,并重新获得 TMSI 集I1,I2,...,In。在这种情况下,如果 I1∩ I2∩ ... ∩ In = ∅,我们可以合理地得出结论,移动设备没有在当前 LAC 中注册,如果启动,设备在该区域之外。快速测试可以通过打电话完成。如果设备被关闭,电话会转到语音信箱的速度比设备响铃的速度快。

E. 同一个 BTS 上的存在测试

一旦攻击者确定目标设备的 LAC 与他的相同,下一步就是确定设备是否在监听相同的 BTS。回忆一下,PCCH 下行链路载有传呼请求和即时分配讯息,但即时分配讯息中的识别项是由移动站选择,并以我们不知道的频道请求传送。因此,我们开发了一种技术,通过观察即时分配和触发寻呼请求之间的时间差,来确定我们是否与受害者在同一个塔上。
我们用 TMSI 监听了受害者手机的传呼请求,在我们观察 PCCH 上下一条即时分配信息之前,测量了时间延迟。我们检查了三种情况,试验台距离受害者10米:

  1. 和受害者在同一个 ARFCN 上驻留,使用 PSTN 呼叫触发寻呼请求
  2. 和受害者在不同的 ARFCN 上驻留,使用 PSTN 呼叫触发寻呼请求
  3. 在任意的 ARFCN 上驻留,从随机时间开始取样 PCCH。

我们用 tp作为表示目标设备的寻呼请求的时间戳,用 ta表示下一个即时分配消息的时间戳。我们要比较以上的3个测试用例的时间差 δt = ta-tp
对于每个测试,在第一种情况下,样本容量为46,我们观察到平均时间差 t = 0.177秒,标准差 t = 0.0572。在第二种情况下,当我们收听另一个 ARFCN 时,样本容量为43,我们观察到 t = 1.99秒,标准差 t = 3.42。最后,在样本量为40的第三个例子中,我们在 ARFCN 上随机取样 PCCH,观察到 t = 0.517秒,标准差 t = 0.582。结果如下图所示。

我们的目标是能够区分,我们在同一座 ARFCN 塔上的情况,和我们在同一个 LAC 但在不同塔上的情况。假设我们和受害者在同一个信号塔上,我们会听到那个设备的即时分配信号,这个信号会在很接近寻呼请求的时候发出,以便提供快速服务。因此,我们设置了如下的零假设:
µs = µd,µs = µr,其中

  • µs测试条件1(同塔)的平均时间差
  • µd测试条件2(不同塔台)的平均时间差
  • µr测试条件3(随机)的平均时间差

为了比较我们的测试所得到的时间差异,我们使用韦尔奇两个样本 t-test,对小样本和不同分布的总体是稳健的。结果如下。比较µs和 µd得到了 p 值0.001199。比较µs和 µr得到的 p 值是0.0006942。这两个结果都表明,找到一个测试统计数据同样或更极端是非常不可能的。因此我们可以用如此低的 p 值来拒绝两个零假设。因此,我们的结论是,可能存在一个有意义的差异,使我们能够通过查看寻呼请求和即时分配消息的到达时间,区分在同一个 ARFCN 上收听或在不同的 ARFCN 上收听的情况。

F. 移动物体

我们证实了我们的身份识别方法,对于平均时速105公里穿过一个LAC 的设备是有效的。设备在同一个LAC里停留了8分钟,我们只用了2分钟就显示了TMSI。很明显,我们的”同一个塔”测试,不适用于快速移动的物体。移动电台倾向于驻留在同一个 ARFCN 上,直到它们移动超过1公里。我们的测试需要每个 ARFCN 5秒钟完成。根据不同的区域,可能有3到5个 ARFCNs 具有足够高的 RSSI 值来测试。因此,如果受害者在塔的1公里范围内逗留几分钟,我们的攻击就会成功。如果受害者的物理路径是已知的,也可以预测受害者在经过一段时间后会在哪里。

0x05 Carrying Out The Attack In Practice

我们需要了解 LACs 的地理覆盖范围,以及基站的分布情况。我们绘制了紫外线辐射区域的地图,采集了目标的紫外线辐射区域周围的样本数据,结果覆盖了大约100平方公里的区域。在那个 LAC,我们绘制了一个小得多的区域,来确定信号塔的位置和每个 ARFCN 对这些信号塔的覆盖范围。

A. 测绘 LAC

我们用打了补丁的 T-Mobile G1手机来记录来自基带的 GSM 信息,还有 GPS 追踪我们在 LAC 747d 的位置。然后我们沿着一堵近似的墙走,在道路允许的情况下,把 LAC 747d 的边缘当作一堵墙。如下图,与 LAC 747d 对应的区域是灰色的。该地区北部的红线长约10公里。整个区域面积超过100平方公里。

B. 信号塔位置

因为我们能进行的最高粒度的测试,就是确定我们在同一个塔上,精确地知道那个塔的位置很重要。我们使用爬山法,目标是最大限度地提高射频领域的目标塔。我们用修改过的 G1来进行场强的点测量,然后我们沿着经典爬山算法的变体进入场地,我们超过最大点50米或更多,然后回溯到垂直方向,以确保我们不会因为不均匀的射频信号衰减而陷入局部极小值。下图显示了我们爬山的例子,以及检测到的手机信号塔的结果。

C. 测绘塔和 ARFCNs

接下来,我们要在移动站切换到另一个信号塔之前确定一个信号塔与它之间的距离。这一次,我们沿着目标区域的,每一个街区行进。我们记录了5个最强的 RSSI 和相应的 ARFCNs。下图显示了使用上述爬山法对3个 RSSI 值最高的 ARFCNs 以及推断出的手机塔的结果。

一个移动站将尝试在最高的 RSSI 的 ARFCN 上驻留。因此我们确定受害者很可能在它所连接的信号塔周围1平方公里的范围内,这取决于我们调查区域内的信号衰减。我们还注意到有几个地区,我们可以在多个 ARFCNs 上驻留。因此,攻击者可以一次检查多个塔,而受害者必须接近塔。在这个特殊的实验中,一个实验台能够在一个地点监控所有3座塔,占2.5×2.5公里的总面积。

D. 无声水印暴露 TMSI

为了避免检测,需要引发一个带有目标 TMSI 的寻呼请求,而不会在移动站上引起任何用户可观察到的副作用。我们的方法是从公众电话号码发起一个常规电话,在移动站响起第一声之前中止通话。已知从 PSTN 上的呼叫启动到 PCCH 上的寻呼请求出现之间的时间延迟平均约为2.94秒,在中位数情况下,设备上的实际环路需要约7.0秒。另外5秒内挂断电话,可以避免设备响铃。因此,我们可以安全地在4秒钟后挂断,以便在不通知用户的情况下,悄悄地发出寻呼请求和即时分配消息。

0x06 Mitigations

A. 呼叫多个LAC

服务提供商会尽量限制有限的无线电资源的消耗。因此,在寻找设备时,它只会在设备最可能位置的地方寻呼 LAC。然而,这使得缺席测试成为可能。显然,对所有设备的所有 LACs 进行呼叫是非常浪费的。因此,我们建议只在设备大部分时间出现的地方寻呼一组 LACs。

B. 频繁的 TMSI 变化和 TMSI 分配

TMSI 的部分目标是隐藏来自 PSTN 和 PCCH 的消息之间的对应关系。
在编号、寻址和识别规范条款中的 GSM 规范除了防止使用0xffffffff 之外,并没有为 TMSI 规定特定的结构。因此,操作员可以自由选择 TMSI 的值,因为它只与 VLR 相关。通过对 AT&T 网络51小时的观察,我们发现使用 TMSIs 的211,094个寻呼请求中,只有59,329个独立 TMSIs,所以 TMSI 平均被重用3.56次。很明显, TMSI 有232-1的可能性,仍然有足够的空间分配 TMSI。对于那个 AT&T 网络,大多数 TMSIs 的值都在0x90000000以上,大部分在0xbe000000到0xfb0000000之间。
我们对 TMSIs 的攻击之所以有效,是因为与两次通话之间的短延迟相比,TMSI 的分配时间较长。通过使 TMSI 分配的时间短于两个呼叫之间的时间延迟,TMSI 现在变得无法识别。也可以在成功接收到一个寻呼后进行重新分配。

C. 连续时间混合应用到 PCCH

即使电话号码和 TMSIs 之间按位不连接,仍然有可能应用流量分析技术来确定概率,如果我们看到的Paging是由我们的呼叫造成的,特别是在安静时期。在流量率较低的情况下,满足 tmin ≤ tTMSI ≤ tmax 不等式的候选 TMSI 集非常小。
为了防止所讨论的基于时间的流量分析,我们建议在 BTS 上延迟发出的寻呼请求消息。考虑到 TMSI 分配空间利用率很低,在低流量条件下,可以通过引入由包含未指定 TMSIs 的诱骗paging组成的覆盖流量来提高到达率。通过将总流量保持在150页/分钟以上,即使对于小时延参数µ≥2,也可以保持高匿名性。

0x07 Conclusion

我们已经证明有足够的信息从 GSM 通信栈的底层泄漏,使攻击者能够对受害者的设备进行位置测试。我们已经展示了这些测试可以在用户不知道的情况下悄悄执行,方法是在测试完成之前中止 PSTN 调用。我们最后提出了一些解决方案,通过应用低成本的技术,具有良好的匿名性能的 GSM 栈,而无需硬件改造。

点击收藏 | 1 关注 | 1
  • 动动手指,沙发就是你的了!
登录 后跟帖