Permanecendo vivo: rastreamento de segundo plano e o aplicativo NHS COVID-19
- O aplicativo NHS COVID-19 parece funcionar corretamente quando executado em segundo plano em dispositivos iOS, diferente do aplicativo australiano COVIDSafe
- O aplicativo evita relatórios falsos, fornecendo aos usuários os sintomas com um código de referência: esse código é associado aos resultados formais dos testes antes que uma ação seja tomada.
- O NHS COVID-19 instrui os profissionais de saúde a desativar o Bluetooth no dispositivo enquanto usam EPI, explicando que “suas interações no trabalho não devem ser capturadas quando você estiver usando EPI”
- Atualização 0925 BST, 7 de maio : adicionamos uma mensagem "Como o aplicativo consegue permanecer eficaz em segundo plano?" seção abaixo, explicando como o aplicativo consegue permanecer vivo ao se comunicar com dispositivos Android e abordando alguns dos desafios e técnicas da comunicação iOS-iOS
- Atualização 1145 BST, 7 de maio : adicionamos um "O aplicativo coleta dados pessoais e revela minha identidade?" seção abaixo.
Desafios no rastreamento de contatos quando um aplicativo não é exibido na tela
Os desenvolvedores de aplicativos têm poucas opções quando se trata de manter os aplicativos “vivos” quando não estão na frente e no centro do dispositivo do usuário. A Apple gerencia cuidadosamente essas opções para garantir que os aplicativos não invadam a privacidade do usuário ou que as baterias do usuário sejam descarregadas indevidamente. Em particular, eles fazem uma distinção sobre se um aplicativo tem foco - ou seja. é mostrado na tela - ou está sendo executado em segundo plano. Atualizações recentes no iOS limitaram a capacidade dos desenvolvedores de acessar dados em segundo plano: por exemplo, antes de limitar a coleta de plano de fundo de maneira tão eficaz, o Uber era capaz de rastrear os movimentos de um usuário, mesmo quando não estava em um táxi.
Para ser executado em um sentido significativo em segundo plano, o editor de um aplicativo precisa obter permissão da Apple quando é enviado à App Store, marcando-o com um conjunto de " Modos de segundo plano ". Esses modos de segundo plano são limitados para uso na transmissão de vídeo de um dispositivo para outro, na coleta de atualizações de local, na ação de um telefone ou no Bluetooth. Por exemplo, esses modos são o que permite ao seu telefone executar o AirPlay em segundo plano, tocar música sem o Spotify sempre aparecer, ligar para alguém com o WhatsApp e colocá-lo em segundo plano, ou acompanhar sua execução no Strava.
Esses modos são limitados, no entanto, e os usuários podem estar familiarizados com as notificações do iPhone perguntando se os aplicativos devem ter permissão para acessar sua localização em segundo plano. Mesmo quando um usuário concede essas permissões, o telefone pode continuar solicitando confirmação de que esta é a coisa certa a fazer.
Os aplicativos de rastreamento de contato são criados usando Bluetooth de baixa energia (BLE), que - simplesmente - permite que os dispositivos se reconheçam. Teoricamente, os modos “Usa acessórios Bluetooth LE” e “Atua como acessório Bluetooth LE” da Apple são ideais para isso e permitem o uso do BLE em segundo plano. No entanto, embora um aplicativo em segundo plano usando esses modos possa continuar a se comunicar com qualquer dispositivo BLE com o qual já esteja em comunicação (como um bloqueio inteligente Bluetooth), ele não poderá controlar a taxa de transmissão para dispositivos de pesquisa que não viu antes. Quando em segundo plano, isso torna mais difícil procurar sinais de novos dispositivos, comunicar-se com eles de maneira significativa e, em particular, identificar dispositivos que não sejam da Apple. Isso dificulta o contato com aplicativos de rastreamento que devem ser executados continuamente em segundo plano.
Para citar a documentação da Apple sobre o serviço :
Todos os UUIDs de serviço [...] podem ser descobertos apenas por um dispositivo iOS que os explora explicitamente. [... e] para aplicativos que anunciam estão em segundo plano, a frequência com que seu dispositivo periférico envia pacotes de publicidade pode diminuir
Soluções alternativas e abordagens alternativas para rastreamento
Obviamente, esse não é um novo desafio para os desenvolvedores: há muito tempo tentam encontrar métodos para manter os aplicativos em segundo plano e coletar restrições para rastrear dados . Estruturas como o AltBeacons de código aberto surgiram para resolver isso, não são viáveis para rastreamento de contatos em que um dispositivo deve estar continuamente procurando por novos dispositivos. Como a ABC encontrou na Austrália, ao analisar seu aplicativo COVIDSafe nacional, não havia uma solução prática para isso. Existem algumas explorações que podem ser temporariamente úteis - como registrar o aplicativo como um reprodutor de áudio e fazer com que ele toque música - mas essas e outras explorações dessa natureza são desaprovadas pela Apple, representam inconvenientes para os usuários e raramente passam a aprovação para o usuário. Loja de aplicativos.
Enquanto isso, a Apple se prepara para lançar o iOS 13.5 , atualmente disponível na versão beta. A Apple pode fazer alterações em seu próprio sistema que são vantajosas para o rastreamento dessa maneira. 13.5 apresentará vários recursos mais óbvios - como suporte para o FaceID para usuários usando uma máscara ou pelo menos uma rota mais rápida para inserir uma senha - e alguns recursos menos óbvios, como a estrutura ExposureNotification
, que permite exatamente o que o contato aplicativos de rastreamento precisam. Isso não resultará no sistema perfeito, é claro: nem todo usuário poderá tirar proveito disso, pois dispositivos como o iPhone 6 (2015) não são capazes de executar o iOS 13. Enquanto o sistema da Apple usa um padrão global identificador, cada país que o implementa usa um banco de dados nacional isolado. Assim, se um europeu infectado de um país for exposto a um cidadão de outro país europeu, ele não o descobrirá através do rastreamento de contatos.
O COVID-19 ExposureNotification
da Apple fornece uma solução para o que é necessário aqui, mas existem advertências. Mais significativamente, a Apple indicou que apenas o aplicativo poderá utilizá-lo para evitar o uso indevido da tecnologia por outras pessoas.
Então, como o NHS faz isso com o aplicativo COVID-19 ?
Como, então, o NHS COVID-19 britânico pode rastrear efetivamente novos dispositivos em segundo plano, sem "adormecer" (tecnicamente, "ser suspenso") e, assim, tornar-se ineficaz? De nossos testes com a versão 1.0.1b341
do 1.0.1b341
"NHS COVID-19", podemos ver que realmente se comunica efetivamente em segundo plano. Parece que isso é feito através do uso de uma série de soluções inteligentes usando keepalives e notificações. Forçar o encerramento do aplicativo interromperá o rastreamento em segundo plano; no entanto, se o telefone for desligado e ligado novamente, ele continuará se comunicando adequadamente em segundo plano. Esta solução alternativa pode ou não afetar a Apple, mas, neste momento, não foi divulgada, e a Apple aprovou as compilações do aplicativo que eles viram até agora.
Continuamos analisando isso e publicando mais detalhes à medida que as coisas se desenvolvem.
O aplicativo NHS COVID-19 armazena dados confidenciais?
Não. O aplicativo parece muito bem organizado, usando práticas de segurança sensatas e sem armazenamento de dados desnecessários. Ele gira em torno de um linkingId
que é gerado para cada instalação do aplicativo. Esse ID persiste na instalação do aplicativo, portanto, a desinstalação e a reinstalação não redefinirá o identificador.
Observando os dados do aplicativo usando o iPhone Backup Extractor no caminho uk.nhs.nhsx.sonar
, podemos ver que há uma série de arquivos acoplados ao Google Firebase e uma coleção de pequenos Plists (arquivos de configuração) para o restante do aplicativo dados.
Os usuários podem falsamente relatar que possuem o COVID-19?
Se um usuário relatar sintomas, o aplicativo fornecerá um número para ligar para organizar um teste, junto com um código de referência. A ideia é que o resultado do teste seja associado ao código de referência do usuário. Se um usuário relatar falsamente sintomas, a confirmação não aconteceria sem o NHS atualizar o resultado do teste para corresponder ao código do usuário.
O aplicativo solicita permissões de localização?
Não, não tem.
O NHS enganou o público sobre o uso de APIs do Google?
Não. O aplicativo NHS COVID-19 está profundamente integrado à API Firebase, padrão do setor do Google, para armazenamento e gerenciamento de dados. (O NHS não está usando a estrutura de rastreamento de contatos do Google ou da Apple; além de qualquer outra coisa, isso não estará disponível até o lançamento do iOS 13.5.)
Com quais serviços o aplicativo se comunica?
Assim como no aplicativo Android, toda a comunicação material é realizada na API COVID19 do NHS, hospedada em *.covid19.nhs.uk
. O aplicativo faz algumas outras solicitações como consequência do uso do serviço AppCenter da Microsoft , mas nenhuma que seja relevante ou sensível.
Se os funcionários do NHS usarem o aplicativo, isso não levará a falsos positivos?
O aplicativo solicita que os profissionais de saúde desabilitem o Bluetooth em seus dispositivos enquanto usam EPI, afirmando que “suas interações no trabalho não devem ser capturadas quando você estiver usando equipamento de proteção individual”.
Temos o prazer de aprofundar o aplicativo COVID-19 do NHS. Embora tenha havido muita especulação sobre sua funcionalidade, o que vimos é um aplicativo bem construído e seguro. O rastreamento em segundo plano parece funcionar, embora permaneça muito sob controle da Apple se isso continuará sendo eficaz. Como conseqüência, a eficácia da resposta britânica ao COVID-19 agora também está sob o controle da Apple.
A escolha de seguir sozinho ou usar a estrutura da Apple será desafiadora. Seguir a liderança da Apple provavelmente teria sido uma escolha menos controversa. No entanto, o iOS 13.5 ainda não está ativo, enquanto o aplicativo britânico será lançado na versão beta amanhã, e não há nada para impedir o Reino Unido de seguir a Apple nas atualizações subseqüentes. Visto por essas lentes - por que não enviar um julgamento na Ilha de Wight primeiro?
Como o aplicativo consegue se manter eficaz em segundo plano?
Adicionamos esta resposta 0925 BST, 7 de maio, para responder às perguntas que recebemos sobre as especificidades do aplicativo que permanece vivo. O NHSX usou algumas técnicas inteligentes para obter melhores resultados aqui.
O Sun informou ontem à noite que o aplicativo usa APIs Bluetooth privadas, mas não vimos nenhum sinal disso e, desde então, eles alteraram sua história para retratar essa afirmação. O aplicativo NHS COVID-19 usa APIs Bluetooth públicas no iOS e não parece tirar proveito de nenhum privilégio especial. Em vez disso, existem algumas técnicas inteligentes.
A primeira técnica é em resposta ao comportamento do Bluetooth do iOS para aplicativos suspensos. Observamos que a Apple altera a maneira como um aplicativo pode procurar novos dispositivos quando suspenso. Os aplicativos suspensos não conseguem reconhecer corretamente os dispositivos que não tinham visto antes. Como escrevemos acima, é "mais difícil procurar sinais de novos dispositivos, comunicar-se com eles de maneira significativa e, em particular, identificar dispositivos que não sejam da Apple".
O NHSX abordou o desafio de dispositivos que não são da Apple: ao perceber que não podiam influenciar o que o iOS estava fazendo a esse respeito, eles criaram coisas inteligentes em seu aplicativo Android para reconhecer as mensagens restritas e específicas da Apple que um aplicativo em segundo plano em um dispositivo iOS enviaria. Isso fornece ao dispositivo Android informações suficientes para poder conversar com o dispositivo iOS, reativando-o para um estado em que ele possa se comunicar.
A situação sem iOS é um pouco diferente; existe um limite pelo qual o aplicativo NHS COVID-19 pode ficar quieto quando deixado em segundo plano por um período de tempo, e os logs do dispositivo mostram exemplos disso. Nesse caso, o aplicativo foi colocado em segundo plano, mas poderá continuar a varredura (tecnicamente, "transmissão") por mais de uma hora e meia. Outros eventos no telefone - incluindo outros aplicativos usando Bluetooth - podem estender isso.
A sessão uk.nhs.nhsx.sonar-periférico-11919-319 pode anunciar em segundo plano por 6240 segundos
Como conseqüência, não é possível dizer "o aplicativo se tornará ineficaz na comunicação iOS para iOS após um período X": há uma janela variável generosa que o aplicativo precisa manter-se ativa e vários fatores razoáveis que podem faça com que essa janela seja estendida, incluindo outro uso do Bluetooth, a presença de dispositivos Android e a eficácia das notificações.
Existem algumas situações menos comuns em que o iOS pode tentar suspender completamente um aplicativo em segundo plano, por exemplo, onde o sistema está com pouca memória. Quando isso ocorre, a confiabilidade do serviço é afetada. O aplicativo tenta solucionar isso acionando uma notificação por push solicitando que os usuários reabram o aplicativo, mas isso nem sempre funciona, dependendo do estado do dispositivo. Em nossos testes, os dispositivos iOS nos quais executamos o aplicativo continuaram mantendo o serviço em segundo plano em execução durante a noite.
O aplicativo coleta dados pessoais e revela minha identidade?
Adicionamos esta resposta 1145 BST, 7 de maio, para responder às perguntas que recebemos sobre a coleta e transmissão de dados do aplicativo
O aplicativo iOS captura realmente muito poucos dados: trata-se do seu linkingId
. Isso só poderia ser vinculado a uma pessoa se eles relatassem sintomas e organizassem um teste com o NHS usando esse ID.
Um resultado de teste positivo codificado em um ID é efetivamente o que aciona o alarme de rastreamento. A questão, então, é se o NHS armazenaria centralmente os detalhes de uma pessoa coletados no momento do teste juntamente com esse ID. Isso não seria necessário para o aplicativo funcionar e não é intrínseco ao aplicativo. Como escrevemos anteriormente, o aplicativo não tem acesso aos dados de localização além dos primeiros dígitos do código postal de um usuário (que são inseridos pelo usuário na instalação e não são validados).
A questão aqui não é sobre o que o aplicativo armazena: é sobre quais informações o NHS solicita ao reservar um teste e como essas informações são armazenadas.
Se um usuário relatasse sintomas e não organizasse um teste (ou organizasse um teste sem fornecer seu ID), não haveria absolutamente nenhuma maneira de os dois tipos de informações serem vinculados. Obviamente, nesse cenário extremo, isso também impediria o aplicativo de alertar se o usuário tinha o COVID-19.
Continuamos analisando isso e publicando mais detalhes à medida que as coisas se desenvolvem.
de richard atterbury
I am on IOW. The app does require Location Services. Very surprised as every description, including yours, says that it does not
responder por: Reincubate Support
Hi Richard, thanks for your comment! The way the app gets access to Bluetooth on Android is confusing; its request for access makes it appear it's also requesting location access. We detail what's going on with that here — in short, it's a limitation of Android that appears misleading.