Send My:利用Apple Find My网络实现离线数据传输
项目介绍
Send My 是一个创新的开源项目,它允许你在没有互联网连接的设备上上传任意数据,通过利用Apple的Find My网络来实现这一目标。该项目通过蓝牙低功耗(BLE)技术广播数据,并由附近的Apple设备转发,最终将数据上传到Apple的后端服务器。用户可以通过Mac设备检索并解码这些数据。
项目技术分析
Send My 项目由两部分组成:
- 固件(Firmware):基于ESP32的固件,将微控制器转变为串行(仅上传)调制解调器。固件负责将数据编码到广播的公钥中,并通过BLE广播这些数据。
- 数据获取器(DataFetcher):一个macOS应用程序,用于检索、解码和显示上传的数据。该应用程序依赖于OpenHaystack项目,通过AppleMail插件与Apple的后端服务器通信,获取并解码数据。
项目及技术应用场景
Send My 项目适用于以下场景:
- 离线数据传输:在没有互联网连接的环境中,如偏远地区或特定工业环境中,需要将数据从设备上传到云端。
- 隐私保护:通过利用Apple的Find My网络,数据传输过程中不直接暴露在公共互联网上,增强了数据的安全性和隐私性。
- 物联网设备:适用于需要定期上传数据的物联网设备,尤其是在网络连接不稳定或不可用的情况下。
项目特点
- 创新的数据传输方式:利用Apple的Find My网络,通过BLE广播和Apple设备的转发,实现离线数据上传。
- 开源且灵活:基于OpenHaystack项目,代码完全开源,用户可以根据需求进行定制和扩展。
- 易于使用:固件和数据获取器都提供了详细的文档和使用指南,用户可以轻松上手。
- 安全性高:数据传输过程中不直接暴露在公共互联网上,通过Apple的后端服务器进行中转,增强了数据的安全性。
如何使用
调制解调器(Modem)
- 修改
modem_id
(可选修改data_to_send
默认消息)。 - 按照固件README.md中的说明进行固件烧录。
- 启动后,ESP32将立即开始循环广播默认消息,直到通过串行接口接收到新消息。用户可以使用Arduino IDE的串行监视器发送消息。
数据获取器(DataFetcher)
- 安装OpenHaystack及其AppleMail插件,具体步骤参考OpenHaystack安装指南。
- 运行OpenHaystack并确保AppleMail插件指示器为绿色。
- 运行DataFetcher OFFetchReport应用程序(可以使用发布版本或通过Xcode自行构建)。
- 输入之前在ESP固件中设置的4字节
modem_id
作为十六进制数字。 - 获取上传的消息。
参考资料
- 博客文章
- OpenHaystack项目
- Alexander Heinrich, Milan Stute, Tim Kornhuber, Matthias Hollick. Who Can Find My Devices? Security and Privacy of Apple's Crowd-Sourced Bluetooth Location Tracking System. Proceedings on Privacy Enhancing Technologies (PoPETs), 2021.
许可证
Send My 项目采用GNU Affero通用公共许可证v3.0。
通过Send My,你可以在没有互联网连接的情况下,安全、高效地传输数据。无论是在偏远地区的数据采集,还是在物联网设备的数据上传,Send My 都能为你提供可靠的解决方案。快来尝试吧!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考