谷歌怎么知道我在哪里?

信息安全 谷歌 地理位置 谷歌应用
2021-08-20 21:49:59

每当我在我的安卓手机上打开谷歌地图应用程序时,谷歌似乎总是知道我的位置,而且非常准确(通常它会将我放在地图上,即使是在正确的房间里)。此外,即使 WiFi 适配器和 GPS 都关闭,也会发生这种情况。我知道关闭 WiFi 适配器并不意味着什么,而且我听说 Google 使用有关附近路由器的信息来定位您。但这是否意味着 ISP 正在向 Google 提供所有(或部分)路由器的位置信息?

据我所知,除了我的 ISP 之外,没有任何私人公司应该知道我的位置、姓名等敏感数据……那么,Google 是如何如此精确地定位我的呢?

4个回答

Google 使用来自您的WLAN 接入点的BSSID信息来获得您所在位置的近似值,即使在 GPS 和 WiFi 关闭的情况也是如此。摘自“谷歌地图如何在没有 GPS 的情况下估计我的位置?”

Google 和 Apple 和 Skyhook 等其他公司构建了一个数据库,将 WLAN BSSID 与地理位置联系起来。BSSID 类似于由该接入点广播的接入点的 MAC 地址。因此,如果启用 BSSID 广播,它是“公共可见的”,这是大多数接入点的默认设置。BSSID 作为 IP 堆栈在较低层运行,您甚至不必连接到接入点即可接收这些广播。

因此,本质上,当您使用WiFi和 GPS 时,Google 的 BSSID 数据库会使用与该 BSSID 相关联的地理位置进行更新,正如您所假设的那样。在您的情况下,您的 AP 正在发送宣传其 BSSID 的信标,并且由于它已经在 Google 的数据库中,因此 Google Maps 会根据该 AP 的位置知道您的位置。

因此,并不是ISP 向 Google 提供了他们路由器的位置,而是您的手机已经帮助建立了您周围的接入点数据库,而 Google 使用这些数据进行地理定位。

可悲的是,即使您获得了一个新路由器并让任何和所有 Android 设备远离它,它们仍然能够根据您的手机连接的手机信号塔(甚至可能是您邻居的 AP!)来估计您的位置,但它不会那么准确。


我在评论中看到了关于即使 WiFi 关闭, Android 手机是否会接收位置数据的问题。答案是,是的,他们绝对可以。对不起,我没有说得更清楚。如果您不知道,最好检查您的设置:

适用于 Android 设备的高级 Wi-Fi 设置菜单。 设置“扫描始终可用”以红色下划线表示强调。 设置的拨动开关处于打开位置。 该设置的菜单解释说“让谷歌的位置服务和其他应用程序扫描网络,即使 Wi-Fi 关闭”。


自 Android 4.3起已包含此“功能” 之前的 Android OS版本不包含此功能感谢 martinstoeckli 提供此信息。

尽管在您的手机上关闭此“功能”似乎是防止您的 BSSID 被添加到数据库中的最佳方法,但情况并非如此你有其他人的手机、路人的手机,甚至是谷歌自己的街景汽车要与之抗衡感谢 Bakuriu 指出这一点。

虽然可能是这种情况,但您可以通过附加到您的SSID的末尾来选择退出此计划您的 SSID 是您选择获得的网络的“名称” 。例如,您在家中为您的 WiFi连接到 SSID “Home”“D-Link” 。为了选择退出,您将重命名您的网络. 感谢安德里亚·戈塔多的提示。有关更多信息,请参阅有关退出的 Google 支持文章。_nomapHome_nomapD-Link_nomap

您禁用了 WiFi 和 GPS,但仍打开了蜂窝数据。这意味着手机正在与当地的手机信号塔进行通信。Android 使用手机信号塔的地理位置来估计您的当前位置。

每个手机信号塔都有一组 ID 号,用于向手机识别它们。它不断广播其身份,以便手机在移动时可以连接到它。蜂窝塔天线是定向的,每个塔大致服务于三个不同的区域;你可以把它们想象成三个饼状的楔子,手机信号塔位于饼的中心。这些楔子中的每一个都是一个“单元”(这就是该技术得名的地方。)

为这些小区服务的每个无线电都使用一定量的功率进行传输 - 您离发射塔越近,您的手机接收到的信号越强,反之亦然。您的手机使用接收到的信号强度来节省电池电量。手机信号塔越远,手机传输给它的功率就越大。因此,手机总是试图锁定最强的信号,以便它可以使用最少的功率进行传输。一种更有用的看待它的方法是,接收到的信号强度代表到蜂窝塔的粗略距离。

所以现在想象一下那个形状像一个馅饼的单元格,接收到的最强信号离塔最近,而最弱的信号离塔最远。想象一下,在环绕塔的曲线中切出楔形饼,在最近的切片中信号强度强,在最远的切片中信号最弱。它看起来(非常)大致是 WiFi 标志。这些切片中的每一个都代表了地球上的一些小区域,而您正站在其中一个区域中。

如果您在人口稠密的地区(例如城市),您的手机通常会收到来自多个手机信号塔的信号。因此,请想象塔 A、塔 B、塔 C 和塔 D 的重叠切片的交集。这些交点定义了一个越来越小的区域。

那么,Google 是如何知道这些单元格、楔形、切片和交叉点的位置的呢?从十亿部开启 GPS 的 Android 手机中(包括您的手机,当您的 GPS 开启时),不断发送有关他们的 GPS 位置以及他们看到的手机信号塔和信号强度的报告。谷歌已经使用这些数据来绘制出每个单元的位置,以及每个点的大致信号强度。他们的服务器上有一个包含这些信息的巨大数据库;您的手机通过发出列出范围内所有手机信号塔的网络请求来查询该数据库,Google 服务器会以您的估计位置响应。

当然,这都是非常近似的,因为无线电信号实际上并没有以完美的小馅饼楔形传播——它们会从建筑物和汽车上反弹,它们会被树木、墙壁、雾、云和人吸收。每天都有新的基站来来去去,因此无线电发射器的格局也经常发生变化。数以百万计的报告仅生成平均 GPS 坐标。但这没关系,因为即使是不完善的位置数据也足以满足大多数用户的需求。

最后,为了提高准确性,您手机上的 Google Play 定位服务软件会跟踪您手机的最后已知位置,并可以使用它来更好地估计您当前的位置。特别是,最后一个已知位置是对您当前位置的合理估计(根据自上次查询您的位置以来您可能没有移动过的启发式方法);如果这似乎与手机信号塔信息一致,则可能会用于提高您估计位置的准确性。

根据谷歌

Google 地图如何找到您的当前位置 地图会根据以下来源估算您的位置:

您的网络浏览器的位置信息。您手机的位置信息(如果您开启了位置记录)。

此外,您可以使用 Google 地图应用程序设置默认位置,因此您过去可能已经这样做过。

尝试更改默认位置并在关闭 GPS 的情况下再次测试

  1. 点击右上角的齿轮图标打开菜单
  2. 从该菜单中,单击搜索设置,这将打开一个新页面
  3. 在位置的文本框中输入新的默认位置

谷歌可能不知道你在哪里,但在你关闭所有东西之前就知道你在哪里。

您可以通过将手机切换到飞行模式,然后移动一段距离来测试这个理论。如果您的手机仍然认为您在旧位置,那么您就知道是这种情况。然后,您可以一次打开手机上的一项功能,并查看何时可以确定您已移动。这将告诉您使用了哪个收音机。

请注意,由于 GPS 完全是被动的,因此处于飞行模式的手机可能仍然能够从 GPS 卫星接收其位置。