2 pontos por GN⁺ 2024-11-13 | 1 comentários | Compartilhar no WhatsApp
  • Desde o iOS 18.1, os AirPods Pro 2 podem ser usados como aparelho auditivo, mas por causa da restrição regional, usuários com deficiência auditiva na Índia não conseguiam usar imediatamente o recurso principal
  • As condições de restrição envolviam vários fatores, como morar em um país compatível, usar iOS 18.1 ou superior e firmware 7B19 ou superior, e o dispositivo podia determinar a localização combinando IP, localidade, GPS, rede móvel e informações de localização por WiFi
  • A manipulação por proxy e a simulação de CoreLocation do Xcode falharam, e pelos logs do locationd e pistas nas configurações, parecia que a localização simulada não era usada para determinar o domínio regulatório
  • No fim, foi feito um experimento de gaiola de Faraday usando dados do Wigle e um ESP32 para imitar o ambiente WiFi de Menlo Park, na Califórnia, além de uma caixa envolta em papel-alumínio e um micro-ondas para reduzir os sinais ao redor
  • Depois de ativado uma vez, o recurso Hearing Aid era sincronizado com a conta do iCloud e podia ser usado em outros dispositivos, restando como principal desafio um procedimento reproduzível para liberar o recurso a usuários reais

Restrição regional do recurso de aparelho auditivo dos AirPods Pro 2

  • Logo após a atualização para o iOS 18.1, foram comprados AirPods Pro 2 para um avô com perda auditiva, mas a Apple limitava o recurso Hearing Aid aos EUA e a alguns outros países, tornando seu uso praticamente impossível na Índia
  • Aparelhos auditivos comuns podem custar de ₹50.000 a mais de ₹8L, dependendo da capacidade de ajuste
  • A Apple divulgava que o recurso de aparelho auditivo dos AirPods podia compensar a audição em até 60dbHL, especialmente na faixa de frequências da fala
  • Estando em uma localização compatível, possuindo AirPods Pro 2 e usando iOS 18.1 ou superior com firmware 7B19 ou superior, era possível ver a tela do recurso no app Saúde
    • Ao “ativar” o recurso em um dispositivo com iOS 18.1 ou superior, também era possível empurrá-lo para dispositivos com versões mais antigas, como firmware 7A294

Como o iOS determina a localização

  • A investigação inicial mostrou que dispositivos iOS podem determinar o país e a região do usuário por vários caminhos
    • Fazem uma requisição GET para https://gspe1-ssl.ls.apple.com/pep/gcc para obter um código de país baseado na localização do IP
    • Verificam a configuração de região da Apple Store
    • Podem considerar localidade, fuso horário e idioma do dispositivo
  • Em dispositivos com GPS e rede móvel, também é possível uma determinação mais direta da localização
    • Localização baseada em sinal de GPS
    • Determinação baseada em rede móvel comparando MCC/MNC com um banco de dados interno
  • Para reduzir o escopo do experimento, foi usado um iPad de 10ª geração modelo WiFi sem conectividade celular
    • Falsificar GPS e torres de celular também não seria impossível com uma gaiola de Faraday, mas exigiria muito mais trabalho

Contornos que falharam: proxy e simulação de localização

  • Primeiro, foram alterados localidade e região nas configurações do iOS, e o tráfego de rede do dispositivo foi passado por proxy em um notebook para fazer a resposta do endpoint de geolocalização parecer US em vez de IN
  • Também se tentou falsificar o CoreLocation com o recurso de localização simulada do Xcode
  • Isso não funcionou
    • Por causa de certificate pinning, vários apps e telas de configuração falhavam ao se conectar aos servidores da Apple
    • Havia a possibilidade de que conexões necessárias aos servidores da Apple para ativar o recurso tivessem sido bloqueadas, mas isso não foi totalmente verificado
  • Nos logs do console apareciam mensagens sugerindo que o recurso deveria ser ativado, mas na prática a tela de configuração do Hearing Aid não abria

Pistas reveladas no locationd

  • Ao revisar os logs no dia seguinte, apareceram mensagens indicando que o dispositivo parecia concluir que não estava nos EUA, mesmo com IP e localidade falsificados
  • Foram extraídos os binários countryd e locationd para procurar strings relacionadas
  • Dentro do locationd, foi encontrada uma configuração booleana chamada AllowSimulatedLocation, com valor padrão 0
  • Também foi encontrado o getter skipUpdatingRegulatoryDomain, presumivelmente usado em sendUpdateToRDIfAllowed para decidir se o domínio regulatório deve ser atualizado
  • A conclusão foi que, mesmo simulando CoreLocation com a ferramenta integrada do Xcode, isso não afetava a determinação do domínio regulatório do Hearing Aid
    • O recurso Hearing Aid podia ser controlado no macOS, mas a ativação precisava ser feita por um dispositivo iOS
    • Continuou existindo a possibilidade de modificar o binário em um macOS com SIP desativado para ativar o recurso diretamente, mas esse caminho não foi explorado

Enganando a localização por WiFi

  • Dispositivos modernos conseguem triangular a localização em nível de cidade combinando SSIDs WiFi próximos, endereços MAC de roteadores/dispositivos e GPS
  • O motivo de um iPad somente WiFi conseguir mostrar localização precisa em apps mesmo sem GPS ou celular era justamente o posicionamento por localização WiFi
  • Entre os bancos de dados públicos de localização WiFi, foi feito cadastro no Wigle para obter dados de Menlo Park, na Califórnia
  • O Skylift foi forkado e modificado para que um ESP32 transmitisse rapidamente uma rotação de SSIDs WiFi
    • Era assim que o ESP32 imitava o ambiente sem fio de outra região
    • O número de SSIDs em rotação foi aumentado de 10 para 100
  • Como havia muitas redes WiFi reais vindas das casas ao redor da Lagrange Point, o iPad podia reportar outras redes próximas caso esses sinais não fossem enfraquecidos ou sobrepostos

Experimentos com gaiola de Faraday e micro-ondas

  • A gaiola de Faraday inicial foi feita envolvendo uma caixa de papelão com papel-alumínio
  • Dentro da caixa ficaram o ESP32 transmitindo SSIDs da Califórnia e o iPad, que estava conectado ao notebook para acesso à internet e aos logs do console
  • Aproveitando o fato de que WiFi e micro-ondas usam a faixa de 2,4GHz, tentou-se bloquear os persistentes sinais de rede do entorno ligando um micro-ondas com vazamento na potência máxima
  • Foi montado um script para colocar o iPad dentro da caixa, esperar 5 minutos, reiniciar o aparelho e ligar a rede
  • Na primeira tentativa, o iPad ainda era reconhecido como região IN, mas após vários ajustes no processo da gaiola de Faraday, da interferência do micro-ondas e do reboot, a mensagem desejada de mudança de região apareceu no console
  • Depois disso, ao tirar o iPad da caixa e abrir os AirPods, o processo de configuração do Hearing Aid apareceu imediatamente

Procedimento reproduzível e plano de ativação em escala

  • Depois da prova de conceito, começou o trabalho para criar um procedimento mais estável e reproduzível para liberar o recurso a quem precisa
  • Ao longo de vários dias de experimentos repetidos, foi construída uma gaiola de Faraday mais permanente
  • Foi feito o plano de operar um pequeno campo de ativação na Lagrange Point para pessoas em Bengaluru que se beneficiariam de usar os AirPods como aparelho auditivo
  • Participação e atualizações seriam recebidas por uma conta no X e por uma thread de tweets

Comportamento após a ativação

  • O recurso Hearing Aid parecia funcionar como um preset de equalizador enviado aos AirPods, substituindo o modo Transparência
  • Depois que o recurso Hearing Aid era ativado uma vez, a flag do recurso era sincronizada com a conta do iCloud
  • Graças a essa sincronização, não era necessário repetir o mesmo processo em todos os dispositivos para usar o recurso

1 comentários

 
GN⁺ 2024-11-13
Opiniões no Hacker News
  • O recurso Hearing Aid parece ser, na prática, um preset de equalizador enviado aos AirPods, substituindo o modo Transparência.
    Se a Apple não tivesse comercializado isso como “aparelho auditivo” nem usado terminologia médica, provavelmente os reguladores não teriam ido atrás. Outros fones totalmente sem fio com equalizador paramétrico e modo Transparência também conseguem fazer a mesma coisa.
    Em troca, perderia a vantagem de marketing, mas talvez isso em si tenha sido um grande risco calculado. Há uma quantidade enorme de poder de processamento e flexibilidade nesses dispositivos. Mesmo produtos abaixo de US$ 10 que usam o infame SoC JieLi têm, na prática, um computador de 32 bits a 160 MHz em cada ouvido.
    É surpreendente que ainda não existam fones totalmente sem fio que destaquem firmware open source, e parece que houve alguns trabalhos de customização em comunidades chinesas e russas.

    • É um problema muito maior do que simplesmente “perder a vantagem de marketing”. A Apple não atua no vácuo, e Sony e Bose também estão mirando o mesmo mercado, provavelmente empurrando o marketing à sua própria maneira.
      Se a Apple disser apenas algo como “funciona em certa medida como um aparelho auditivo”, ficará em desvantagem considerável frente a outras marcas que colocarão pôsteres em locais bem visíveis nos pontos de venda das lojas. Claro, a Apple ainda pode vencer nas vendas online ou entre pessoas que não precisam necessariamente de alta confiabilidade.
      https://electronics.sony.com/otc-hearing-aids
    • Existem os PineBuds Pro: https://pine64.com/product/pinebuds-pro-open-firmware-capabl...
    • Para quem tiver curiosidade, TWS significa “True Wireless Stereo”.
      https://audiochamps.com/what-does-tws-mean/
      Ou seja, são fones Bluetooth.
    • Talvez tenham mirado pessoas que usam FSA/HSA para despesas médicas.
    • Se essa for a única preocupação, ainda bem. Parece improvável que a Apple desative esse recurso.
      Eu estava preocupado se haveria outras questões regulatórias, como volume, mas não consigo pensar exatamente no que seria.
  • Há uma parte dizendo que “como WiFi e micro-ondas operam na mesma frequência, 2,4 GHz, colocaram um micro-ondas vazando para funcionar na potência máxima para bloquear sinais de rede contínuos pelo ar”; curiosamente, o WiFi tenta evitar intencionalmente esse tipo de interferência.
    O micro-ondas não emite potência no ponto de cruzamento por zero da alimentação em corrente alternada e, nesse intervalo, não há sinal no ar para interferir nas ondas de rádio. Como o WiFi escuta antes de transmitir, ele tenta não colidir com outros dispositivos, e o sinal do micro-ondas é suficiente para acionar essa detecção.
    Não me lembro se, por o micro-ondas usar meia onda, surgem janelas de 1/120 de segundo 60 vezes por segundo, ou se há apenas um trecho crítico perto do cruzamento por zero em que a potência é insuficiente para causar interferência. Neste caso, parece bem provável que o micro-ondas, na prática, não tenha feito grande coisa.

    • Independentemente do que diga a análise teórica, em pelo menos uma combinação de micro-ondas e roteador eu consegui reproduzir um micro-ondas interferindo no sinal WiFi.
      Mas também houve outras vezes em que não houve efeito perceptível.
    • Fico curioso sobre por que um micro-ondas não emite potência no cruzamento por zero da alimentação em corrente alternada. Por projeto, o micro-ondas modula o sinal de 2,4 GHz em cima de 50/60 Hz?
    • Isso significa que dois micro-ondas vazando, conectados a fases diferentes da rede elétrica, conseguiriam bloquear WiFi de 2,4 GHz?
    • Em teoria, sim, mas na prática micro-ondas interferindo em WiFi é um fenômeno tão conhecido que até aparece no XKCD.
  • No Reddit, alguém informou que é possível acessar diretamente o recurso de teste auditivo por uma URL especial.
    x-apple-health://HearingAppPlugin.healthplugin/HearingTest
    Fico imaginando se também seria possível encontrar um deeplink parecido para ativar o modo Hearing Aid.
    https://www.reddit.com/r/AirpodsPro/comments/1gftyqo/is_the_...

    • Também investiguei essa parte, mas não encontrei nada.
      Até certo ponto, o método atual era simplesmente uma abordagem mais fácil.
      Tenho certeza de que deve haver algo. A Apple mudou o esquema de manipuladores de URL no iOS 18, então os repositórios antigos que faziam referência a isso não funcionam mais.
  • Sou o Rithwik, um dos autores. Se tiverem perguntas, responderei.

    • Hack realmente muito legal, e foi uma leitura divertida do começo ao fim. Se eu tivesse que fazer uma pergunta, seria: o que vocês planejam fazer em seguida com a gaiola de Faraday recém-criada?
    • Fiquei meio confuso com a forma como a região é tratada. Tenho um iPhone comprado no Canadá, conta Apple canadense, cartão de crédito e endereço de cobrança canadenses, e a localização da App Store também está definida como Canadá, mas moro na Espanha há alguns anos.
      Para a Apple, continuo sendo completamente “canadense”. Não vejo nenhum dos recursos relacionados a App Stores de terceiros limitados à UE, e tenho acesso a recursos como Apple Intelligence, que não podem ser usados na UE.
      Como o recurso de aparelho auditivo não está disponível nem no Canadá nem na Espanha, não consigo testar, mas fico curioso sobre como a restrição regional do aparelho auditivo difere das outras restrições regionais e ativações por região da Apple.
    • O texto ficou excelente. Ver o funcionamento de apps iOS sendo demonstrado de forma tão casual por meio de hacking parece um mundo completamente diferente, especialmente porque eu achava que o iOS era bem fechado.
      Gostaria de saber como você começou e se há materiais que recomendaria. E, já que você disse que no fim não comprou fones caríssimos, também fico curioso sobre quais fones você usa ou gostaria de comprar.
    • Hack realmente muito legal. Fiquei um pouco surpreso por terem precisado chegar a falsificar uma rede WiFi, mas é impressionante que tenham descoberto isso no fim.
    • Gostei de ler o texto. Fico curioso para saber o quanto seus avós estão satisfeitos com o recurso de aparelho auditivo. Também gostaria de saber se ele realmente funciona bem e como é a duração da bateria.
  • Fico curioso se essa configuração é redefinida depois de algum tempo ou se basta fazer uma vez
    Tenho receio de que o iPad ou os AirPods decidam que ficaram tempo demais na Índia e removam o recurso

    • Sou um dos autores do texto. Essa é uma configuração que só precisa ser feita uma vez
      Quando o recurso é ativado, uma flag é definida na conta do iCloud, então ele continua funcionando para onde quer que você viaje. Ao mesmo tempo, um perfil de equalização é enviado para o modo Transparência dos AirPods, ativando a função de aparelho auditivo
      Depois de concluído, permanece assim a menos que você redefina os AirPods
      Mas há uma peculiaridade interessante. Se você ativar esse recurso nos AirPods de outra pessoa e, nos dispositivos ou na conta dela, o recurso não estiver no estado “disponível”, essa pessoa não conseguirá ajustar as configurações no próprio dispositivo
  • Este caso mostra muito bem por que software livre é importante. Bloqueio regional é uma prática hostil que aqui não faz sentido nenhum
    Se o software ou o firmware fosse livre e aberto, seria possível aplicar um patch para remover ou desativar o bloqueio regional. É bem provável que uma restrição dessas nem tivesse sido incluída para começo de conversa

    • Em geral, restrições regionais fazem sentido
      Nos países aprovados, os órgãos reguladores provavelmente tiveram de aprovar isso como um dispositivo médico assistivo. Se dispositivos médicos assistivos e afins pudessem ser vendidos sem aprovação, coisas capazes de ferir ou matar pessoas de verdade poderiam ser vendidas sob o nome de dispositivo médico assistivo
      O problema aqui é que este caso parece um recurso assistivo inofensivo, então proibi-lo soa ridículo. Mas, se a regulação não funciona, ela não serve para nada
      No fim, os reguladores de outros países podem ser lentos ou, no pior caso, a Apple pode não ter solicitado aprovação
  • Fico curioso se alguém sabe o que o modo Hearing Protection realmente faz. Ele não é oferecido na Noruega nem fora da América do Norte
    Já usei os AirPods Pro 2 antes para proteção auditiva, e funcionaram muito bem. Fico na dúvida se é só porque a expressão “Hearing Protection” só pode ser usada nos EUA, ou se de fato há algo melhor do que o cancelamento de ruído comum do Pro 2

    • É bem provável que as únicas novidades sejam o app de teste auditivo e o marketing. Os AirPods já tinham esses recursos
      O Hearing Protection, quando em funcionamento, soa como compressão multibanda. Ou seja, divide a faixa de frequências audíveis em várias bandas e aplica compressão separadamente a cada uma delas. Mas isso também parece algo que já vinha sendo feito antes
  • Fico curioso se isso é realmente diferente do modo Transparência personalizado de Acessibilidade que já existia antes do anúncio da função de aparelho auditivo
    Era possível usar o audiograma armazenado no app Saúde. Só que o modo Transparência personalizado soava bem ruim, como um filtro pente

    • Exato. Não parece ser diferente. Venho usando esse recurso desde março
  • Realmente excelente. No i3Detroit, estamos construindo uma gaiola de Faraday do tamanho de um closet walk-in. Claro que, por estarmos nos EUA, ela não é necessária para esse hack em si, mas há muitos motivos divertidos para ter uma
    O maior motivo é que há um transmissor da WOMC bem perto, com EIRP de 135.000 watts. Isso se intromete em todo tipo de equipamento e dificulta outras medições de radiofrequência. Ao fazer coisas como alinhamento de amplificadores, é bom estabelecer uma base sólida em um ambiente silencioso antes de acrescentar possíveis causas como intermodulação
    Podemos depurar WiFi, Bluetooth e outros equipamentos sem fio sem incontáveis nós ao redor. Também dá para filtrar a saída do sniffer, mas filtrar a própria entrada é mais divertido
    Também dá para ligar uma rede celular 1G ou 2G sem se preocupar com licença de frequência. Dá para praticar técnicas agressivas de WiFi que poderiam interferir na rede existente do hackerspace
    Dá para brincar com um spoofer de GPS em uma zona sem FCC, ou fazer experimentos divertidos que queremos conduzir com responsabilidade. Também dá para trancar um iPhone lá dentro e ver se ele reinicia sozinho

    • Exato. É até surpreendente termos vivido até agora sem uma gaiola de Faraday
      Estou ansioso para colocar dispositivos lá dentro e encher o ar interno de ondas de rádio sem me preocupar com licenças
      Vi uma gaiola de Faraday em tamanho real no Indian Institute of Science, e foi bom ver que a estrutura e a abordagem eram parecidas com as nossas
  • Neste caso, certificate pinning também parece algo bem fácil de resolver. É só usar um proxy ou VPN. Ainda assim, a confusão com a gaiola de Faraday é bem legal

    • Acho que seria preciso explicar como uma VPN resolve o problema de certificate pinning. O autor já estava modificando o tráfego HTTP/S do iPhone por meio de uma conexão de rede com proxy, e, até onde sei, uma VPN não permite falsificar uma resposta HTTPS válida usando um certificado de servidor fixado
    • No fim, foi basicamente isso que fizemos. Usamos uma VPN comercial e fornecemos internet ao dispositivo por um cabo USB
      Provavelmente também teria funcionado usar Tailscale em algum VPS
    • Não vejo como usar uma VPN torna mais fácil fazer um ataque man-in-the-middle contra si mesmo para modificar a resposta dessa requisição GET