OpenHayStack es un marco para rastrear dispositivos Bluetooth personales a través de la red de Find My Network de Apple. Úselo para crear sus propias etiquetas de seguimiento que puede agregar a objetos físicos (llave, mochilas, ...) o integrarlo en otros dispositivos con capacidad Bluetooth, como cuadernos.

OpenHayStack es una aplicación que le permite crear sus propios accesorios que son rastreados por Find My Network de Apple. Todo lo que necesita es un Mac y un BBC Micro: Bit o cualquier otro dispositivo con capacidad de Bluetooth. Al usar la aplicación, puede rastrear sus accesorios en cualquier lugar de la Tierra sin cobertura celular. Los iPhones cercanos descubrirán sus accesorios y cargarán su ubicación a los servidores de Apple cuando tengan una conexión de red.
OpenHayStack es el resultado del trabajo de análisis de seguridad y análisis de seguridad de la red Find My Network de Apple (o hallazgo fuera de línea ). En el Secure Mobile Networking Lab de Tu Darmstadt comenzamos a analizar el hallazgo fuera de línea después de su anuncio inicial en junio de 2019. Identificamos cómo los dispositivos Apple pueden encontrar los dispositivos iPhones, incluso cuando están fuera de línea a través de este trabajo. Todo el sistema es una combinación inteligente de anuncios Bluetooth, criptografía de clave pública y una base de datos central de informes de ubicación cifrados. Deglamos una especificación de las partes cerradas del hallazgo fuera de línea y realizamos un análisis integral de seguridad y privacidad. Encontramos dos vulnerabilidades distintas. La más severa, que permitió una aplicación maliciosa para acceder a los datos de ubicación, Mientras tanto, ha sido fijado por Apple (CVE-2020-9986). Para obtener más información sobre el análisis de seguridad, lea nuestro artículo. Desde su lanzamiento, recibimos bastante cobertura de prensa y medios.
OpenHayStack es un software experimental. El código no ha sido probado e incompleto. Por ejemplo, los accesorios OpenHayStack utilizando nuestro firmware transmiten una clave pública fija y, por lo tanto, son rastreables por otros dispositivos en proximidad (esto podría cambiar en una versión futura). OpenHayStack no está afiliado o respaldado por Apple Inc.
OpenHayStack consta de dos componentes. Primero, proporcionamos una aplicación MacOS que puede mostrar la última ubicación informada de sus dispositivos Bluetooth personales. En segundo lugar, la imagen de firmware permite que los dispositivos Bluetooth transmitan balizas que las hacen descubrir con iPhones.
OpenHayStack requiere MacOS 11 (Big Sur).
La aplicación OpenHayStack requiere un complemento personalizado para Apple Mail. Se utiliza para descargar informes de ubicación de los servidores de Apple a través de una API privada (explicación técnica: el complemento hereda los derechos de Apple Mail requeridos para usar esta API). Por lo tanto, el procedimiento de instalación es ligeramente diferente y requiere que deshabilite temporalmente Gatekeeper. Nuestro complemento no accede a ningún otro datos privados, como correos electrónicos (consulte el código fuente).
~/Library/Mail/Bundle .sudo spctl --master-disable , que deshabilitará Gatekeeper y permitirá que nuestro complemento Apple Mail se ejecute.sudo defaults write "/Library/Preferences/com.apple.mail" EnableBundles 1sudo spctl --master-enable , que permitirá a Gatekeeper nuevamente.Agregar un nuevo accesorio. Para crear un nuevo accesorio, solo necesita ingresar un nombre y opcionalmente seleccionar un icono adecuado y un color. Luego, la aplicación genera un nuevo par de claves que se utiliza para cifrar y descifrar los informes de ubicación. La clave privada se almacena en el llavero de su Mac.
Desplegar en el dispositivo. Conecte un dispositivo compatible a través de USB a su Mac y presione el botón de implementación junto al nombre del accesorio y elija el correspondiente. En lugar de utilizar la implementación integrada de OpenHayStack, también puede copiar la clave pública utilizada para la publicidad (haga clic derecho en el accesorio) e implementarla manualmente.
Mostrar ubicaciones de dispositivos. Puede tomar hasta 30 minutos hasta que vea el primer informe de ubicación en el mapa en el lado derecho. El mapa siempre mostrará todas las ubicaciones más recientes de sus artículos. Puede hacer clic en cada elemento para verificar cuándo se recibió la última actualización. Al hacer clic en el botón Recargar, puede actualizar los informes de ubicación.
Explicamos brevemente el sistema de búsqueda fuera de línea de Apple (también conocido como Find My Network ). Consulte nuestro papel de mascotas y la especificación de accesorios de Apple para obtener más detalles. Proporcionamos una descripción esquemática (de nuestro artículo) y explicamos cómo integramos los diferentes pasos en OpenHaystack a continuación.

Para usar la red Find My Network de Apple, generamos un par de claves públicas-privadas en una curva elíptica (P-224). La clave privada permanece en la Mac almacenada de forma segura en el llavero, y la clave pública se implementa en el accesorio, por ejemplo, un micro: bit adjunto.
En resumen, los accesorios transmiten la clave pública como anuncios de Bluetooth Low Energy (BLE) (ver firmware). Los iPhones cercanos no podrán distinguir nuestros accesorios de un dispositivo Apple genuino o accesorio certificado.
Cuando un iPhone cercano recibe un anuncio BLE, el iPhone obtiene su ubicación actual a través de GPS, lo cita usando la clave pública del anuncio y carga el informe encriptado al servidor de Apple. Todos los iPhones en iOS 13 o más nuevos hacen esto por defecto. OpenHayStack no está involucrado en este paso.
Apple no sabe qué ubicaciones encriptadas pertenecen a qué cuenta o dispositivo de Apple. Por lo tanto, cada usuario de Apple puede descargar cualquier informe de ubicación siempre que conozca la clave pública correspondiente. Este no es un problema de seguridad: todos los informes están encriptados de extremo a extremo y no se pueden descifrar a menos que se conozca la clave privada correspondiente (almacenada en el llavero). Aprovechamos esta función para descargar los informes de Apple que se han creado para nuestros accesorios OpenHayStack. Utilizamos nuestras claves privadas para descifrar los informes de ubicación y mostrar la más reciente en el mapa.
Apple protege su base de datos contra el acceso arbitrario al requerir que un usuario de Apple autenticado descargue informes de ubicación. Utilizamos nuestro complemento Apple Mail, que se ejecuta con privilegios elevados, para acceder a la información de autenticación requerida. La aplicación OpenHayStack se comunica con el complemento mientras descarga informes. Es por eso que necesita mantener el correo abierto mientras usa OpenHayStack.
En principio, cualquier dispositivo Bluetooth se puede convertir en un accesorio OpenHayStack que sea rastreable a través de la red Find My Network de Apple. Actualmente, proporcionamos un método de implementación conveniente de nuestros firmwares de OpenHayStack para un pequeño número de dispositivos integrados (ver la tabla a continuación). También admitimos dispositivos Linux a través de nuestro script HCI genérico. Siéntase libre de puerto OpenHayStack a otros dispositivos que admiten Bluetooth Low Energy en función del código fuente de nuestro firmware y la especificación en nuestro documento. ¡Comparta sus resultados con nosotros!
| Plataforma | Probado en | Desplegar a través de la aplicación | Comentario |
|---|---|---|---|
| NORDIC NRF51 | BBC Micro: Bit V1 | ✓ | Solo admite NRF51822 en este momento (ver número 6). |
| Espressif ESP32 | SP32-Wroom, ESP32-Wover | ✓ | La implementación puede tomar hasta 3 minutos. Requiere Python 3. Gracias @fhessel . |
| Linux HCI | Raspberry Pi 4 con raspbian | Debe admitir cualquier máquina Linux. |

OpenHayStack Mobile es una reimplementación completa de la aplicación OpenHayStack MacOS para teléfonos inteligentes. La aplicación proporciona la misma funcionalidad para crear y rastrear accesorios y tiene como objetivo aumentar la usabilidad, especialmente para los nuevos usuarios. A diferencia de la aplicación MACOS, los informes de ubicación no se pueden obtener directamente en el teléfono inteligente, por lo que la aplicación requiere un servidor proxy alojado en Mac Hardware para acceder a Find My Network. Se puede acceder al servidor proxy a través de una red por varios usuarios simultáneamente.
Para conectarse a su servidor proxy, establezca la URL correcta en: OpenHayStack-Mobile/lib/findmy/informes_fetcher.dart


OpenHayStack Mobile está construido con el marco de Flutter multiplataforma y actualmente se ejecuta en Android e iOS. Puede encontrar más información sobre la aplicación y las instrucciones de uso en la carpeta OpenHayStack-Mobile de este repositorio.
OpenHayStack tiene licencia bajo la Licencia Pública General de Affero de GNU V3.0 .