我们对 iPhone 位置数据的研究——以及如何使用这些数据
“我们知道你住在哪里!”至少,在发现 Apple 最新的 iOS 4(适用于 iPhone 和 iPad)带有一种跟踪机制,只要手机保持开机,就会持续记录 iPhone 所处位置的详细信息之后,Apple 可以这么说。这些信息除了存储在手机本身,还会在你使用 iTunes 同步 iPhone 时自动包含在所创建的备份中。
尽管数字取证界早在几个月前就已知晓此事,但直到安全研究人员 Pete Warden 和 Alasdair Allan 发布报告后,这条消息才传到普通公众耳中,并在互联网上引发轩然大波,博客文章和推文纷纷回应:你的匿名性又少了一点。但这条消息真的那么严重吗?普通 iPhone 用户应该担心到什么程度?
你的 iPhone 或 iPad 在跟踪哪些位置数据?
我们对这个问题做了一些研究,结论是:在某些情况下,iTunes 备份文件中暴露的位置数据足以引起一定的担忧。我们分析了一部存有大约一年位置数据的手机。总的来说,可以利用这些数据大致看出手机用户在任意一天身在何处。例如,当用户今年早些时候去马尔代夫度假时,你可以看到手机的位置点从伦敦跳到了马尔代夫。不过,要进一步深入到更具体的地点就没那么容易了。

Google Earth 中的 iPhone 位置跟踪数据
由于这些数据似乎来自移动电话基站(美国朋友称之为“cell phone towers”),位置点的精度差异很大。在城市(或其他基站密集的地区),通常可以把用户的位置追踪到几百米以内。在乡村则是另一番景象。有个例子是,一位用户当天在朴次茅斯,但位置图显示,他那天先后出现在朴次茅斯、南安普顿和怀特岛!此外,Apple 似乎出于某种原因选择不实时存储这些数据。相反,位置信息会被分批积累,通常每天在手机上记录一两次。
这可能导致用户看起来同时出现在好几个地方,因为可能会记录下三四个不同的位置,但日期和时间都相同。不过,这些数据显然足以勾勒出用户行为的大致轮廓。警方和安全部门可能会发现这些数据极其宝贵,可以用来证明或推翻不在场证明,而无需花费高昂的费用向移动运营商发出传票来获取更精确的位置数据。

iPhone Backup Extractor 中的免费 KML 导出选项
如果你有一部 iPhone,并且好奇手机显示了关于你的哪些信息,我们已经更新了 iPhone Backup Extractor,可将位置数据提取为 CSV 格式(适合在 Excel 中查看)或 KML 格式(你可以使用免费的 Google Earth 软件在地图上查看)。
由于我们意识到这个问题让许多人感到担忧,我们决定把这项功能不加限制地纳入我们软件的免费版本。你可以从我们的网站下载该软件。
consolidated.db:跟踪位置数据
在 iOS 上,consolidated.db 文件存储你的手机、GPS 和 Wi-Fi 位置数据。让用户知道设备上存储了什么,并不是一个坏主意,这也是我们看重的一项重要原则,把这件事公之于众并非坏事。
Apple 在设备和备份中存储的,不只是经纬度坐标和时间戳。下面简要说明其中每个表所包含的内容:
CellLocation(或CdmaCellLocation):时间戳(时间和日期)、纬度、经度、水平精度、海拔(未设置)、垂直精度(未设置)、速度(未设置)CellLocationHarvest:手机运营商(Orange、T-Mobile、O2、Vodafone)、时间戳(时间和日期)、纬度、经度、水平精度、海拔、垂直精度、速度、航向(方向)、置信度(精度百分比)LocationHarvest:tripID、时间戳(时间和日期)、纬度、经度、水平精度、海拔、垂直精度、速度、航向(方向)、置信度(精度百分比)WifiLocation:Wi-Fi 的 MAC 地址、时间 / 日期、纬度、经度、水平精度、海拔、垂直精度、速度(未设置)、方向(未设置)、置信度(精度百分比)
这个数据库里有一些有意思的内容,而且存储的不只是手机位置。所存储的数据并不只与手机和信号有关。3G 和 Wi-Fi 位置十分普遍,使用 GPS 也会记录位置数据。例如,在旅途中使用 3G、BT OpenZone 或类似的 Wi-Fi 来源,如果开启了相应设置,就会激活应用对 GPS 的使用,因此会存储你的位置。你所连接的 Wi-Fi 路由器的详细信息也存储在 consolidation.db 文件中。
这些数据的精度取决于手机信号塔和 GPS 来源的三角定位效果。查看我 iPhone 上存储的数据,我认为在移动过程中对 iPhone 位置的三角定位不是很准确,但仍在我实际位置一英里左右的范围内。GPS 位置似乎精确到几米以内——即使不是完全吻合——所以除非你能辨别数据之间的差异,否则结果可能时准时不准。精度始终会因所处位置的偏僻程度而有很大差别。区域越是建筑密集,信号塔就越集中,因此这些读数也就越准确。
存储位置数据的 consolidated.db 文件在哪里,我该如何查看其中的内容?
使用 iPhone Backup Extractor 很容易找到 consolidated.db:

使用 iPhone Backup Extractor 提取 consolidated.db
consolidated.db 数据库文件存储在备份和 iPhone 上的 /Library/Caches/locationd 中。Apple 在与 iTunes 同步后使用十六进制编码的 SHA1 哈希值来存储备份文件,因此访问该文件最简单的方法是使用“Expert mode”。具体操作如下:
- 打开 iPhone Backup Extractor
- 点击“Expert mode”按钮
- 导航到以下文件夹:
Library→Caches→locationd - 勾选
consolidation.db文件旁边的复选框 - 点击“Extract selected”按钮,选择保存文件的位置
- consolidation.db 文件将保存在此位置的以下文件夹中:
\Library\Caches\locationd
如果你想查看这个数据库文件,需要使用以下应用之一。这两个应用都是免费的,通过查看上面提到的表,你无需太多技术知识就应该能看到位置数据。

SQLite Manager 中某部 iPhone 的 consolidated.db
在数据库中找到任何位置参考点后,你可以使用 Google Maps 来标绘这些位置。用“Latitude, Longitude”格式进行搜索,就能找到输入的位置。





