OpenHayStack - это структура для отслеживания личных устройств Bluetooth с помощью Massive Apple «Найти мою сеть». Используйте его, чтобы создать свои собственные теги отслеживания, которые вы можете добавить к физическим объектам (Keyrings, рюкзаки, ...) или интегрируйте их в другие устройства, способствующие Bluetooth, такие как ноутбуки.

OpenHayStack - это приложение, которое позволяет создавать свои собственные аксессуары, которые отслеживаются Apple's Find My Network. Все, что вам нужно, это Mac и BBC Micro: Bit или любое другое устройство, способствующее Bluetooth. Используя приложение, вы можете отслеживать свои аксессуары в любом месте на земле без сотового покрытия. Близлежащие iPhone обнаружит ваши аксессуары и загружат их местоположение на серверы Apple, когда у них есть сетевое соединение.
OpenHayStack является результатом обратного инженера и анализа безопасности Apple «Найти мою сеть» (или офлайн-поиск ). Мы в Secure Mobile Networking Lab в Tu Darmstadt начали анализировать автономный вывод после своего первоначального объявления в июне 2019 года. Мы определили, как устройства Apple можно найти устройствами iPhone, даже если они не в автономном режиме. Вся система представляет собой умную комбинацию рекламных объявлений Bluetooth, криптографии с открытым ключом и центральной базы данных о зашифрованных отчетах о местоположении. Мы раскрыли спецификацию закрытых частей автономного поиска и провели всесторонний анализ безопасности и конфиденциальности. Мы нашли две отдельные уязвимости. Наиболее тяжелый, который позволил злонамеренному приложению добраться до данных о местоположении, была зафиксирована Apple (CVE-2020-9986). Для получения дополнительной информации об анализе безопасности, пожалуйста, прочитайте нашу статью. С момента его выпуска мы получили довольно много прессы и освещения в СМИ.
OpenHayStack - это экспериментальное программное обеспечение. Код непроверенный и неполный. Например, аксессуары OpenHayStack с использованием нашего прошивки транслируют фиксированный открытый ключ и, следовательно, отслеживаются другими устройствами в непосредственной близости (это может измениться в будущем выпуске). OpenHayStack не связан и не одобрен Apple Inc.
OpenHayStack состоит из двух компонентов. Во -первых, мы предоставляем приложение MacOS, которое может отображать последнее местоположение ваших личных устройств Bluetooth. Во -вторых, изображение прошивки позволяет устройствам Bluetooth транслировать маяки, которые делают их обнаруженными iPhone.
OpenHayStack требует MacOS 11 (Big Sur).
Приложение OpenHayStack требует пользовательского плагина для Apple Mail. Он используется для загрузки отчетов о местоположении с серверов Apple через частное API (техническое объяснение: плагин унаследовал права Apple Mail, необходимые для использования этого API). Следовательно, процедура установки немного отличается и требует временного отключения привратника. Наш плагин не получает доступ к каким -либо другим частным данным, таким как электронные письма (см. Исходный код).
~/Library/Mail/Bundle .sudo spctl --master-disable , который отключит привратник и позволит нашему плагину Apple Mail работать.sudo defaults write "/Library/Preferences/com.apple.mail" EnableBundles 1sudo spctl --master-enable , который снова позволит привратнику.Добавление нового аксессуара. Чтобы создать новый аксессуар, вам просто нужно ввести имя для него и, необязательно, выберите подходящий значок и цвет. Затем приложение генерирует новую пару ключей, которая используется для шифрования и расшифровки отчетов о местоположении. Частный ключ хранится в ключевой мачине вашего Mac.
Развернуть на устройство. Подключите поддерживаемое устройство через USB к вашему Mac и нажмите кнопку развертывания рядом с именем аксессуара и выберите соответствующий. Вместо того, чтобы использовать интегрированное развертывание OpenHayStack, вы также можете скопировать открытый ключ, используемый для рекламы (щелкните правой кнопкой мыши на аксессуар) и развернуть его вручную.
Отображение расположений устройств. Это может занять до 30 минут, пока вы не увидите первый отчет о местоположении на карте справа. Карта всегда будет показывать все последние места ваших предметов. Вы можете нажать на каждый элемент, чтобы проверить, когда было получено последнее обновление. Нажав кнопку перезагрузки, вы можете обновить отчеты о местоположении.
Мы кратко объясняем автономную систему поиска Apple (он же нашел мою сеть ). Пожалуйста, обратитесь к нашей бумаге Pets Paper и аксессуаров Apple для получения более подробной информации. Мы предоставляем схему обзора (из нашей статьи) и объясняем, как мы интегрируем различные шаги в OpenHaystack ниже.

Чтобы использовать Apple «Найти мою сеть», мы генерируем государственно-частную пару ключей на эллиптической кривой (P-224). Частный ключ остается на Mac, надежно хранящейся в ключах, а открытый ключ развернут на аксессуаре, например, прикрепленный микро: бит.
Короче говоря, аксессуары транслируют открытый ключ как рекламные объявления Bluetooth с низкой энергией (BLE) (см. Прошивку). Близлежащие iPhone не смогут отличить наши аксессуары от подлинного устройства Apple или сертифицированного аксессуара.
Когда ближайший iPhone получает блаженную рекламу, iPhone получает свое текущее местоположение через GPS, шифрует его, используя открытый ключ из рекламы и загружает зашифрованный отчет на сервер Apple. Все iPhone на iOS 13 или новее делают это по умолчанию. OpenHayStack не участвует в этом шаге.
Apple не знает, какие зашифрованные местоположения принадлежат к какой учетной записи или устройству Apple. Поэтому каждый пользователь Apple может скачать любой отчет о местоположении, если он знает соответствующий открытый ключ. Это не проблема безопасности: все отчеты зашифрованы и не могут быть расшифрованы, если не знает соответствующий закрытый ключ (сохраненный в ключевой матче). Мы используем эту функцию для загрузки отчетов из Apple, которые были созданы для наших аксессуаров OpenHayStack. Мы используем наши личные ключи, чтобы расшифровать отчеты о местоположении и показать самый последний на карте.
Apple защищает свою базу данных от произвольного доступа, требуя аутентифицированного пользователя Apple для загрузки отчетов о местонахождении. Мы используем наш плагин Apple Mail, который работает с повышенными привилегиями, для доступа к необходимой информации аутентификации. Приложение OpenHayStack связывается с плагином при загрузке отчетов. Вот почему вам нужно держать почту открытой во время использования OpenHayStack.
В принципе, любое устройство Bluetooth может быть превращено в аксессуар OpenHayStack, который отслеживается через Apple's Find My Network. В настоящее время мы предоставляем удобный метод развертывания нашей Frunwares OpenHayStack для небольшого количества встроенных устройств (см. Таблицу ниже). Мы также поддерживаем устройства Linux через наш общий сценарий HCI. Не стесняйтесь порта OpenHayStack на другие устройства, которые поддерживают низкую энергию Bluetooth на основе исходного кода нашей прошивки и спецификации в нашей статье. Пожалуйста, поделитесь своими результатами с нами!
| Платформа | Протестировано на | Развернуть через приложение | Комментарий |
|---|---|---|---|
| Северный NRF51 | BBC Micro: Bit V1 | ✓ | Только поддерживает NRF51822 в настоящее время (см. Выпуск № 6). |
| Espressif ESP32 | SP32-Wroom, ESP32-WROVER | ✓ | Развертывание может занять до 3 минут. Требуется Python 3. Спасибо @fhessel . |
| Linux HCI | Raspberry Pi 4 W/ Raspbian | Должен поддерживать любую машину Linux. |

OpenHayStack Mobile - это полная переопределение приложения OpenHayStack MacOS для смартфонов. Приложение предоставляет такую же функциональность для создания и отслеживания аксессуаров и направлено на повышение удобства использования, особенно для новых пользователей. В отличие от приложения MacOS, отчеты о местоположении не могут быть извлечены непосредственно на смартфоне, поэтому для приложения требуется прокси -сервер, размещенный на оборудовании Mac для доступа к сети «Найти мою сеть». Прокси -сервер можно получить по сети несколькими пользователями одновременно.
Для подключения к вашему прокси-серверу установить правильный URL в: OpenHayStack-Mobile/lib/findmy/reports_fetcher.dart


OpenHayStack Mobile построен с кроссплатформенной фреймворком Flutter и в настоящее время работает на Android и iOS. Более подробную информацию о приложениях и инструкциях по использованию можно найти в папке OpenHayStack-Mobile этого хранилища.
OpenHayStack лицензирован в рамках общей публичной лицензии GNU Affero v3.0 .