Permanecer vivo: rastreo de fondo y la aplicación NHS COVID-19

Publicado Actualizado
Cover image for: Permanecer vivo: rastreo de fondo y la aplicación NHS COVID-19
  • La aplicación NHS COVID-19 parece funcionar correctamente cuando se ejecuta en segundo plano en dispositivos iOS, a diferencia de la aplicación australiana COVIDSafe
  • La aplicación evita informes falsos al proporcionar a los usuarios síntomas con un código de referencia: ese código se asocia con los resultados formales de la prueba antes de tomar medidas
  • NHS COVID-19 indica a los trabajadores de la salud que apaguen Bluetooth en su dispositivo mientras usan PPE, explicando que "sus interacciones en el trabajo no deben capturarse cuando usa PPE"
  • Actualización 0925 BST 7 de mayo : hemos agregado un "¿Cómo se las arregla la aplicación para mantenerse efectiva en segundo plano?" sección a continuación, que explica cómo la aplicación logra mantenerse con vida cuando se comunica con dispositivos Android, y cubre algunos de los desafíos y técnicas para la comunicación de iOS a iOS
  • Actualización 1145 BST 7 de mayo : hemos agregado un mensaje "¿La aplicación recopila datos personales y revela mi identidad?" sección a continuación.

Desafíos en el seguimiento de contactos cuando una aplicación no se muestra en la pantalla

Los desarrolladores de aplicaciones tienen pocas opciones cuando se trata de mantener las aplicaciones "vivas" cuando no están al frente y centradas en el dispositivo de un usuario. Apple gestiona cuidadosamente estas opciones para garantizar que las aplicaciones no invadan la privacidad del usuario o agoten las baterías del usuario. En particular, hacen una distinción en cuanto a si una aplicación tiene foco , es decir. se muestra en la pantalla o se ejecuta en segundo plano. Las actualizaciones recientes de iOS han limitado la capacidad de los desarrolladores de acceder a los datos mientras están en segundo plano: por ejemplo, antes de poder limitar la recopilación de fondo de manera tan efectiva, Uber pudo rastrear los movimientos de un usuario incluso cuando no estaba en una cabina.

Para ejecutarse en un sentido significativo en segundo plano, el editor de una aplicación necesita obtener permiso de Apple cuando se envía a la App Store, marcándolo con un conjunto de " Modos de fondo ". Estos modos de fondo están limitados para su uso al transmitir video de un dispositivo a otro, al recopilar actualizaciones de ubicación, actuar como un teléfono o usar Bluetooth. Por ejemplo, estos modos son los que permiten que su teléfono ejecute AirPlay en segundo plano, reproduzca música sin que siempre se muestre Spotify, llame a alguien con WhatsApp y luego póngalo en segundo plano o realice un seguimiento de su ejecución en Strava.

The NHS COVID-19 app
La aplicación NHS COVID-19

Sin embargo, estos modos son limitados y los usuarios pueden estar familiarizados con las notificaciones de iPhone preguntando si se debe permitir que las aplicaciones accedan a su ubicación en segundo plano. Incluso cuando un usuario concede estos permisos, el teléfono puede continuar solicitando confirmación de que esto es lo correcto.

Las aplicaciones de rastreo de contactos se crean utilizando Bluetooth de baja energía (BLE), que, en pocas palabras, permite que los dispositivos se reconozcan entre sí. Teóricamente, los modos “Usa Bluetooth LE accesorios” y “Actúa como accesorio Bluetooth LE” de Apple son ideales para esto y permiten el uso de BLE en segundo plano. Sin embargo, aunque una aplicación en segundo plano que use estos modos podrá continuar comunicándose con cualquier dispositivo BLE con el que ya esté en comunicación (como un bloqueo inteligente Bluetooth), no podrá controlar la velocidad de transmisión a dispositivos de sondeo que no ha visto antes Cuando está en segundo plano, esto hace que sea más difícil buscar signos de nuevos dispositivos, comunicarse con ellos de manera significativa y, en particular, identificar dispositivos que no sean de Apple. Esto obstaculiza las aplicaciones de rastreo de contactos que deben ejecutarse continuamente en segundo plano.

Para citar la documentación de Apple sobre el servicio :

Todos los UUID de servicio [...] solo pueden ser descubiertos por un dispositivo iOS que los esté buscando explícitamente. [... y para] las aplicaciones publicitarias están en segundo plano, la frecuencia con la que su dispositivo periférico envía paquetes publicitarios puede disminuir

Soluciones y enfoques alternativos para el rastreo

Por supuesto, este no es un nuevo desafío para los desarrolladores: han estado tratando de encontrar métodos para que las aplicaciones permanezcan en segundo plano y recopilen datos de seguimiento de restricciones . Los marcos como el AltBeacons de código abierto han surgido para abordar esto, no son viables para el seguimiento de contactos donde un dispositivo debe estar continuamente buscando nuevos dispositivos. Como ABC encontró en Australia, al mirar su aplicación nacional COVIDSafe, no ha habido una solución práctica para esto. Existen algunas vulnerabilidades que pueden ser útiles temporalmente, como registrar la aplicación de uno como reproductor de audio y hacer que reproduzca música, pero Apple desaprueba estas y otras vulnerabilidades de esta naturaleza, incomodan a los usuarios y rara vez aprueban Tienda de aplicaciones.

Mientras tanto, Apple se ha estado preparando para lanzar iOS 13.5 , que actualmente está disponible en versión beta. Apple puede realizar cambios en su propio sistema que son ventajosos para el seguimiento de esta manera. 13.5 presentará una serie de características más obvias, como la compatibilidad con FaceID para los usuarios que usan una máscara , o al menos una ruta más rápida para ingresar un código de acceso, y algunas características menos obvias, como el marco de ExposureNotification que permite exactamente lo que el contacto se necesitan aplicaciones de rastreo. Por supuesto, esto no dará como resultado el sistema perfecto: no todos los usuarios podrán aprovechar esto, ya que dispositivos como el iPhone 6 (2015) no pueden ejecutar iOS 13. Mientras que el sistema de Apple utiliza un estándar global identificador, cada país que lo implementa utiliza una base de datos nacional aislada. Por lo tanto, si un europeo infectado de un país está expuesto a un ciudadano de otro país europeo, no lo descubrirá a través del rastreo de contactos.

La Notificación de ExposureNotification COVID-19 de Apple proporciona una solución para lo que se necesita aquí, pero hay advertencias. Lo más significativo es que Apple ha indicado que solo su aplicación podrá usarla para evitar el uso indebido de la tecnología por parte de otros.

Entonces, ¿cómo lo hace el NHS con su aplicación COVID-19 ?

¿Cómo, entonces, puede el COVID-19 del NHS británico rastrear efectivamente nuevos dispositivos mientras está en segundo plano, sin "quedarse dormido" (técnicamente, "suspendido") y por lo tanto quedar ineficaz? De nuestras pruebas con la versión 1.0.1b341 de la aplicación "NHS COVID-19", podemos ver que efectivamente se comunica efectivamente en segundo plano. Parece que esto se hace mediante el uso de una serie de soluciones ingeniosas usando keepalives y notificaciones. Si se cierra la aplicación de forma forzada, se detendrá el rastreo en segundo plano; sin embargo, si el teléfono se apaga y se vuelve a encender, continuará comunicándose correctamente en segundo plano. Esta solución puede fallar o no a Apple, pero en este momento no se ha revelado, y Apple ha aprobado las compilaciones de la aplicación que han visto hasta ahora.

Continuaremos analizando esto y publicaremos más detalles a medida que las cosas se desarrollen.

¿La aplicación NHS COVID-19 almacena datos confidenciales?

No. La aplicación parece muy bien diseñada, utilizando prácticas de seguridad sensatas y sin almacenamiento de datos innecesarios. Gira en torno a un linkingId que se genera para cada instalación de la aplicación. Esta identificación persiste durante la instalación de la aplicación, por lo que desinstalarla y reinstalarla no restablecerá el identificador.

Mirando los datos de la aplicación usando iPhone Backup Extractor bajo la ruta uk.nhs.nhsx.sonar , podemos ver que hay una serie de archivos acoplados a Google Firebase y una colección de pequeñas listas (archivos de configuración) para el resto de la aplicación. datos.

Looking at the NHS COVID-19 app’s files in a backup
Mirando los archivos de la aplicación NHS COVID-19 en una copia de seguridad

¿Pueden los usuarios autoinformar falsamente que tienen COVID-19?

Si un usuario informa síntomas, la aplicación proporciona un número para llamar para organizar una prueba, junto con un código de referencia. La idea es que el resultado de la prueba se asocie con el código de referencia del usuario. Si un usuario informara falsamente los síntomas, la confirmación no sucedería sin que el NHS actualice el resultado de la prueba para que coincida con el código del usuario.

¿La aplicación solicita permisos de ubicación?

No, no lo hace.

¿El NHS engañó al público sobre el uso de las API de Google?

No. La aplicación NHS COVID-19 está profundamente integrada con la API Firebase estándar de la industria de Google para el almacenamiento y administración de datos. (El NHS no está utilizando el marco de seguimiento de contactos de Google o Apple; aparte de cualquier otra cosa, esto no estará disponible hasta el lanzamiento de iOS 13.5).

¿Con qué servicios se comunica la aplicación?

Al igual que con la aplicación de Android, toda la comunicación material se ejecuta a través de la API COVID19 del NHS, alojada en *.covid19.nhs.uk . La aplicación realiza algunas otras solicitudes como consecuencia del uso del servicio AppCenter de Microsoft , pero ninguna que sea material o delicada.

Si los trabajadores del NHS usan la aplicación, ¿no dará lugar a falsos positivos?

La aplicación solicita a los trabajadores de la salud que desactiven Bluetooth en sus dispositivos mientras usan PPE, indicando que "sus interacciones en el trabajo no deben capturarse cuando usa equipo de protección personal".

The NHS COVID-19 app's PPE Bluetooth prompt
El mensaje PPE Bluetooth de la aplicación NHS COVID-19


Nos complace profundizar en la aplicación COVID-19 del NHS. Si bien se ha especulado mucho sobre su funcionalidad, lo que hemos visto es una aplicación bien construida y segura. El rastreo en segundo plano parece funcionar, aunque queda mucho en el control de Apple en cuanto a si esto seguirá siendo efectivo. Como consecuencia, la efectividad de la respuesta británica a COVID-19 ahora también está bajo el control de Apple.

La elección de hacerlo solo o usar el marco de Apple habrá sido un desafío. Seguir el ejemplo de Apple probablemente habría sido una opción menos controvertida. Sin embargo, iOS 13.5 aún no está disponible, mientras que la aplicación británica se lanzará en beta mañana, y no hay nada que impida que el Reino Unido se mueva para seguir a Apple en las actualizaciones posteriores. Visto a través de esa lente, ¿por qué no enviar primero una prueba en la Isla de Wight?


¿Cómo se las arregla la aplicación para mantenerse efectiva en segundo plano?

Hemos agregado esta respuesta 0925 BST, 7 de mayo, para responder las preguntas que hemos recibido sobre los detalles de la aplicación para mantenerse con vida. NHSX ha utilizado algunas técnicas inteligentes para obtener mejores resultados aquí.

The Sun informó anoche que la aplicación usa API privadas de Bluetooth, pero no hemos visto ninguna señal de esto y desde entonces han modificado su historia para retractarse de esta afirmación. La aplicación NHS COVID-19 utiliza API públicas de Bluetooth dentro de iOS y no parece aprovechar ningún privilegio especial. En cambio, hay algunas técnicas inteligentes.

La primera técnica es en respuesta al comportamiento Bluetooth de iOS para aplicaciones suspendidas. Notamos que Apple cambia la forma en que una aplicación puede buscar nuevos dispositivos cuando se suspende. Las aplicaciones suspendidas no pueden reconocer correctamente los dispositivos que no han visto antes. Como escribimos anteriormente, es "más difícil buscar signos de nuevos dispositivos, comunicarse con ellos de manera significativa y, en particular, identificar dispositivos que no sean de Apple".

NHSX abordó el desafío de dispositivos que no son de Apple al revés: al darse cuenta de que no podían influir en lo que iOS estaba haciendo a este respecto, han creado cosas inteligentes en su aplicación de Android para reconocer los mensajes restringidos específicos de Apple que una aplicación de fondo en un dispositivo iOS enviaría. Esto le da al dispositivo Android suficiente información para poder hablar con el dispositivo iOS, volviendo a activarlo en un estado en el que puedan comunicarse.

La situación sin iOS es un poco diferente; hay un umbral por el cual la aplicación NHS COVID-19 puede quedarse en silencio cuando se deja en segundo plano durante un período de tiempo, y los registros del dispositivo muestran ejemplos de esto. En este caso, la aplicación ha sido puesta en segundo plano, pero podrá continuar escaneando (técnicamente, "transmitiendo") durante más de una hora y media. Otros eventos en el teléfono, incluidas otras aplicaciones que usan Bluetooth, pueden extender esto.

La sesión uk.nhs.nhsx.sonar-periférica-11919-319 puede anunciarse en segundo plano durante 6240 segundos

Como consecuencia, no es posible decir "la aplicación se volverá ineficaz en la comunicación de iOS a iOS después de X período de tiempo": hay una ventana variable generosa que la aplicación tiene que mantenerse con vida, y una serie de factores razonables que pueden desencadenar la ampliación de esta ventana, incluido otro uso de Bluetooth, la presencia de dispositivos Android y la efectividad de las notificaciones.

Hay algunas situaciones menos comunes en las que iOS podría intentar suspender completamente una aplicación en segundo plano, por ejemplo, cuando el sistema se está quedando sin memoria. Cuando esto ocurre, la confiabilidad del servicio se ve afectada. La aplicación intenta solucionar esto activando una notificación push que solicita a los usuarios que vuelvan a abrir la aplicación, pero esto no siempre funcionará, dependiendo del estado del dispositivo. En nuestras pruebas, los dispositivos iOS en los que ejecutamos la aplicación han seguido manteniendo el servicio en segundo plano ejecutándose durante la noche.


¿La aplicación recopila datos personales y revela mi identidad?

Hemos agregado esta respuesta 1145 BST, 7 de mayo, para responder las preguntas que hemos recibido sobre la recopilación y transmisión de datos de la aplicación

La aplicación iOS captura muy pocos datos: se trata de su linkingId . Eso solo podría vincularse a una persona si informan síntomas y organizan una prueba con el NHS utilizando esa identificación.

Un resultado positivo de la prueba que se codifica con una ID es efectivamente lo que activa la alarma de rastreo. La pregunta es si el NHS almacenará de manera centralizada los datos de una persona recopilados en el momento de la prueba junto con esa identificación. Esto no sería necesario para que la aplicación funcione, y no es intrínseco a la aplicación. Como escribimos anteriormente, la aplicación no tiene acceso a los datos de ubicación más allá de los primeros dígitos del código postal de un usuario (que el usuario ingresa en la configuración y no se validan).

La pregunta aquí no se trata de qué almacena la aplicación: se trata de qué información solicita el NHS al reservar una prueba y cómo se almacena esa información.

Si un usuario informara síntomas y no organizara una prueba (o organizara una prueba sin proporcionar su ID), no habría absolutamente ninguna forma de vincular los dos tipos de información. Por supuesto, en este escenario extremo esto también evitaría que la aplicación alertara si el usuario tuviera COVID-19.

Continuaremos analizando esto y publicaremos más detalles a medida que las cosas se desarrollen.

Comentarios (1)

I am on IOW. The app does require Location Services. Very surprised as every description, including yours, says that it does not

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.


¿Podemos mejorar este artículo?

Nos encanta escuchar de los usuarios: ¿por qué no enviarnos un correo electrónico, dejar un comentario o tuitear? @reincubate?

© 2008 - 2020 Reincubate Ltd. Todos los derechos reservados. Registrado en Inglaterra y Gales #5189175, VAT GB151788978. Reincubate y Camo son marcas registradas. Política de privacidad & condiciones. Recomendamos la autenticación de múltiples factores. Construido con en Londres.