实时追踪上百万个手机是种怎样的体验?

2018-05-25 10:36:01 浏览数 (2)

文章授权转载自FreeBuf(ID:FreeBuf.COM)

作者 | hey你的拔粪宝

一个拥有一千万用户的手机服务提供商的代表来到我的办公室,问我“如果要追踪我一千万用户的每一步行踪,我要准备什么?” 我会回答“一个实习生以及六个月的时间,这个实习生需要一张桌子,一台电脑,他要有基础的编程能力和代数技巧,就这么多”。

你可以在网上找到你想要的任何信息,但是应该没找到过该如何追踪手机。

首先要阐明清楚,我们在这里谈的不是如何追踪你丢失的(或被偷的)手机,我们在这里谈的,是追踪每一个人的手机!其实我觉得这件事难度不大,甚至异常简单,所以人们应该意识到这件事的影响。

现在想象你就是这个来到公司的实习生,你的实习生涯已经开始了!这篇文章会告诉你所有你需要知道的。

首先我们要重温一下蜂窝网络,地理定位原则以及每个手机都能轻易获取的功能,然后把这些东西全部利用起来做成一个行星级精准实时批量监控系统。

(PS:读到最后的人运气都不会太差)

A)前言

我们正处在跨领域专业知识的特殊位置,因为我们把最先进水平的追踪系统经验和电信产业的经验结合了起来。

无论是定位仓库里的一个东西以指引人们购物还是跟踪一辆被偷的卡车,在满足一些约束的条件下,追踪可以有很多合法用途:室内的,室外的,有电池的和没电池的,可调节精度的等等…

一个手机就有很多嵌入科技,比如GPS,WIFI,加速计,指南针等等…在这篇文章里,我们专注于一些容易得到,可靠,效率高且能大量追踪的东西。

B)需要的东西

我们要开始追踪手机了,哪个手机呢?——所有手机

一些约束条件:

  • 手机不可控
  • 无法物理接触
  • 硬件不能被修改
  • 软件不能被安装
  • 用户不可控
  • 他们不会做我们想要的行为
  • 他们不会事先同意任何东西
  • 他们不会答应任何其他东西
  • 必须为百万级别
  • 庞大的用户量

在时间和空间上有更好的精度就更好了,但是这项并不能自成一个标准,因为他需要平衡很多参数,比如可行性,可拓展性,可靠性,以及所需花费。

为了避免疑问,如果能在指定时间能定位指定城市的指定街区的任何手机,我们即认为是成功。

C)多点定位

很多系统的工作原理是三角测量,所以通过对比距离和相关点来对一个指定位置进行三角测量是可行的。

如果你使用GPS这样的服务,那么它会直接帮你定位并且给你一个范围误差。

如果你偏要自己做,无论你是做GPS的人还是把多个传感器混在一起想搞大新闻的人,你要自己做很多比较困难的事。

总之,有四种方法:

1)强度:信号强度

有了发射强度,接收强度以及媒介的信息,我们可以用物理的波传播公式来估计距离。

但是从实际出发,这种方法对无线电波极其不可靠

比如远距离的无线电波每秒内通常会有10dB的误差,而且在你不动的时候瞬息万变,如果有你在有门窗的地方的话情况会变得更糟。

2)AoA:到达角

注意:当使用角度的时候它被称为三角测量

有了信号的角度,我们就有可能辨别信号源在某条线上(或是圆锥),显然,如果是强指向性信号,那么AoA就非常有用了。

你可以想象在电影里看到不下千次的雷达。

3)ToA:到达时间

有了信号时间和速度,那么距离就很容易得到了。T=d/s

有挑战性的是:无线电波以299 792 458m/s的速度传送,如果要保证精度在30cm以内,时间误差必须在0.000000001秒内(1纳秒),这是个很难解决的问题。

4)TDoA:到达时差

这也是基于时间测量。不过显然用时差比用绝对时间好多了。

被追踪设备发射的脉冲被多个接收器收到,且这些接收器在已知位置并时间同步。通过测量不同接收器接受到信号的时差,我们可以大致确定目标设备的大概距离。

具有挑战性的是:这不仅需要极其精确的时间测量,还需要各个接收器系统的时钟同步。

D)蜂窝网络原理

我们现在过一下蜂窝网络的基础

1)基站收发信台(BTS)

一个手机会与基站通信

有两个信道,一个用于(向基站)发射,一个用于(从基站)接收,它们在不同频率上运作。

发射频道被所有设备在任何时间共享。

2)蜂窝网络

一个基站覆盖周边,临近的基站就构成了蜂窝网络,相邻的基站需要使用不同的频率以避免相互干扰。

其中每一个都有自己的网络,其中一个可能会向另一个分享或转手网络。有些是虚拟的,被称为移动虚拟网络运营(MVNO),它们没有物理的基础设施,通过租用基础运营商的资源来发展自己的业务。比如giffgaff(英国的服务商)

3)基站密度

一个基站覆盖的用户数是有限制的,当一个地方有太多用户(比如市中心)那会发生什么呢?

两倍密度,四倍容量,可以将基站安排得更密集来增加容量。

E)定位一个手机

1)基站

你的手机必须在基站覆盖范围内才能进行通信,通过你的手机的“在线”信息,运营商可以知道你在哪个基站附近。

就像刚刚说的,基站塔数量可以随着用户密度而进行调整,理论上基站塔的覆盖半径有35km,在大城市,每千米可能就会有个基站,而在乡村,每十千米可能就会有一个。

这就足够确定用户在哪个城市了。

基站收发信台必须被合理安排才能避免干扰或其他情况,运营商知道这些塔的位置,这些塔还会被某种无线电塔登记局正式注册。(各国的执行方式可能会有不同)

2)基站x6

以前在电信局的时候,曾经用过制造商提供的用于测试的手机。想象一个老牌诺基亚,有嵌入的硬件和软件以供调试,其中就有可以显示连接细节的,不过这种手机不会卖给普通消费者。

有那种手机在手上,我们发现它会随时侦测且与四个基站同时保持连接。为什么是四个呢?因为这个地方只有四个!一个十年前350块钱的手机,可以同时“连接”6个基站。可能会包含稍微在范围外的基站,信号强到可以侦测到,但是又弱得不能用于实际使用。

我们喜欢从简单方面说明现在的情况:你的手机是科技的奇迹,无论怎样它都会继续发展来保持通讯的继续,当你说话的时候,一个字会从一个塔到下一个塔再到另一个,它会尽可能频繁地切换。

总结一下这个段落:你的手机会不断地与多个基站通信,一个基站可以将你定位在一个圆里,而多个基站定位的圆重合的地方(也就是你所在位置)就会小很多。(很久之前的微信三点定位法也是这个原理)

3)角度

我们之前说基站会覆盖一个圆,不过这个还没有达到最佳标准。

一个常见基站会发射三个分裂成120°的独立电波。

一个经典的基站收发信台(注意是三角状的),每一面覆盖了120°

就像这样技术上的安装,正如精密天线制造商所推荐的。

这就让我们的定位精准到了120°以内,提高了精确度,多点定位所需的收发信台也减少到了两个。

这种方法需要天线和指向性信息,我们检查了收发信台数据库,发现信息都在那里,所以得到这些信息十分容易。精度需要在野外测试(某种程度上说电波的传播与建设工作并不是十分完美)。

4)RSSI:接收信号强度指示器

一个手机的最大发射功率是2瓦(6dB),一个手机接收器有着常见的0.000000001瓦灵敏度(1纳瓦或-90dB)空气会使信号衰减10亿倍,但是手机仍然会正常工作,很神奇!

在大学物理的理想世界里,用该方程可以模拟空气中的传播损耗:

但在现实世界中,这个公式并不能被应用,空气不是均匀的,而且各个地方都有障碍物。衰减随时会改变两个数量级,所以这个值并没有意义。

卡尔曼过滤器用得好,可以帮助过滤样本,但是对于一个质量不太好的结果,它会变得更复杂。

5)TA:时间提前

一个信道会被多个客户共享,每人都会分配一个非常短的时间,你可以去了解GSM框架的介绍来获取细节。

如果前一个位置与下一个重叠,时隙就无法使用(被另一个电话占用),有可能导致这种情况的原因可能是电话到基站的传播延迟。

在GSM中,每一位是3.69231µs,在那段时间里,无线电波可以传播1107米,这意味着如果目标在多个1107米开外,那么就会有多个bit延迟…我们可不想那样!

传播延迟可以由一个被称为时间提前的机制修正。时间提前量的作用就是为了补偿电波传输延迟,由于GSM采用了TDMA,每频载8个时隙,所以应严格保持时隙间的同步

如果是为了地理定位,时间提前量可以允许将一个手机定位在一个1107米的环面中,接下来我们将其放在伦敦的中心

这是一个基站给你提供的准确度(先不考虑角度)

让我们来看看两个基站协同运作是什么样的情况

它给出了两个可能的区域,需要第三个测量值来确定到底是哪一个(角度或时间提前量)

足够直观了,测量得越多,定位就越精确。

别忘了,你的手机可能会和六个基站通讯,它们可以协同运作来定位你。

有时它也不够准确,但是足够确定你在哪个街区了。

6)几何的思考

两个维度的相交在计算能力方面复杂度较高,一个小实习生可能不会理解;圆的相交是个小问题,已知的公式可以用来计算。先将公式简单地应用到一个圆,再推广到N个圆,然后过滤掉不在基站范围内的和不在确定角度内的点(在极坐标(球坐标)中角是很容易确定的)。所显示的点都是近似的,但是非常容易计算,但是记住!我们有数以百万计的人要追踪,而且只有一个实习生!

(我们检查了设计软件的是如何处理二维和三维交叉口(SolidWorks,CATIA,AutoCAD),可惜的是这是高等数学,需要大量的运算。所以至亲爱的数学家读者:如果你对复杂形状的交点有任何建议,请评论。)

7)总结

定位一个手机:

  • 一个基站可以将其定位到为35km的圆内
  • 时间提前量可以将其定位到1107米的环面内
  • 角度分裂可以将范围再缩减三分之二(120°内)
  • 因为有多个基站协同运作,精确度再次极大提高

8)时间

要记住一个位置总是指向到一个时间,一个手机总是存在于特定的时间,特定的地点。

手机总是需要永久连接,而且它们一直在实时适应环境,在收到电话(信息)时,手机会强制工作。

所以保守估计,手机每分钟都能被重新定位。

来做一个实验:

先把手机关掉,再向它发送一个短信,打开手机,这个手机会花多久来收到这个短信?

F)依赖

要让跟踪系统在一个大型系统上真正实现,我们需要一些先决条件。

1)基站数据库

每个服务提供商都知道他们在哪里搭了基站,如果是因特网服务提供商,那么就自带基站数据库了。

你也想要?很容易呀!(但是不要混淆了容易和便宜)

2)基站收发信台的信息记录

首先,网络中嵌入了广泛的身份验证,漫游和支付系统,在适当的时间以适当的价格向适当的用户提供服务是很必要的。

其次,几乎每个国家都有法规,规定服务提供商需要储存每个用户的信息。

还有,现在已经有大量基础设施开始记录和审核访问,下到基站,上到高级用户的订阅。

3)对比手机和身份信息

假设我们正在追踪手机,定位手机的最后一步是对比手机信息和真人的身份信息,但是对比并不是一件难事(你懂的)。

G)已知的未知因素

我们已经知道了如何追踪用户,ISP很容易做到这些(通过接口,NSA(国安局)/GCHQ(国家通讯总局)也可以做到)

一些未知因素可能会影响到行动的规模和成功,非但没有因素可以削弱这种行动,且一些因素可以让这种行动更上一层楼!

1)近距离跟踪

手机必须发现周围的基站,不去尝试是不可能知道哪个是对的。

从技术上讲,手机有可能会广播,并试图连接到范围内的所有基站。(手机已经开始时间提前和设备认证,因此允许多点定位和用户身份查找)

如果是这样,任何地区的基站都可以追踪任何手机,全国性的运营商可以追踪到所有人,因为他们已经覆盖全国,当然你也可以设置专用网络来躲避追踪。

2)跨ISP通讯

你是否去过信号不好的地方,手机显示“仅支持紧急服务”?

没有接收常规的呼叫与被叫,但是可以打紧急电话?它可能是在用其他网络(不是你的运营商),这是个法律规定,手机厂商和运营商必须允许。

从技术上来讲,说明有一些内置的东西,让手机连接到任何网络,你的手机也在一直尝试(和前面的观点类似),如果是这样,它可能会被滥用来追踪你的手机。

3)国际漫游

还不懂吗?

H)已知的已知因素

1)前后兼容

通讯技术在1991年就开始民用且变成每个手机的一部分,从某些角度来讲,3G,3G ,LTE都没有太大变化。

2)这个项目可以由一个实习生来完成

这项技术并不是新兴科技,任何学通信的学生都有足够的知识(认真学的话)。

20年前,这件事可能被忽略了或根本未被察觉,那时只有很少的基站,很少的用户,精确度也受到限制,现在很容易就能想象当时这个概念被认为是不可能的:

“什么?要用一个完整的软盘来装12000个客户的位置?我的天!我们永远都不会有那个预算!我保证!”

3)威瑞森(Verizon)已经在施行了

就是上周自称泄露了600万客户信息的那个(其他主要运营商也在做这些事)。

任何运营商都可以自动得到难以置信的追踪功能,而且保存历史记录,这并不是可选的,一半来自基础设施,另一半来自法律规定。

4)NSA也在做这件事(美国其他国家资助的机构也在做)

他们想要追踪世界上任何一个人,这是他们的主要目标之一,他们有很多资源,他们有能力渗透运营商,而且有能力用他们的基础设施。

具有讽刺意味的是,迄今为止最大的监控系统已经建成了,还很好用。

(注:第3条和第4条为作者阐述,真实性待考究。)

总结:

用诺基亚3310和iPhone7有区别吗?是不是用诺基亚就不会被定位了?

并没有多少差别,保守地说,它们开机的时候都能全天候实时定位你的位置。

另附每一百人中电话使用人数表:

如果我告诉你,一个群体花了25年在每个人身上装了追踪设备……

【不点开看看吗】(https://wigle.net/)

原文链接:http://www.freebuf.com/news/141114.html

2017年7月《顶级数据团队建设全景报告》下载

0 人点赞