openhaystack

openhaystack

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

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

位置报告OpenHaystack苹果生态系统Github开源项目Find My network蓝牙追踪

<img src="https://yellow-cdn.veclightyear.com/835a84d5/aecebd8f-96a9-4b99-ace3-691c2e25f872.png" alt="OpenHaystack应用图标" height=42 width=42 valign=bottom /> OpenHaystack

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

<img src="https://yellow-cdn.veclightyear.com/835a84d5/7f2872e3-9237-41b8-8455-803a59417648.png" alt="应用截图" width="701" />

目录

什么是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. 从我们的<a href="https://github.com/seemoo-lab/openhaystack/releases">GitHub页面</a>下载预编译的二进制发布版。
    *替代方案:*通过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

<img width="300" src="https://yellow-cdn.veclightyear.com/835a84d5/72b2fdc3-4ca5-4519-8571-471bf674d0d1.png"> <img width="300" src="https://yellow-cdn.veclightyear.com/835a84d5/f26e364d-4f62-433d-ae0a-c48aa9eeb8b9.png">

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 授权。

编辑推荐精选

音述AI

音述AI

全球首个AI音乐社区

音述AI是全球首个AI音乐社区,致力让每个人都能用音乐表达自我。音述AI提供零门槛AI创作工具,独创GETI法则帮助用户精准定义音乐风格,AI润色功能支持自动优化作品质感。音述AI支持交流讨论、二次创作与价值变现。针对中文用户的语言习惯与文化背景进行专门优化,支持国风融合、C-pop等本土音乐标签,让技术更好地承载人文表达。

QoderWork

QoderWork

阿里Qoder团队推出的桌面端AI智能体

QoderWork 是阿里推出的本地优先桌面 AI 智能体,适配 macOS14+/Windows10+,以自然语言交互实现文件管理、数据分析、AI 视觉生成、浏览器自动化等办公任务,自主拆解执行复杂工作流,数据本地运行零上传,技能市场可无限扩展,是高效的 Agentic 生产力办公助手。

lynote.ai

lynote.ai

一站式搞定所有学习需求

不再被海量信息淹没,开始真正理解知识。Lynote 可摘要 YouTube 视频、PDF、文章等内容。即时创建笔记,检测 AI 内容并下载资料,将您的学习效率提升 10 倍。

AniShort

AniShort

为AI短剧协作而生

专为AI短剧协作而生的AniShort正式发布,深度重构AI短剧全流程生产模式,整合创意策划、制作执行、实时协作、在线审片、资产复用等全链路功能,独创无限画布、双轨并行工业化工作流与Ani智能体助手,集成多款主流AI大模型,破解素材零散、版本混乱、沟通低效等行业痛点,助力3人团队效率提升800%,打造标准化、可追溯的AI短剧量产体系,是AI短剧团队协同创作、提升制作效率的核心工具。

seedancetwo2.0

seedancetwo2.0

能听懂你表达的视频模型

Seedance two是基于seedance2.0的中国大模型,支持图像、视频、音频、文本四种模态输入,表达方式更丰富,生成也更可控。

nano-banana纳米香蕉中文站

nano-banana纳米香蕉中文站

国内直接访问,限时3折

输入简单文字,生成想要的图片,纳米香蕉中文站基于 Google 模型的 AI 图片生成网站,支持文字生图、图生图。官网价格限时3折活动

扣子-AI办公

扣子-AI办公

职场AI,就用扣子

AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!

堆友

堆友

多风格AI绘画神器

堆友平台由阿里巴巴设计团队创建,作为一款AI驱动的设计工具,专为设计师提供一站式增长服务。功能覆盖海量3D素材、AI绘画、实时渲染以及专业抠图,显著提升设计品质和效率。平台不仅提供工具,还是一个促进创意交流和个人发展的空间,界面友好,适合所有级别的设计师和创意工作者。

图像生成AI工具AI反应堆AI工具箱AI绘画GOAI艺术字堆友相机AI图像热门
码上飞

码上飞

零代码AI应用开发平台

零代码AI应用开发平台,用户只需一句话简单描述需求,AI能自动生成小程序、APP或H5网页应用,无需编写代码。

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

下拉加载更多