O OpenHayStack é uma estrutura para rastrear dispositivos Bluetooth pessoais por meio da minha rede enorme da Apple. Use-o para criar suas próprias tags de rastreamento que você pode anexar a objetos físicos (chaveiros, mochilas, ...) ou integrá-lo a outros dispositivos com capacidade para Bluetooth, como notebooks.

O OpenHayStack é um aplicativo que permite criar seus próprios acessórios que são rastreados pelo Find My Network da Apple. Tudo o que você precisa é de um Mac e um Micro BBC: Bit ou qualquer outro dispositivo com capacidade para Bluetooth. Ao usar o aplicativo, você pode rastrear seus acessórios em qualquer lugar da Terra sem cobertura celular. Os iPhones próximos descobrirão seus acessórios e farão o upload de sua localização nos servidores da Apple quando eles tiverem uma conexão de rede.
O OpenHayStack é o resultado do trabalho de engenharia reversa e análise de segurança da minha rede da Apple (ou descoberta offline ). No Laboratório de Networking Mobile Seguro, de Tu Darmstadt, começamos a analisar a descoberta offline após seu anúncio inicial em junho de 2019. Identificamos como os dispositivos da Apple podem ser encontrados pelos dispositivos iPhones, mesmo quando estão offline por esse trabalho. Todo o sistema é uma combinação inteligente de anúncios Bluetooth, criptografia de chave pública e um banco de dados central de relatórios de localização criptografada. Divulgamos uma especificação das partes fechadas da descoberta offline e conduzimos uma análise abrangente de segurança e privacidade. Encontramos duas vulnerabilidades distintas. O mais grave, que permitiu que um aplicativo malicioso acesse os dados de localização, foi corrigido pela Apple (CVE-2020-9986). Para obter mais informações sobre a análise de segurança, leia nosso artigo. Desde o seu lançamento, recebemos um pouco de cobertura de imprensa e mídia.
Openhaystack é um software experimental. O código não é testado e incompleto. Por exemplo, os acessórios OpenHayStack usando nosso firmware transmitem uma chave pública fixa e, portanto, são rastreáveis por outros dispositivos nas proximidades (isso pode mudar em uma versão futura). O OpenhayStack não é afiliado ou endossado pela Apple Inc.
O OpenHayStack consiste em dois componentes. Primeiro, fornecemos um aplicativo MacOS que pode exibir o último local relatado de seus dispositivos Bluetooth pessoais. Segundo, a imagem do firmware permite que os dispositivos Bluetooth transmitam beacons que os tornam descobertos pelos iPhones.
O OpenHayStack requer MacOS 11 (Big Sur).
O aplicativo OpenHayStack requer um plug -in personalizado para a Apple Mail. É usado para baixar relatórios de localização dos servidores da Apple por meio de uma API privada (explicação técnica: o plug -in herda os direitos do Apple Mail necessários para usar essa API). Portanto, o procedimento de instalação é um pouco diferente e exige que você desative temporariamente o gatekeeper. Nosso plug -in não acessa outros dados privados, como e -mails (consulte o código -fonte).
~/Library/Mail/Bundle .sudo spctl --master-disable , que desativará o gatekeeper e permitirá que nosso plug-in do Apple Mail seja executado.sudo defaults write "/Library/Preferences/com.apple.mail" EnableBundles 1sudo spctl --master-enable , que permitirá o gatekeeper novamente.Adicionando um novo acessório. Para criar um novo acessório, você só precisa inserir um nome para ele e, opcionalmente, selecionar um ícone adequado e uma cor. O aplicativo gera um novo par de chaves que é usado para criptografar e descriptografar os relatórios de localização. A chave privada é armazenada no chaveiro do seu Mac.
Implantar no dispositivo. Conecte um dispositivo suportado via USB ao seu Mac e pressione o botão de implantação ao lado do nome do acessório e escolha o correspondente. Em vez de usar a implantação integrada do OpenHayStack, você também pode copiar a chave pública usada para publicidade (clique com o botão direito do mouse no acessório) e implantá -la manualmente.
Locais de exibição de dispositivos. Pode levar até 30 minutos até que você veja o primeiro relatório de localização no mapa no lado direito. O mapa sempre mostrará todos os locais mais recentes dos seus itens. Você pode clicar em todos os itens para verificar quando a última atualização foi recebida. Ao clicar no botão Recarregar, você pode atualizar os relatórios de localização.
Explicamos brevemente o sistema offline de busca da Apple (também conhecido como encontre minha rede ). Consulte o papel de animais de estimação e a especificação de acessórios da Apple para obter mais detalhes. Fornecemos uma visão geral esquemática (do nosso artigo) e explicamos como integramos as diferentes etapas no OpenHayStack abaixo.

Para usar a minha rede Find My da Apple, geramos um par de teclas público-privado em uma curva elípica (P-224). A chave privada permanece no MAC armazenado com segurança no chaveiro, e a chave pública é implantada no acessório, por exemplo, um micro: bit anexado.
Em resumo, os acessórios transmitem a chave pública como anúncios de baixa energia Bluetooth (BLE) (consulte o firmware). Os iPhones próximos não poderão distinguir nossos acessórios de um dispositivo Apple genuíno ou acessório certificado.
Quando um iPhone próximo recebe um anúncio BLE, o iPhone busca sua localização atual via GPS, o criptografa usando a chave pública do anúncio e envia o relatório criptografado para o servidor da Apple. Todos os iPhones no iOS 13 ou mais recentes fazem isso por padrão. O OpenHayStack não está envolvido nesta etapa.
A Apple não sabe quais locais criptografados pertencem a qual conta ou dispositivo da Apple. Portanto, todo usuário da Apple pode baixar qualquer relatório de local, desde que saiba a chave pública correspondente. Este não é um problema de segurança: todos os relatórios são criptografados de ponta a ponta e não podem ser descriptografados, a menos que se saiba a chave privada correspondente (armazenada no chaveiro). Aproveitamos esse recurso para baixar os relatórios da Apple que foram criados para nossos acessórios OpenHayStack. Usamos nossas chaves privadas para descriptografar os relatórios de localização e mostrar o mais recente no mapa.
A Apple protege seu banco de dados contra acesso arbitrário, exigindo que um usuário da Apple autenticado baixe relatórios de localização. Utilizamos nosso plug -in do Apple Mail, que é executado com privilégios elevados, para acessar as informações de autenticação necessárias. O aplicativo OpenHayStack se comunica com o plug -in ao baixar relatórios. É por isso que você precisa manter o e -mail aberto ao usar o OpenHayStack.
Em princípio, qualquer dispositivo Bluetooth pode ser transformado em um acessório OpenHayStack que seja rastreável através da minha rede Find My My. Atualmente, fornecemos um método de implantação conveniente de nossos Firmwares do OpenHayStack para um pequeno número de dispositivos incorporados (consulte a tabela abaixo). Também oferecemos suporte a dispositivos Linux por meio do nosso script HCI genérico. Sinta -se à vontade para portar o OpenHayStack para outros dispositivos que suportam baixa energia Bluetooth com base no código -fonte do nosso firmware e na especificação em nosso artigo. Compartilhe seus resultados conosco!
| Plataforma | Testado em | Implantar via aplicativo | Comentário |
|---|---|---|---|
| Nórdico nrf51 | BBC Micro: Bit v1 | ✓ | Suporta apenas o NRF51822 no momento (consulte a edição 6). |
| Espressif Esp32 | SP32-Wroom, Esp32-Wrover | ✓ | A implantação pode levar até 3 minutos. Requer Python 3. Obrigado @fhessel . |
| Linux HCI | Raspberry Pi 4 com Raspbian | Deve suportar qualquer máquina Linux. |

O OpenHayStack Mobile é uma reimplementação completa do aplicativo OpenHayStack MacOS para smartphones. O aplicativo fornece a mesma funcionalidade para criar e rastrear acessórios e visa aumentar a usabilidade, especialmente para novos usuários. Em contraste com o aplicativo MacOS, os relatórios de localização não podem ser buscados diretamente no smartphone, portanto, o aplicativo exige um servidor proxy hospedado no Mac Hardware para acessar a rede Find My. O servidor proxy pode ser acessado em uma rede por vários usuários simultaneamente.
Para conectar-se ao seu servidor proxy, defina o URL correto em: OpenHayStack-Mobile/lib/findmy/reports_fetcher.dart


O OpenHayStack Mobile é construído com a estrutura Flutter Cross-Plataform e atualmente é executado no Android e iOS. Mais informações sobre o aplicativo e as instruções de uso podem ser encontradas na pasta OpenHayStack-Mobile deste repositório.
O OpenHayStack está licenciado sob a licença pública geral da GNU Affero v3.0 .