OpenHayStack est un framework pour suivre les appareils Bluetooth personnels via Massive Find mon réseau d'Apple. Utilisez-le pour créer vos propres balises de suivi que vous pouvez ajouter à des objets physiques (clés, sacs à dos, ...) ou l'intégrer dans d'autres appareils compatibles Bluetooth tels que les ordinateurs portables.

OpenHayStack est une application qui vous permet de créer vos propres accessoires suivis par Recherchez mon réseau d'Apple. Tout ce dont vous avez besoin est un Mac et un BBC Micro: Bit ou tout autre appareil compatible Bluetooth. En utilisant l'application, vous pouvez suivre vos accessoires n'importe où sur Terre sans couverture cellulaire. Les iPhones à proximité découvriront vos accessoires et téléchargeront leur emplacement sur les serveurs d'Apple lorsqu'ils ont une connexion réseau.
OpenHaystack est le résultat de l'ingénierie inverse et de l'analyse de la sécurité des travaux d'Apple Find My Network (ou la recherche hors ligne ). Au laboratoire de réseautage mobile sécurisé de Tu Darmstadt, nous avons commencé à analyser la recherche hors ligne après son annonce initiale en juin 2019. Nous avons identifié comment les appareils Apple peuvent être trouvés par les appareils iPhones, même lorsqu'ils sont hors ligne à travers ce travail. L'ensemble du système est une combinaison intelligente de publicités Bluetooth, de cryptographie à clé publique et d'une base de données centrale de rapports de localisation cryptés. Nous avons divulgué une spécification des parties fermées de la constatation hors ligne et effectué une analyse complète de sécurité et de confidentialité. Nous avons trouvé deux vulnérabilités distinctes. La plus grave, qui a permis à une application malveillante d'accéder aux données de localisation, a été corrigé par Apple (CVE-2020-9986). Pour plus d'informations sur l'analyse de la sécurité, veuillez lire notre article. Depuis sa sortie, nous avons reçu pas mal de presse et de couverture médiatique.
OpenHayStack est un logiciel expérimental. Le code n'est pas testé et incomplet. Par exemple, les accessoires OpenHayStack utilisant notre micrologiciel diffusent une clé publique fixe et, par conséquent, sont suivis par d'autres appareils à proximité (cela pourrait changer dans une version future). OpenHaystack n'est pas affilié ou approuvé par Apple Inc.
OpenHaystack se compose de deux composants. Tout d'abord, nous fournissons une application macOS qui peut afficher le dernier emplacement signalé de vos appareils Bluetooth personnels. Deuxièmement, l'image du firmware permet aux appareils Bluetooth de diffuser des balises qui les rendent découvrables par iPhones.
OpenHaystack nécessite MacOS 11 (Big Sur).
L'application OpenHayStack nécessite un plugin personnalisé pour Apple Mail. Il est utilisé pour télécharger des rapports de localisation à partir des serveurs d'Apple via une API privée (explication technique: Le plugin hérite des droits d'Apple Mail requis pour utiliser cette API). Par conséquent, la procédure d'installation est légèrement différente et vous oblige à désactiver temporairement le gardien. Notre plugin n'accède à aucune autre donnée privée telle que les e-mails (voir le code source).
~/Library/Mail/Bundle .sudo spctl --master-disable , qui désactivera Gatekeeper et permettra à notre plugin Apple Mail d'exécuter.sudo defaults write "/Library/Preferences/com.apple.mail" EnableBundles 1sudo spctl --master-enable , qui permettra à nouveau Gatekeeper.Ajout d'un nouvel accessoire. Pour créer un nouvel accessoire, il vous suffit de saisir un nom et de sélectionner éventuellement une icône appropriée et une couleur. L'application génère ensuite une nouvelle paire de clés qui est utilisée pour crypter et déchiffrer les rapports de localisation. La clé privée est stockée dans le trousseau de votre Mac.
Déploier sur l'appareil. Connectez un périphérique pris en charge via USB à votre Mac et appuyez sur le bouton Déployer à côté du nom de l'accessoire et choisissez le correspondant. Au lieu d'utiliser le déploiement intégré d'OpenHayStack, vous pouvez également copier la clé publique utilisée pour la publicité (clic droit sur l'accessoire) et la déployer manuellement.
Afficher les emplacements des périphériques. Cela peut prendre jusqu'à 30 minutes jusqu'à ce que vous verrez le premier rapport de localisation sur la carte du côté droit. La carte affichera toujours tous les emplacements les plus récents de vos articles. Vous pouvez cliquer sur chaque élément pour vérifier lorsque la dernière mise à jour a été reçue. En cliquant sur le bouton Recharger, vous pouvez mettre à jour les rapports de localisation.
Nous expliquons brièvement le système de recherche hors ligne d'Apple (alias trouver mon réseau ). Veuillez vous référer à la spécification d'accessoires de notre animal de compagnie et de l'Apple pour plus de détails. Nous fournissons un aperçu schématique (de notre article) et expliquons comment nous intégrons les différentes étapes d'OpenHaystack ci-dessous.

Pour utiliser Apple Find My Network, nous générons une paire de clés public-privée sur une courbe elliptique (P-224). La clé privée reste sur le Mac en toute sécurité stocké dans le trousseau, et la clé publique est déployée sur l'accessoire, par exemple, un micro: bit attaché.
En bref, les accessoires diffusent la clé publique comme des publicités Bluetooth Low Energy (BLE) (voir le firmware). Les iPhones à proximité ne pourront pas distinguer nos accessoires d'un appareil Apple authentique ou d'un accessoire certifié.
Lorsqu'un iPhone à proximité reçoit une publicité BLE, l'iPhone récupère son emplacement actuel via GPS, le crypte en utilisant la clé publique à partir de l'annonce et télécharge le rapport chiffré au serveur d'Apple. Tous les iPhones sur iOS 13 ou plus récents le font par défaut. OpenHaystack n'est pas impliqué dans cette étape.
Apple ne sait pas quels emplacements cryptés appartiennent à quel compte ou appareil Apple. Par conséquent, chaque utilisateur d'Apple peut télécharger n'importe quel rapport de localisation tant qu'il connaît la clé publique correspondante. Ce n'est pas un problème de sécurité: tous les rapports sont cryptés de bout en bout et ne peuvent être déchiffrés que si l'on connaît la clé privée correspondante (stockée dans le trousseau). Nous tirons parti de cette fonctionnalité pour télécharger les rapports d'Apple qui ont été créés pour nos accessoires OpenHayStack. Nous utilisons nos clés privées pour décrypter les rapports de localisation et afficher le plus récent sur la carte.
Apple protège sa base de données contre l'accès arbitraire en obligeant un utilisateur Apple authentifié à télécharger des rapports de localisation. Nous utilisons notre plugin Apple Mail, qui fonctionne avec des privilèges élevés, pour accéder aux informations d'authentification requises. L'application OpenHaystack communique avec le plugin lors du téléchargement des rapports. C'est pourquoi vous devez garder le courrier ouvert lors de l'utilisation d'OpenHaystack.
En principe, n'importe quel périphérique Bluetooth peut être transformé en un accessoire OpenHayStack qui est suivi via Find My Network d'Apple. Actuellement, nous fournissons une méthode de déploiement pratique de notre OpenHaystack Firmwares pour un petit nombre d'appareils intégrés (voir le tableau ci-dessous). Nous prenons également en charge les périphériques Linux via notre script HCI générique. N'hésitez pas à porter OpenHaystack vers d'autres appareils qui prennent en charge Bluetooth à faible énergie en fonction du code source de notre firmware et des spécifications de notre article. Veuillez partager vos résultats avec nous!
| Plate-forme | Testé sur | Déployer via l'application | Commentaire |
|---|---|---|---|
| Nordique nrf51 | BBC Micro: Bit V1 | ✓ | Ne prend en charge que NRF51822 pour le moment (voir le numéro 6). |
| Espressif ESP32 | SP32-WORMOR, ESP32-WROVER | ✓ | Le déploiement peut prendre jusqu'à 3 minutes. Nécessite Python 3. Merci @fhessel . |
| Linux HCI | Raspberry Pi 4 avec Raspbian | Devrait prendre en charge n'importe quelle machine Linux. |

OpenHaystack Mobile est une réimplémentation complète de l'application OpenHaystack MacOS pour les smartphones. L'application offre les mêmes fonctionnalités pour créer et suivre les accessoires et vise à augmenter la convivialité, en particulier pour les nouveaux utilisateurs. Contrairement à l'application macOS, les rapports de localisation ne peuvent pas être récupérés directement sur le smartphone, de sorte que l'application nécessite un serveur proxy hébergé sur Mac Hardware pour accéder à la recherche de mon réseau. Le serveur proxy est accessible sur un réseau par plusieurs utilisateurs simultanément.
Pour vous connecter à votre serveur proxy, définissez l'URL correcte dans: OpenHaystack-Mobile / Lib / Findmy / Reports_fetcher.dart


OpenHayStack Mobile est construit avec le framework Flutter multiplateforme et fonctionne actuellement sur Android et iOS. Plus d'informations sur l'application et les instructions d'utilisation peuvent être trouvées dans le dossier OpenHaystack-Mobile de ce référentiel.
OpenHaystack est autorisé en vertu de la licence publique générale GNU Affero V3.0 .