2 pontos por GN⁺ 2025-01-12 | 1 comentários | Compartilhar no WhatsApp
  • go-haystack é um conjunto de ferramentas baseado em Go/TinyGo que permite rastrear dispositivos Bluetooth pessoais pela rede Find My da Apple
  • Em conjunto com OpenHaystack e Macless-Haystack, ele configura uma rede Find My personalizada e pode ser usado sem hardware da Apple
  • Fornece firmware de beacon escrito com TinyGo e o pacote TinyGo Bluetooth, voltado para hardwares como placas com nRF SoftDevice, BBC Microbit, Seeed Studio XIAO nRF52840, placas com coprocessador ESP32 e placas RP2040 Pico-W
  • O mesmo código de beacon também pode ser executado em Linux com hardware Bluetooth, incluindo Raspberry Pi e sistemas embarcados
  • O usuário prepara Apple ID com 2FA via SMS, anisette-v3-server, servidor Macless-Haystack e a CLI haystack, depois registra o dispositivo no fluxo de geração de chaves, gravação do firmware e upload do JSON

O papel do go-haystack

  • go-haystack permite rastrear dispositivos Bluetooth pessoais pela rede Find My da Apple
  • Em conjunto com OpenHaystack e Macless-Haystack, ele configura uma rede Find My personalizada
  • A ferramenta é escrita em Go/TinyGo e pode ser usada sem hardware da Apple

Criando seu próprio beacon

Beacons em Linux e TinyScan

  • Também é possível executar o código de beacon em Linux com hardware Bluetooth
    • Raspberry Pi e outros sistemas embarcados são citados como exemplos
    • O código para Linux embarcado é o mesmo dos beacons para microcontroladores e está no diretório firmware do repositório
  • O go-haystack também inclui o TinyScan, um scanner de hardware para dispositivos locais
    • O TinyScan roda em várias placas de microcontrolador com Bluetooth e pequenos displays
    • Placas da Adafruit e da Pimoroni são citadas como exemplos
    • O código está no diretório tinyscan

Componentes necessários para a instalação

  • É necessário um Apple ID com 2FA ativado
    • O segundo fator de autenticação tem suporte apenas via SMS/mensagem de texto
  • Execute o anisette-v3-server com Docker
    • O comando de exemplo cria a rede Docker mh-network e executa o contêiner dadoum/anisette-v3-server na porta 6969
  • Execute e configure o endpoint macless-haystack em modo interativo
    • Durante a configuração, são informados Apple ID, senha e 2FA
    • Quando aparecer serving at port 6176 over HTTP, a configuração foi concluída
    • Depois da configuração, encerre o processo e reinicie o servidor com docker restart macless-haystack
  • A CLI go-haystack é instalada com o seguinte comando
go install github.com/hybridgroup/go-haystack/cmd/haystack@latest

Fluxo de uso

  • Dispositivos dentro do alcance local são escaneados com haystack scan
    • A saída inclui endereço Bluetooth, intensidade do sinal, dados em formato de identificador e status da bateria
  • Para adicionar um novo dispositivo, primeiro gere as chaves dele
haystack keys DEVICENAME
  • Como resultado da geração de chaves, são salvos um arquivo DEVICENAME.keys e um arquivo DEVICENAME.json para configuração do Haystack
    • Substitua DEVICENAME pelo nome real do dispositivo
  • No hardware, grave o firmware especificando o alvo TinyGo e o nome do dispositivo
haystack flash DEVICENAME nano-rp2040
  • Esse comando usa TinyGo para compilar o firmware com as chaves incluídas e gravá-lo no dispositivo
  • Por fim, faça upload do arquivo JSON do dispositivo para a instância em execução do macless-haystack pela interface web
    • No navegador, abra o app web do Macless-Haystack e selecione o arquivo DEVICENAME.json pelo link “Accessories” e pelo botão “+”
    • Esse app web é uma aplicação de página única que apenas lê e grava dados locais

Exibição de dados de localização

  • Quando o dispositivo entrar no alcance de algum iPhone, com o tempo os dados do Macless-Haystack aparecerão na interface web
  • Pode levar algum tempo até que os primeiros dados sejam exibidos

1 comentários

 
GN⁺ 2025-01-12
Opiniões do Hacker News
  • Muito legal. Tentativas como essa e a rede Find My me surpreendem sempre que vejo, mas o motivo de eu não usar esse tipo de abordagem diretamente é que acho que um dia a Apple pode aceitar oficialmente esse aproveitamento da rede, ou, pelo contrário, pode banir Apple IDs com histórico relacionado
    No momento, a Apple sabe disso, mas não se posiciona para nenhum dos lados. Até que a Apple ofereça um suporte mais oficial, ou surja uma forma que não esteja ligada diretamente ao meu Apple ID/conta, pretendo só observar

    • O processo de solicitar a localização de uma tag específica não está vinculado a uma Apple Account. Como o README orienta, ao fazer login no macless haystack, basta usar uma conta descartável
    • Acho que também há efeitos positivos para a Apple fazer vista grossa a isso. Quanto mais essa rede se amplia, maior a adoção; e, olhando P2P como uma estrutura superior, é um problema maior que um fornecedor específico, então aumentar a adoção de alguma forma pode ser um compromisso aceitável
      Especialmente porque a Apple não precisa fazer o trabalho diretamente, acho que, em vez de sufocar a adoção agora, ela acabará tentando aproveitar melhor a densidade da malha
  • No verão passado, eu estava de férias com minha esposa em Portugal, e ela deixou a carteira no Uber a caminho do aeroporto. O motorista encontrou a carteira, pegou 20 dólares e algumas joias e a descartou; mais tarde naquele dia, rastreamos com um AirTag até um estacionamento abandonado e a encontramos pelo app Location
    Desde então, coloco AirTag em todas as malas e também troco as baterias dentro de um cronograma

    • Também coloco AirTag em todas as minhas malas. Alguns anos atrás, na área de bagagens extraviadas do aeroporto de Sydney, fiquei esperando uma mala que, depois de horas perguntando à companhia aérea e ao aeroporto, descobri que estava lá
      Na ocasião havia outro homem dizendo que suas coisas também estavam lá; ele contou que, um mês antes, na New Zealand, ao evacuar de um avião, deixou o iPad no bolso do assento e o rastreou pelo Find My até Sydney. Ele pega voos internacionais várias vezes por mês e disse que o AirTag era a melhor coisa que possuía. Desde então, escondi também algumas tags de isca em todos os carros e malas, e dentro de itens caros que poderiam ser roubados
    • Como dá para saber que foi isso que o motorista fez, e não outro passageiro que ele levou depois?
  • Mesmo lendo isso, não entendi bem. Dá para usar com o Apple AirTag, ou é preciso criar seu próprio dispositivo de rastreamento?

  • https://media.ccc.de/v/38c3-find-my-101

  • No futuro, eu gostaria de conseguir saber a posição de um beacon com precisão de menos de 1 metro cúbico
    Minha esposa tem ADD e perde coisas com frequência. O Tile não é alto e é instável, e não temos iPhone, então também não podemos usar AirTag. Estou cansado demais para aprender a matemática necessária para localizar beacons Bluetooth, mas gostaria de conseguir. Seria bom existir um projeto de software do tipo “basta adicionar 4 plaquinhas Bluetooth pequenas”, mas parece que, para a maioria dos desenvolvedores open source, esse não é um tema que coça onde incomoda

    • AirTag com iPhone 11 ou superior resolve exatamente esse problema. Dá para encontrar um AirTag a menos de 1 pé
      Ele faz localização precisa por ultra-wideband (UWB), não pela intensidade da conexão Bluetooth. Funciona por tempo de voo, usando atrasos na velocidade da luz, como o GPS. Ao abrir o app Find My, ele sabe muito rapidamente a distância exata até o AirTag e, conforme você anda, calcula também em que direção o AirTag está a partir das mudanças de posição observadas. É uma tecnologia bem interessante. No app Find My, é preciso usar o recurso “Find”, não “Play Sound”, e é necessário um iPhone 11+ com o chip de ultra-wideband H1. O custo pode ser parecido com instalar várias placas Bluetooth pela casa e é muito mais preciso, mas é menos divertido de hackear
      https://en.wikipedia.org/wiki/Ultra-wideband#Real-time_locat...
    • Nós dois também usamos só Android, mas estamos pensando em comprar um iPhone 11 ou 12 mini quebrado só para servir como buscador de precisão de AirTags
      Pelo menos não parece haver uma alternativa equivalente que reúna localização precisa por ultra-wideband, disponibilidade para compra, preço razoável e confiabilidade. Por outro lado, alguns Android parecem ter suporte a UWB, que talvez funcione com o UWB do Tile: https://www.zdnet.com/article/how-to-enable-uwb-on-android-a...
    • Espero que nos próximos anos o Bluetooth Channel Sounding se torne mais difundido. Dizem que ele pode dar a todos os dispositivos BLE uma capacidade parecida de estimativa de distância, embora menos precisa que UWB
      https://www.bluetooth.com/learn-about-bluetooth/feature-enha...
    • Eu também tenho ADHD e vivo perdendo coisas, e as tags Pebblebee funcionaram para mim. Coloquei uma tag nas chaves e um cartão na carteira, e o som é alto o suficiente para ser ouvido de outro andar mesmo numa casa antiga com paredes grossas de tijolo
    • Acho que a “matemática necessária” mencionada aqui se refere a fazer triangulação da posição com beacons fixos. Até a Apple funciona enviando a localização do celular que recebeu o sinal, o que gera histórias de a polícia bater na casa errada por causa de fones de ouvido encontrados por uma criança vizinha no ônibus
      Já brinquei com beacons no passado, e fazê-los funcionar em si era bem fácil. Escrevi um programinha para fazer o notebook agir como beacon e usei algum app de “Bluetooth tracker” no celular para ver a distância aproximada até esse beacon. Depois disso, basta andar observando a distância
  • Agora parece que dá para usar mesmo sem um Mac? Se for o caso, é incrível. Rastreadores da Apple custam só alguns euros — claro, falando de produtos de terceiros.

  • Não sei se sou só eu, mas todo esse recurso da rede Buscar parece um pesadelo de segurança. Entendo a utilidade, mas será que uma determinada agência não poderia pedir à Apple para informar onde essa pessoa está, mesmo sem cobertura celular?
    De qualquer forma, foi por isso que decidi sair do ecossistema da Apple; do ponto de vista de vigilância, parece um pesadelo.

    • O sistema foi projetado exatamente para tornar esse tipo de coisa impossível.
      A tag não sabe sua própria localização; ela apenas transmite sua chave pública rotativa. Como a chave muda aleatoriamente, você, como proprietário legítimo, consegue prevê-la, mas é difícil para terceiros seguir a tag com facilidade. Outros dispositivos veem essa chave e compartilham sua própria localização criptografada com a chave pública da tag. Por isso, obter os dados é bastante difícil e, na prática, impossível a menos que a Apple seja forçada a redesenhar o sistema e distribuir uma atualização maliciosa. Em geral, esse tipo de coisa é considerado além do que uma intimação comum permitiria.
    • É impossível. A Apple não sabe quem tem qual tag. Foi feito com um design centrado em privacidade. Sei que a Apple usa a proteção da privacidade como argumento mesmo tendo outros interesses, mas li os documentos de design técnico e isso é bem excelente.
      Duvido que Samsung e Google tenham ido tão longe assim em seus próprios rastreadores.
    • https://support.apple.com/guide/security/find-my-security-se...
    • É preciso dizer que existem duas “redes” diferentes no Buscar. Uma é a rede em que outros dispositivos Apple ajudam a encontrar meus objetos; a outra é a rede em que meus dispositivos enviam diretamente sua própria localização para a Apple.
      O app Buscar combina as duas para mostrar a localização mais recente. Pelo que vejo, este projeto parece usar apenas a primeira, e essa, por design, exigiria um backdoor explícito. Mas, se o objetivo é se defender contra órgãos governamentais, é provável que a segunda rede seja a parte que mereça mais atenção.
    • Se você está preocupado com isso ser um pesadelo de segurança, pode desativar nas configurações: Settings → your_name → Find My → device → toggle off
      Se você não confia que isso realmente será desativado ao desligar a opção, precisa refletir profundamente sobre todos os eletrônicos que possui. Você confia no firmware de um celular Android? E no chip de modem que não é open source? E no SIM card que roda Java? Será que o controle remoto da sua TV não tem um microfone que você nem percebeu? Na prática, muitos controles têm. É possível que até sua torradeira tenha um chip mais poderoso do que um computador da era DOS conectado à rede. A minha tem. Como saber que ela não está se conectando ao Wi‑Fi próximo e enviando informações? Depois do caso China/iCloud, não confio totalmente na Apple, mas, entre as grandes empresas de tecnologia, ela ainda é a que eu mais confio.