聚焦源代码安全,网罗国内外最新资讯!

编译:奇安信代码卫士团队

上周四,网络安全研究员披露了苹果众源的蓝牙位置追踪系统中的两个设计和实现缺陷,可导致位置相关攻击和对用户过去七天位置历史信息的未授权访问,因此可导致用户被去匿名化。

OWL (Open Wireless Link) 项目(德国达姆施塔特技术大学安全移动网络实验室安全团队)广泛审计后发现了这两个漏洞。OWL 项目此前曾参与苹果的无线生态系统,目的是识别安全问题和隐私问题。

作为对2020年7月2日披露内容的回应,据称苹果已部分解决了这些问题。这些研究员使用自己的数据研究了隐私问题。

Find My 运行原理

苹果设备的 “Find My” 功能使用户嫩巩固轻易地定位到其它苹果设备如 iPhone、iPad、iPod touch、Apple Watch、Mac 或 AirPods 的位置。iOS 14.5 版本会增加更多关于蓝牙追踪设备 (AirTags) 的支持。这些设备附加在钱包等项目中,用于从 Find My app 内部进行追踪。

更有意思的是支持 “Find My” 功能的技术。这项位置追踪功能被称为“离线发现“且出现于2019年,广播苹果设备中来自 BLE (蓝牙低功耗)的信号,允许附近的其它苹果设备可以将位置中继到苹果的服务器中。

换句话说,离线加载使得所有移动设备成为广播信标,通过利用众包的位置跟踪机制(端对端加密和匿名)显式地隐藏了其轨迹,以至于包括苹果在内的任何第三方都无法做到这一点且无法构建关于用户位置的历史信息。通过密钥轮换计划,具体而言是每台设备生成的公钥私钥对,通过编码公钥而发出蓝牙信号。之后这一关键信息通过 iCloud 同步,其它所有苹果设备连接到同一个用户(即 Apple ID)。

附近的 iPhone 或 iPad(和原始的离线设备不相关)得到这一信息,检查自己的位置,之后再将其连同公钥发送到云之前使用之前提到的公钥加密信息。

最后,苹果将所丢设备的加密位置信息发送给通过同样 Apple ID 签名的第二台苹果设备,而机主可以使用 “Find My app” 功能使用相应的私钥解密报告并检索最后已知的位置,而相关设备将公钥的哈希上传以和苹果服务器中的哈希进行匹配。

关联和追踪问题

由于这种方法遵循了公钥加密设置,甚至苹果公司也无法解密位置信息,因为它也并不持有私钥。虽然苹果尚未披露密钥的轮换次数,但滚动的密钥对架构使恶意方难以利用蓝牙信标来追踪用户轨迹。

但 OWL 项目研究员指出,该设计可使苹果将不同机主的位置关联(如他们的位置由同一个 finder 设备提供),从而实际上可使苹果公司构建社交图形。

研究人员表示,“执法部门可利用该问题将政治参与人员的身份去匿名化,即使参与人员将手机设为飞行模式也不例外。恶意 macOS 申请可检索并解密所有用户所有设备上最近7天的位置报告,因为滚动的广告密钥以明文形式存储在文件系统上。“

换句话说,macOS Catalina 漏洞 (CVE-2020-9986) 可使攻击者访问解密密钥,下载并加密 Find My 网络提交的位置报告,并最终高度准确地定位并是被受害者。该弱点已由苹果通过“改进访问限制”在2020年11月修复(发布版本 macOS 10.15.7)。

这起调查的第二个结果是,旨在让任意用户创建 “AirTag” 的 app “OpenHaystack” ,该框架可使用户通过苹果大规模的 Find My 网络追踪蓝牙设备创建自己的追踪标记,以附加在物理对象或者集成到其它具有蓝牙功能的设备。

OWL 项目研究员还通过逆向工程,从苹果的闭源协议中发现多个缺陷。2019年5月,研究员发现了AWDL专有网状网络协议中的漏洞,它可使攻击者跟踪用户、导致设备崩溃,甚至通过中间人攻击拦截设备之间传输的文件。随后谷歌 Project Zero 团队的研究员 Ian Beer 借此在去年发现了一个严重的可蠕虫iOS 漏洞,使远程攻击者可通过 WiFi 完全控制任何苹果设备。

推荐阅读

苹果公司被曝压下神秘的 iCloud 隐私泄漏bug

微软必应后台服务器泄露查询请求和位置等信息

用过推特的地理位置服务?你摊上大事儿喽

原文链接

https://thehackernews.com/2021/03/bug-in-apples-find-my-feature-couldve.html

题图:Pixabay License

本文由奇安信代码卫士编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。

奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的

产品线。

 觉得不错,就点个 “在看” 或 "赞” 吧~

苹果 “Find My” 功能中的漏洞可暴露用户的位置信息相关推荐

  1. vue项目中使用高德地图获取用户当前位置信息

    项目背景是用vue开发的小程序,需要获取当前用户的地理位置,折腾了好久终于弄好了,今天分享给大家,话不多说,let's go! 第一步:在index.html页面引入高德地图 <script t ...

  2. TWINCAT3中使用FIFO收集三轴的位置信息,XML文件的生成,解决常见报错

    TWINCAT3中使用FIFO收集三轴的位置信息,XML文件的生成,解决常见报错 1.首先到官网下载程序 很多时候我们用twincat不具备硬件条件,需要用到虚轴进行测试,但是对于初学者来说,用twi ...

  3. Python 飞机大战游戏中 获取被击中飞机的坐标位置信息

    Python 飞机大战游戏中 获取被击中飞机的坐标位置信息 在参考现有的飞机大战游戏代码,写第一个python游戏,子弹击中飞机后,飞机消失,想着如果能有爆照效果就好了. 于是新建了一个爆炸效果的sp ...

  4. 谷歌爆苹果 Image I/O 存重大漏洞,无辜用户躺枪

    作者 | 马超 责编 | 夕颜 封面图 | CSDN付费下载自视觉中国 出品 | CSDN(ID:CSDNnews) 4月28日,谷歌旗下的Project Zero信息安全团队公布了其在苹果公司的Im ...

  5. 苹果iOS6新功能剖析 十一项暴强升级!

    http://pcedu.pconline.com.cn/ios/1206/2822997_all.html 1 苹果iOS6系统 为中国用户优化 回顶部 苹果12日凌晨在WWDC2012大会上,对外 ...

  6. android获取当前位置经纬度,Android中通过GPS或NetWork获取当前位置的经纬度

    今天在Android项目中要实现一个通过GPS或NetWork来获取当前移动终端设备的经纬度功能.要实现该功能要用到Android Framework 中的 LocationManager 类.下面我 ...

  7. android自动获取位置,Android中获取当前位置信息

    这篇教程主要介绍了在Android平台上如何使用服务完成定位功能.众所周知,Android设备的当前位置信息,对开发创新性App.解决人们日常生活问题有极大帮助.在Android平台开发定位相关的应用 ...

  8. uniapp开发获取用户位置信息功能解析

    uniapp开发获取用户位置信息功能解析 问题描述 uniapp相关接口 1.uni.authorize 提前向用户发起授权请求. 接口描述及demo演示 2.uni.getLocation 获取当前 ...

  9. android黑科技系列——微信定位聊天记录中照片的位置信息插件开发详解

    一.前言 最近关于微信中,朋友之间发送原图就可能暴露你的位置信息,其实这个问题不在于微信,微信是为了更好的体验效果,才有发送原图功能,而对于拍照,发送普通图片微信后台都会过滤图片的exif信息,这样就 ...

最新文章

  1. python统计csv行数_对Python 多线程统计所有csv文件的行数方法详解
  2. jQuery 遍历
  3. 典型的简单权限分配系统方法介绍
  4. python【进阶】5.一等函数(注销)
  5. 爬虫-请求类对象的创建-Request类
  6. linux密码加密方式 2y,手动生成Linux密码(/etc/shadow)
  7. html、javascript、url特殊字符的转义诠释及使用方法详解
  8. 非确定型图灵机(转移函数的选择)
  9. gifimageview 大小不受控制_大小不变,提示换药?别紧张!三个案例解读“肿瘤大小与疗效关系”...
  10. 计算机上64位数和32位数,一不小心就蓝屏?安装win10系统和软件,你选32位还是64位?...
  11. eXosip中Event事件学习笔记
  12. Ubuntu16 下载软件Aria2 全局配置方法(最全组合)
  13. while 循环语句的使用
  14. 选择适合自己的测试广度和深度
  15. 用C#实现汉字转化为拼音
  16. Mac中Caps Lock(大写锁定键)为Control键(Emacs解放小拇指.)
  17. JQuery 的click失效,无法触发
  18. leetcode 1662. Check If Two String Arrays are Equivalent(python)
  19. 纸壳CMS可视化建站系统创建多语言网站
  20. 海店湾:不尊重质量,就如同自掘坟墓,无印良品,真的要凉凉了!

热门文章

  1. C# Learning—Step By Step(9)
  2. Android Activity界面切换添加动画特效 (转载修改)
  3. Docker的主要作用
  4. bzoj1724[Usaco2006 Nov]Fence Repair 切割木板*
  5. Linux命令之reset - 终端屏幕混乱的终结者
  6. PyQt4日历部件QXalendarWidget
  7. struts2+json(3)
  8. Spring+Hibernate整合Hessian
  9. java 类复制构造方法_java面向对象入门(3)-java构造方法
  10. 周边pd是什么意思_肿瘤百问百答(六)关于胃癌的PD-1抗体治疗,你应该知道些什么?...