Project Icon

openhaystack

开源框架实现基于Apple Find My网络的蓝牙设备追踪

OpenHaystack是一个开源框架,允许创建可通过Apple Find My网络追踪的自定义配件。该项目利用附近iPhone的蓝牙功能和Apple的加密位置报告系统,实现全球范围内的设备追踪。它包含一个macOS应用程序用于显示设备位置,以及使蓝牙设备可被iPhone发现的固件。OpenHaystack提供了一种无需蜂窝网络覆盖即可追踪个人物品的方法。

OpenHaystack应用图标 OpenHaystack

OpenHaystack是一个通过Apple庞大的查找网络来追踪个人蓝牙设备的框架。您可以使用它创建自己的追踪标签,将其附加到物理物品上(钥匙圈、背包等),或将其集成到其他具有蓝牙功能的设备中,如笔记本电脑。

应用截图

目录

什么是OpenHaystack?

OpenHaystack是一个应用程序,允许您创建自己的配件,这些配件可以被Apple的查找网络追踪。您只需要一台Mac和一个BBC micro:bit或任何其他具有蓝牙功能的设备。 通过使用该应用,您可以在地球上的任何地方追踪您的配件,无需蜂窝网络覆盖。附近的iPhone会发现您的配件,并在有网络连接时将它们的位置上传到Apple的服务器。

历史

OpenHaystack是对Apple的查找网络(或离线查找)进行逆向工程和安全分析工作的结果。我们达姆施塔特工业大学的安全移动网络实验室在2019年6月首次公布后开始分析离线查找。通过这项工作,我们确定了Apple设备如何被iPhone设备找到,即使它们处于离线状态。整个系统是蓝牙广播、公钥加密和加密位置报告中央数据库的巧妙组合。我们披露了离线查找封闭部分的规范,并进行了全面的安全和隐私分析。 我们发现了两个明显的漏洞。最严重的一个允许恶意应用程序访问位置数据,已经被Apple修复(CVE-2020-9986)。 有关安全分析的更多信息,请阅读我们的论文。 自发布以来,我们收到了相当多的新闻和媒体报道

免责声明

OpenHaystack是实验性软件。代码未经测试且不完整。例如,使用我们固件的OpenHaystack配件会广播固定的公钥,因此可能被附近的其他设备追踪(这可能在未来版本中改变)。OpenHaystack与Apple Inc.没有关联,也未得到其认可。

如何使用OpenHaystack?

OpenHaystack由两个组件组成。首先,我们提供了一个macOS应用程序,可以显示个人蓝牙设备的最后报告位置。其次,固件镜像使蓝牙设备能够广播信标,使它们可被iPhone发现。

系统要求

OpenHaystack需要macOS 11(Big Sur)。

安装

OpenHaystack应用程序需要Apple Mail的自定义插件。它用于通过私有API从Apple的服务器下载位置报告(技术解释:插件继承了Apple Mail使用此API所需的授权)。 因此,安装过程略有不同,需要您暂时禁用Gatekeeper。 我们的插件不会访问任何其他私人数据,如电子邮件(参见源代码)。

  1. 从我们的GitHub页面下载预编译的二进制发布版。
    *替代方案:*通过Xcode从源代码构建应用程序。
  2. 打开OpenHaystack。这将要求您在~/Library/Mail/Bundle中安装Mail插件。
  3. 打开终端并运行sudo spctl --master-disable,这将禁用Gatekeeper并允许我们的Apple Mail插件运行。
  4. 打开Apple Mail。转到偏好设置通用管理插件...,并激活OpenHaystackMail.mailbundle旁边的复选框。
    • 如果*管理插件...*按钮没有出现。在终端中运行此命令sudo defaults write "/Library/Preferences/com.apple.mail" EnableBundles 1
  5. 允许访问并重启Mail。
  6. 打开终端并输入sudo spctl --master-enable,这将重新启用Gatekeeper。

使用方法

添加新配件。 要创建新配件,只需为其输入名称,并可选择选择合适的图标和颜色。然后,应用程序会生成一个新的密钥对,用于加密和解密位置报告。私钥存储在Mac的钥匙串中。

部署到设备。 通过USB将支持的设备连接到Mac,然后点击配件名称旁边的部署按钮,并选择相应的设备。 除了使用OpenHaystack的集成部署,您还可以复制用于广播的公钥(右键点击配件),并手动部署。

显示设备位置。 可能需要30分钟才能在右侧的地图上看到第一个位置报告。地图将始终显示所有物品的最新位置。您可以点击每个物品以查看最后更新的时间。 通过点击刷新按钮,您可以更新位置报告。

Apple的查找网络如何工作?

我们简要解释Apple的离线查找系统(又称查找网络)。更多详细信息请参阅我们的PETS论文和Apple的配件规范。我们提供了一个示意图概述(来自我们的论文),并解释了我们如何在OpenHaystack中整合不同的步骤。

查找网络概述

配对(1)

要使用Apple的查找网络,我们在椭圆曲线(P-224)上生成公私密钥对。私钥安全地存储在Mac的钥匙串中,公钥部署在配件上,例如连接的micro:bit。

丢失(2)

简而言之,配件以蓝牙低功耗(BLE)广播的形式广播公钥(参见固件)。 附近的iPhone将无法区分我们的配件和正品Apple设备或认证配件。

发现(3)

当附近的iPhone接收到BLE广播时,iPhone会通过GPS获取其当前位置,使用广播中的公钥加密位置,并将加密的报告上传到Apple的服务器。 所有运行iOS 13或更高版本的iPhone默认都会执行此操作。OpenHaystack不参与此步骤。

搜索(4)

Apple 不知道哪些加密位置属于哪个 Apple 账户或设备。因此,只要知道相应的公钥,任何 Apple 用户都可以下载任何位置报告。这并不是安全问题:所有报告都是端到端加密的,除非知道相应的私钥(存储在钥匙串中),否则无法解密。我们利用这个特性下载 Apple 为我们的 OpenHaystack 配件创建的报告。我们使用私钥解密位置报告,并在地图上显示最新的一个。

Apple 通过要求经过身份验证的 Apple 用户下载位置报告来保护其数据库免受任意访问。 我们使用具有提升权限的 Apple Mail 插件来访问所需的身份验证信息。OpenHaystack 应用程序在下载报告时与插件通信。这就是为什么你在使用 OpenHaystack 时需要保持 Mail 开启的原因。

如何追踪其他蓝牙设备?

原则上,任何蓝牙设备都可以被转换为可通过 Apple 的查找我的网络追踪的 OpenHaystack 配件。 目前,我们为少量嵌入式设备提供了方便的 OpenHaystack 固件部署方法(见下表)。我们还通过通用 HCI 脚本支持 Linux 设备。 欢迎根据我们固件的源代码和论文中的规范,将 OpenHaystack 移植到其他支持蓝牙低功耗的设备上。请与我们分享你的成果!

平台测试设备通过应用部署备注
Nordic nRF51BBC micro:bit v1目前仅支持 nRF51822 (见问题 #6)。
Espressif ESP32SP32-WROOM, ESP32-WROVER部署可能需要长达 3 分钟。需要 Python 3。感谢 @fhessel
Linux HCI搭载 Raspbian 的树莓派 4应该支持任何 Linux 机器。

设置

OpenHaystack 移动版

OpenHaystack 移动版是 OpenHaystack macOS 应用程序针对智能手机的完整重新实现。该应用提供相同的功能来创建和追踪配件,旨在提高可用性,特别是对新用户而言。与 macOS 应用不同,位置报告无法直接在智能手机上获取,因此该应用需要一个托管在 Mac 硬件上的代理服务器来访问查找我的网络。多个用户可以同时通过网络访问代理服务器。

要连接到你的代理服务器,请在以下文件中设置正确的 URL:openhaystack-mobile/lib/findMy/reports_fetcher.dart

OpenHaystack 移动版使用跨平台的 Flutter 框架 构建,目前可在 Android 和 iOS 上运行。有关该应用和使用说明的更多信息可以在此存储库的 openhaystack-mobile 文件夹中找到。

作者

参考文献

  • Alexander Heinrich, Milan Stute, Tim Kornhuber, Matthias Hollick. 谁能"找到我的"设备?Apple 基于众包的蓝牙位置追踪系统的安全性和隐私性。 隐私增强技术论文集 (PoPETs), 2021。doi:10.2478/popets-2021-0045 📄 论文 📄 预印本
  • Alexander Heinrich, Milan Stute, 和 Matthias Hollick. 演示:OpenHaystack:通过 Apple 庞大的查找我的网络追踪个人蓝牙设备的框架。 第 14 届 ACM 无线和移动安全与隐私会议 (WiSec '21), 2021。
  • Tim Kornhuber. Apple 基于众包的位置追踪系统分析。 达姆施塔特工业大学, 硕士论文, 2020。
  • Apple Inc. 查找我的网络配件规范 – 开发者预览版 – 版本 R3。 2020。📄 下载

许可证

OpenHaystack 根据 GNU Affero 通用公共许可证 v3.0 授权。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号