苹果公司的Wifi定位服务(WPS)存在被滥用的风险

安全博客 Krebs on Security 2024年5月21日发布博文,表示苹果公司的定位服务存在被滥用风险,通过 "窃取"WPS 数据库,可以定位部队行踪。

相关背景知识

手机定位固然主要依赖卫星定位,不过在城市地区,密集的高楼会导致移动设备难以接收卫星的微弱信号,因此移动设备在这种场景中会依赖基于 Wi-Fi 的定位系统(WPS)。

WPS 使用一个包含近 5 亿台 Wi-Fi 路由器的全球数据库。最重要的是,这不仅仅是他们能实际访问的公共路由器,而且他们能看到的所有 BSSID,这也包括很多家庭中的 Wi-Fi 路由器。

设备无法访问你的路由器,但它们可以检测到路由器并查询数据库,找出路由器的确切位置。这些数据库是由四处行驶的汽车创建的,它们使用多种方法跟踪自己的位置,并收集 BSSID,然后将其与这些位置进行匹配。

制造商设置的 BSSID 与用户选择的路由器 SSID 不同,简单来说可以将其视为路由器中无线网卡的 MAC 地址。

苹果和谷歌都有自己的 WPS 数据库,它们使用的方法基本相同。检测附近的 BSSID,测量每个信号的强度,然后将这些数据与 WPS 数据库进行比较,找出移动设备的位置。

谷歌定位方式

安卓手机会记录它能看到的 BSSID 及其信号强度,并将数据发送到谷歌服务器,服务器使用 WPS 数据库计算手机的位置,并将其发送给手机。

苹果定位方式

苹果的 WPS 还接受附近 BSSID 的列表,不是根据观察到的接入点及其接收到的信号强度来计算设备的位置,而是苹果通过 API 返回最多 400 个 BSSID 的地理位置,然后使用其中大约 8 个 BSSID 根据已知地标确定用户的位置。

定位方式区别

从本质上讲,谷歌的 WPS 可以计算用户的位置,并与设备共享。苹果的 WPS 为其设备提供了足够多的有关该地区已知接入点位置的数据,设备可以自行进行估算。

根据论文描述,WPS定位主要两种工作方式:1)在服务器计算手机端位置,2)返回一些的BSSID的地理位置,并让手机端进行计算以确定其位置。谷歌的WPS采用前者,而苹果的WPS采用后者。

研究人员指出,谷歌和苹果的WPS系统在基本工作原理上有根本区别,苹果的系统由于其开放性,为安全研究人员和潜在的攻击者提供了进行这项研究的途径。

研究人员指出,苹果的WPS系统特别“热情健谈”(下图):
在这里插入图片描述

论文指出:“除了客户端提交的BSSID的地理位置,苹果的API还会随机性地返回多达数百个附近BSSID的地理位置。”

“在苹果的WPS版本中,用户提交BSSID进行地理定位,苹果WPS则会返回其认为的BSSID位置,同时返回的还包括用户未请求的多达400个附近BSSID的位置。这400个额外的BSSID对于安全研究人员/黑客的研究非常重要,因为它们允许研究人员在短时间内积累大量的地理定位BSSID。此外,苹果的WPS服务接口没有设置认证或速率限制,可以免费使用。”

相比之下,谷歌的WPS则仅返回计算出的位置,并且经过认证、速率限制和收费,使得进行类似攻击或安全研究变得难以负担,因此比苹果的WPS要安全得多。

苹果定位方式漏洞

马里兰大学的研究人员表示可以利用苹果公司 API 的冗长功能,绘制出单个设备进出世界上几乎任何指定区域的移动地图。

马里兰大学的这对研究人员说,他们在研究初期花了一个月的时间不断查询 API,询问随机生成的十亿多个 BSSID 的位置。

在这些随机生成的 BSSID 中,只有约 300 万个是苹果公司的 Wi-Fi 地理定位 API 所知道的,但苹果公司还返回了另外 4.88 亿个 BSSID 位置,这些位置已经通过其他查询存储在其 WPS 中。

研究人员说,通过归零(zeroing)或“地理围栏”苹果公司位置 API 索引的其他较小区域,他们可以监控 Wi-Fi 接入点随着时间的推移是如何移动的。

这个问题在实际层面可能会是个大问题,团队可以对俄乌冲突区域进行定位,能确认乌克兰和俄罗斯军队使用的星链设备的位置和移动情况。

参考

IT 之家博文

Krebs on Security 博文

Maryland大学的研究论文

安全内参博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/772377.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

YOLOv10全网最新创新点改进系列:融合GSConv+Slim Neck,双改进、双增强,替换特征融合层实现, 轻量化涨点改进策略,有效涨点神器!

YOLOv10全网最新创新点改进系列:融合GSConvSlim Neck,双改进、双增强,替换特征融合层实现, 轻量化涨点改进策略,有效涨点神器! 所有改进代码均经过实验测试跑通!截止发稿时YOLOv10已改进40&…

vue中的坑·

常规 1.使用watch时,immediate true会在dom挂载前执行 2.使用this.$attrs和props 可以获取上层非原生属性(class/id) 多层次嵌套引用 设置的时候直接赋值,修改的时候即使用的双向绑定加上$set / nextick / fouceUpdate都不会同步…

MySQL表的练习

二、创建表 1、创建一个名称为db_system的数据库 create database db_system; 2、在该数据库下创建两张表,具体要求如下 员工表 user 字段 类型 约束 备注 id 整形 主键,自增长 id N…

探索设计的未来:了解设计师对生成式人工智能(AIGC)工具的采用

在数字化浪潮的推动下,设计行业正经历着一场革命性的变革。随着生成式人工智能(AIGC)技术的发展,设计师们迎来了前所未有的机遇与挑战。这些工具不仅重塑了传统的设计流程,还为设计师们提供了更广阔的创意空间和更高效…

vue模板语法v-html

模板语法v-html vue使用一种基于HTML的模板语法,使我们能够声明式的将其组件实例的数据绑定到呈现的DOM上,所有的vue模板都是语法层面的HTML,可以被符合规范的浏览器和HTML解释器解析。 一.文本插值 最基本的数据绑定形式是文本插值&#…

理解神经网络的通道数

理解神经网络的通道数 1. 神经网络的通道数2. 输出的宽度和长度3. 理解神经网络的通道数3.1 都是错误的图片惹的祸3.1.1 没错但是看不懂的图3.1.2 开玩笑的错图3.1.3 给人误解的图 3.2 我或许理解对的通道数3.2.1 动图演示 1. 神经网络的通道数 半路出嫁到算法岗,额…

【算法训练记录——Day41】

Day41——动态规划Ⅲ 1.理论基础——代码随想录2.纯01背包_[kamacoder46](https://kamacoder.com/problempage.php?pid1046)3.leetcode_416分割等和子集 背包!! 1.理论基础——代码随想录 主要掌握01背包和完全背包 物品数量: 只有一个 ——…

顶级5款有用的免费IntelliJ插件,提升你作为Java开发者的旅程

在本文中,我们将深入探讨IntelliJ IDEA插件——那些可以提升你生产力的神奇附加组件,并微调你的代码以达到卓越。我们将探索5款免费插件,旨在将你的开发水平提升到一个新的高度。 1. Test Data 使用Test Data插件进行上下文操作 作为开发者&a…

昇思学习打卡-5-基于Mindspore实现BERT对话情绪识别

本章节学习一个基本实践–基于Mindspore实现BERT对话情绪识别 自然语言处理任务的应用很广泛,如预训练语言模型例如问答、自然语言推理、命名实体识别与文本分类、搜索引擎优化、机器翻译、语音识别与合成、情感分析、聊天机器人与虚拟助手、文本摘要与生成、信息抽…

基于用户的协同过滤算法

目录 原理: 计算相似度: 步骤: 计算方法:Jaccard相似系数、余弦相似度。 推荐 原理: 先“找到相似用户”,再“找到他们喜欢的物品”--->人以群分。即,给用户推荐“和他兴趣相似的其他用…

运维管理一体化:构建多维一体化的运维体系

本文来自腾讯蓝鲸智云社区用户:CanWay 摘要:笔者根据自身的技术和行业理解,解析运维一体化的内涵和实践。 涉及关键词:一体化运维、平台化运维、数智化运维、运维PaaS、运维工具系统、蓝鲸等。 本文作者:嘉为蓝鲸运维…

微信小程序 typescript 开发日历界面

1.界面代码 <view class"o-calendar"><view class"o-calendar-container" ><view class"o-calendar-titlebar"><view class"o-left_arrow" bind:tap"prevMonth">《</view>{{year}}年{{month…

react框架,使用vite和nextjs构建react项目

react框架 React 是一个用于构建用户界面(UI)的 JavaScript 库,它的本质作用是使用js动态的构建html页面&#xff0c;react的设计初衷就是为了更方便快捷的构建页面&#xff0c;官方并没有规定如何进行路由和数据获取&#xff0c;要构建一个完整的react项目&#xff0c;我们需要…

Frrouting快速入门——OSPF组网(一)

FRR简介 FRR是FRRouting的简称&#xff0c;是一个开源的路由交换软件套件。其作者源自老牌项目quaga的成员&#xff0c;也可以算是quaga的新版本。 使用时一般查看此文档&#xff1a;https://docs.frrouting.org/projects/dev-guide/en/latest/index.html FRR支持的协议众多…

Unity 实现UGUI 简单拖拽吸附

获取鼠标当前点击的UI if(RectTransformUtility.RectangleContainsScreenPoint(rectTransform, Input.mousePosition)) {return rectTransform.gameObject; } 拖拽 在Update 中根据鼠标位置实时更新拖拽的图片位置。 itemDrag.transform.position Input.mousePosition; …

Windows安全认证机制——Windows常见协议

一.LLMNR协议 1.LLMNR简介 链路本地多播名称解析&#xff08;LLMNR&#xff09;是一个基于域名系统&#xff08;DNS&#xff09;数据包格式的协议&#xff0c;使用此协议可以解析局域网中本地链路上的主机名称。它可以很好地支持IPv4和IPv6&#xff0c;是仅次于DNS解析的名称…

JavaFx基础知识

1.Stage 舞台 如此这样的一个框框&#xff0c;舞台只是这个框框&#xff0c;并不管里面的内容 public void start(Stage primaryStage) throws Exception {primaryStage.setScene(new Scene(new Group()));primaryStage.getIcons().add(new Image("/icon/img.png"))…

昇思25天学习打卡营第15天|ResNet50图像分类

学AI还能赢奖品&#xff1f;每天30分钟&#xff0c;25天打通AI任督二脉 (qq.com) ResNet50图像分类 图像分类是最基础的计算机视觉应用&#xff0c;属于有监督学习类别&#xff0c;如给定一张图像(猫、狗、飞机、汽车等等)&#xff0c;判断图像所属的类别。本章将介绍使用ResN…

更改Anki笔记所应用的模板及其所属的牌组

对于Anki中的笔记&#xff0c;录入时总会为它指定模板以及所属的牌组&#xff0c;但是&#xff0c;如果发生教材版本变更&#xff0c;我们可能会用新的模板添加笔记&#xff0c;也会使用新的牌组&#xff0c;但是原来所做的笔记中也有一些完全可以继续使用&#xff0c;如果可以…

超详细的 C++中的封装继承和多态的知识总结<1.封装与继承>

引言 小伙伴们都知道C面向对象难&#xff0c;可是大家都知道&#xff0c;这个才是C和C的真正区别的地方&#xff0c;也是C深受所有大厂喜爱的原因&#xff0c;它的原理更接近底层&#xff0c;它的逻辑更好&#xff0c;但是学习难度高&#xff0c;大家一定要坚持下来呀&#xff…