FindMy Flipper - Emulador de AirTag e SmartTag
(github.com/MatthewKuKanich)- FindMy Flipper é um app que expande os recursos de Bluetooth do FlipperZero para fazê-lo funcionar como um Apple AirTag, Samsung SmartTag ou Tile Tracker
- Ele transmite sinais de SmartTag usando o beacon BLE do FlipperZero, podendo clonar tags existentes ou gerar pares de chaves do OpenHaystack para integração com a rede Apple FindMy
- O método de clonagem de tags existentes usa o endereço MAC e o payload de AirTag, Samsung SmartTag e Tile Tracker para permitir rastreamento por apps nativos, mas no caso do AirTag, ao recolocar a bateria a chave pode girar e invalidar a chave atual no Flipper
- O método de geração de chaves do AirTag funciona mesmo sem um AirTag real ou dispositivo Apple, mas exige Docker Desktop, Python e Git, e usa um computador com autenticação por Apple ID para receber os dados de localização
- O app oferece execução em segundo plano e ajuste de intervalo de beacon e potência de transmissão, e o usuário deve respeitar as leis de privacidade sobre dispositivos de rastreamento e a propriedade do dispositivo original
App para usar o FlipperZero como uma tag de rastreamento
- FindMy Flipper é um app que faz o FlipperZero emular Apple AirTag, Samsung SmartTag e Tile Tracker
- Ele transmite sinais de SmartTag usando o beacon BLE do FlipperZero para que possam ser detectados pela rede FindMy
- Os recursos pretendidos são os seguintes
- Clonar Apple AirTag, Samsung SmartTag e Tile Tracker existentes para o FlipperZero
- Gerar um par de chaves OpenHaystack para a rede FindMy sem um AirTag real
- Continuar rastreando a localização do FlipperZero
Principais recursos
-
Emulação de tags
- É possível clonar o endereço MAC e o payload de tags existentes
- Também é possível gerar um par de chaves para a rede FindMy sem possuir um AirTag real
-
Ajustes do usuário
- É possível ajustar o intervalo de transmissão do beacon
- A potência de transmissão pode ser alterada para equilibrar visibilidade e duração da bateria
-
Funcionamento em segundo plano
- O app foi otimizado para execução em segundo plano
- Foi projetado para manter o rastreamento com baixo consumo de bateria sem interromper o uso normal do FlipperZero
Formas de instalação
- A instalação pode ser feita de duas formas
- Usando o firmware FAP de release/pré-compilado adequado ao dispositivo
- Compilando o firmware manualmente com
fbt/ufbt
- No momento, todos os firmwares devem funcionar na branch main, incluindo os ícones
Como obter os dados do SmartTag
- Há duas formas de obter os dados para emulação da tag
-
Opção A: clonar uma tag existente
- Opção B: gerar chaves de AirTag
-
-
Opção A: clonar uma tag existente
- Clonar uma tag existente é o método preferido e permite rastreamento sem configuração adicional
- É possível usar tags da Apple, Samsung e Tile copiando o endereço MAC e o payload da tag real
- Esse método permite rastreamento via apps nativos como Apple FindMy, Samsung SmartThing e Tile App
- O procedimento básico é o seguinte
- Primeiro, emparelhe o AirTag, Samsung SmartTag ou Tile Tracker com o dispositivo
- Deixe a tag longe do dispositivo registrado por cerca de 15 minutos para entrar no modo Perdido
- Use o nrfConnect no Android ou um ESP32
- No nrfConnect, é indicado usar a versão Android porque a versão Apple não mostra os dados Raw necessários
- Com um ESP32-WROOM ou ESP32-S3, é possível obter os dados necessários sem Android
- A ferramenta relacionada ESP32-AirTag-Scanner pode ser usada
- O processo de varredura inclui excluir no filtro itens que não sejam da marca da tag e ajustar o RSSI para -40 dBm, depois esperar até que o SmartTag apareça como dispositivo “FindMy”
- A bateria da tag deve ser removida imediatamente após capturar o payload e o endereço MAC
- Se a bateria for recolocada no AirTag, a chave poderá girar nos servidores da Apple
- Se a chave girar, a chave atual do Flipper será invalidada
- Para continuar usando no Flipper, o AirTag deve permanecer desligado ou sem bateria
- Não é possível usar o AirTag e o Flipper ao mesmo tempo; se necessário, o processo pode ser repetido para restaurar a função no Flipper
- O payload e o endereço MAC capturados devem ser inseridos no app do FlipperZero
-
Opção B: gerar chaves de AirTag
- A geração de chaves de AirTag é um método para emular um AirTag sem dispositivo Apple nem AirTag real
- Esse método funciona por geração de chaves, e é necessário um computador para baixar os dados de localização
- Os componentes necessários são os seguintes
- Docker Desktop
- Python
- Git
- Após clonar o repositório, trabalhe na pasta
AirTagGeneration
git clone https://github.com/MatthewKuKanich/FindMyFlipper.git cd AirTagGeneration- Depois de iniciar o Docker Desktop, configure o servidor com o seguinte comando
docker run -d --restart always --name anisette-v3 -p 6969:6969 dadoum/anisette-v3-server:latest- Esse servidor emula um ambiente que engana o servidor de autenticação da Apple
- Crie e ative um ambiente virtual Python e depois instale as dependências
python3 -m venv venv pip3 install -r requirements.txtgenerate_keys.pygera as chaves necessárias para o AirTag e as salva em uma nova pastakeys- O arquivo
.keysgerado pode ser transferido para o FlipperZero e importado pelo app - No menu de configuração do app, selecione “register tag”
- Selecione o tipo de tag
- Importe um arquivo
.keysou.txt, ou insira manualmente - Ao inserir manualmente, digite primeiro o MAC e depois o payload
- Pressione salvar para registrar
request_reports.pysolicita dados de localização em tempo real com autenticação por Apple ID e senha- As credenciais de login da Apple ficam salvas em um arquivo auth, então não é necessário digitá-las novamente depois
RequestReport&Map.pymostra os dados de localização das últimas 24 horas em um mapa interativo- Ele solicita relatórios de localização usando a chave de publicidade com hash da pasta
keys - Usa a chave privada do mesmo arquivo
.keyspara descriptografar os dados - Mostra os dados descriptografados no terminal
- Exibe as coordenadas no mapa e conecta o trajeto
- Mostra os metadados de localização e salva um arquivo HTML com o nome da data do relatório
Configuração e ajustes do app no FlipperZero
- Depois de iniciar o app, no menu de configuração é possível usar
Import Tag From FileouRegister Tag Manually - O fluxo inclui colocar o arquivo
.keysna pastaapps_data->findmyouAppsData/FindMyFlipperdo cartão SD do FlipperZero e então importá-lo - Arquivos
.txtsalvos no nrfConnect também podem ser colocados na mesma pasta para importação - Os itens ajustáveis são os seguintes
- Beacon Interval: ajusta a frequência com que o FlipperZero transmite sua presença
- Transmit Power: ajusta a intensidade do sinal para equilibrar alcance de rastreamento e duração da bateria
Compatibilidade, alternativas e responsabilidade
- A compatibilidade inclui o seguinte
- Dispositivos Apple para rastreamento de AirTag via rede FindMy
- Dispositivos e navegadores com suporte ao rastreamento de Samsung SmartTag
- Tile Tracker via Tile App
- Para rastrear com OpenHaystack, é necessário macOS anterior ao 14
- No macOS 14 ou superior, há problemas de compatibilidade com o plugin do Mail
- Como alternativa, é indicado o macless-haystack
- Mesmo nesse método, deve-se usar apenas
generate_keys.pyda pastaAirTagGeneration - O script de geração de chaves desse repositório usa um formato de arquivo de chaves diferente, enquanto os arquivos do FindMy Flipper incluem os dados necessários para importação correta no FlipperZero
- Mesmo nesse método, deve-se usar apenas
- Este app é destinado a uso pessoal e educacional
- O usuário deve cumprir as leis de privacidade e regulamentações locais relacionadas a dispositivos de rastreamento
- A clonagem e emulação de tags de rastreamento devem ser usadas de forma responsável, respeitando a propriedade do dispositivo original
- Este projeto não é afiliado à Apple Inc. nem à Samsung
1 comentários
Opiniões no Hacker News
Projeto interessante, mas uma das dependências subjacentes usadas aqui não parece segura por padrão:
https://github.com/biemster/FindMy/blob/113ebf4017729b92a381...
Parece ser uma biblioteca de autenticação para iCloud, e aparentemente fizeram hardcode do MacBook device agent para vincular a chave gerada a um dispositivo
Como acontece com serviços centralizados, eu não usaria isso em uma conta que tenha muitos serviços ou ativos digitais associados. Não me surpreenderia se a Apple bloqueasse contas que usam isso
Como há um código
adsidúnico necessário para o login, também não deve ser difícil identificarMas não entendo por que a Apple não oferece suporte oficial a isso. Fico pensando se é para empurrar a venda de dispositivos iOS
Tenho cerca de 5 mil dólares em equipamentos desktop/mobile da Apple e, mesmo assim, tive de comprar mais um iPhone usado para registrar alguns AirTags, então isso me irrita
https://github.com/biemster/FindMy/blob/113ebf4017729b92a381...
Conscientemente, eu jamais integraria uma biblioteca de terceiros. Ainda hoje passo todas as releases do
VenToypor scanners de vírus e fico esperando o momento em que uma vulnerabilidade do tipo NZ apareça de fatoÉ menos por causa do fluxo de pagamentos da Apple e mais por causa do modelo de assinatura. Se você oferecer de graça um recurso que a Apple possa achar interessante, é preciso tomar cuidado. A Apple pode bloquear o acesso e começar a cobrar dos usuários
Também é preciso ter o dobro de cuidado ao irritar geeks. Eles dão muito medo: vão dormir irritados numa sexta à noite e passam o fim de semana inteiro analisando o produto como caixa-preta e tornando a implementação trivial
Esse conceito também parece poder ser usado para contornar os recursos anti-stalking que a Apple e outras colocaram
Por exemplo, se você tiver N tags doadoras e alternar entre elas a cada
24/Nhoras, do ponto de vista da Apple ou do rastreamento do dispositivo, a pessoa rastreada não parecerá estar sendo acompanhada por uma única tag por muito tempoColoque uma bateria grande, um circuito simples de timer e remova o beeper, e você tem um excelente dispositivo de rastreamento
Lembro que isso surgiu no contexto de rastrear cargas com equipamentos caros. O transporte podia levar meses; o AirTag é eficiente em energia e dura bastante com uma bateria grande, enquanto as soluções GPS existentes não eram suficientes
Ou então usar uma tag GPS que nem use a “rede” AirTag, e não seria necessário fazer rotação
Ainda uso o Flipper algumas vezes por semana. Estou ansioso pela próxima versão com suporte a Wi-Fi e outras frequências
Alguém já testou como o app “Find My” reage se vir a mesma tag em mais de um local?
Estou usando isso e é excelente. Praticamente não consome energia
Seria bom se também pudesse se comunicar com a rede Find My Device do Google, mas já funciona muito bem na rede da Apple
Seria ótimo poder portar isso para um dispositivo BLE barato, como um ESP32-C3. Usar um Flipper como AirTag é meio caro
Infelizmente é necessária uma tag doadora para impersonar, e essa tag não pode ser usada enquanto você usa isto. Ou então é preciso usar o OpenHaystack, mas para obter os dados você precisa de um Mac
Seria bom se o
README.mdtivesse um link para dar contexto sobre do que isto está falando: https://flipperzero.one/Que app Android é necessário para usar isso? De preferência um app que não precise do Google Services
Mas com qual app Android eu posso de fato “encontrá-lo”? Não tenho iPhone nem dispositivo Samsung