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

编辑推荐精选

Keevx

Keevx

AI数字人视频创作平台

Keevx 一款开箱即用的AI数字人视频创作平台,广泛适用于电商广告、企业培训与社媒宣传,让全球企业与个人创作者无需拍摄剪辑,就能快速生成多语言、高质量的专业视频。

即梦AI

即梦AI

一站式AI创作平台

提供 AI 驱动的图片、视频生成及数字人等功能,助力创意创作

扣子-AI办公

扣子-AI办公

AI办公助手,复杂任务高效处理

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

TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
蛙蛙写作

蛙蛙写作

AI小说写作助手,一站式润色、改写、扩写

蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。

AI辅助写作AI工具蛙蛙写作AI写作工具学术助手办公助手营销助手AI助手
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

下拉加载更多