Остаться в живых: отслеживание фона и приложение NHS COVID-19

опубликованный обновленный
Cover image for: Остаться в живых: отслеживание фона и приложение NHS COVID-19
  • Приложение NHS COVID-19 работает правильно в фоновом режиме на устройствах iOS, в отличие от австралийского приложения COVIDSafe
  • Приложение предотвращает ложные отчеты, предоставляя пользователям симптомы с помощью ссылочного кода: этот код затем связывается с официальными результатами теста, прежде чем предпринимать какие-либо действия.
  • NHS COVID-19 инструктирует работников здравоохранения отключать Bluetooth на своем устройстве во время ношения средств индивидуальной защиты, объясняя, что «ваши взаимодействия на работе не должны регистрироваться, когда вы носите средства индивидуальной защиты»
  • Обновление 0925 BST 7 мая : мы добавили «Как приложение может оставаться эффективным в фоновом режиме?» раздел ниже, объясняющий, как приложению удается выжить при взаимодействии с устройствами Android, и освещающий некоторые проблемы и методы для взаимодействия iOS-iOS
  • Обновление 1145 BST 7 мая : мы добавили «Собирает ли приложение личные данные и показывает мою личность?» раздел ниже.

Проблемы в отслеживании контактов, когда приложение не отображается на экране

Разработчики приложений имеют несколько вариантов, когда речь идет о том, чтобы поддерживать «живые» приложения, когда они не находятся в первых рядах и находятся в центре устройства пользователя. Apple тщательно управляет этими параметрами, чтобы приложения не нарушали конфиденциальность пользователей и не истощали батареи пользователей. В частности, они проводят различие в том, фокусируется ли приложение - т.е. это показано на экране - или работает в фоновом режиме. Недавние обновления для iOS ограничили возможности разработчиков получать доступ к данным в фоновом режиме: например, до того, как столь эффективно ограничить сбор данных в фоновом режиме, Uber мог отслеживать движения пользователя, даже когда он не в кабине.

Для полноценного запуска в фоновом режиме издателю приложения необходимо получить разрешение от Apple, когда оно отправляется в App Store, пометив его набором « фоновых режимов ». Эти фоновые режимы ограничены для использования при передаче видео с одного устройства на другое, при сборе обновлений местоположения, использовании телефона или использовании Bluetooth. Например, эти режимы позволяют вашему телефону запускать AirPlay в фоновом режиме, воспроизводить музыку без постоянного показа Spotify, звонить кому-нибудь с помощью WhatsApp и затем помещать его в фоновый режим или отслеживать свой запуск в Strava.

The NHS COVID-19 app
Приложение NHS COVID-19

Однако эти режимы ограничены, и пользователи могут быть знакомы с уведомлениями iPhone, спрашивающими, следует ли разрешать приложениям доступ к вашему местоположению в фоновом режиме. Даже когда пользователь предоставляет эти разрешения, телефон может продолжать запрашивать подтверждение того, что это правильно.

Приложения для отслеживания контактов создаются с использованием Bluetooth с низким энергопотреблением (BLE), который, проще говоря, позволяет устройствам распознавать друг друга. Теоретически, режимы Apple «Использует аксессуары Bluetooth LE» и «Действует как аксессуар Bluetooth LE» идеально подходят для этого и позволяют использовать BLE в фоновом режиме. Тем не менее, хотя фоновое приложение, использующее эти режимы, сможет продолжать связь с любыми устройствами BLE, с которыми оно уже связано (например, с помощью смарт-блокировки Bluetooth), оно не сможет контролировать скорость широковещательной передачи на устройства опроса. что он не видел раньше. На заднем плане это затрудняет поиск признаков новых устройств, осмысленное общение с ними и, в частности, идентификацию устройств сторонних производителей. Это скорее мешает приложениям отслеживания контактов, которые должны непрерывно работать в фоновом режиме.

Чтобы процитировать документацию Apple по сервису :

Все UUID [...] службы могут быть обнаружены только устройством iOS, которое явно сканирует их. [... и для] приложений, которые размещают рекламу в фоновом режиме, частота, с которой ваше периферийное устройство отправляет рекламные пакеты, может уменьшиться

Обходные пути и альтернативные подходы для отслеживания

Конечно, это не новая проблема для разработчиков: они давно пытаются найти методы, позволяющие приложениям оставаться на заднем плане и собирать данные об отслеживании ограничений . Фреймворки, такие как AltBeacons с открытым исходным кодом , появились для решения этой проблемы, не пригодны для отслеживания контактов, когда устройство должно постоянно искать новые устройства. Как обнаружили ABC в Австралии, когда смотрели на свое национальное приложение COVIDSafe, практического решения для этого не было. Существует несколько эксплойтов, которые могут быть временно полезными - например, регистрация приложения в качестве аудиоплеера и воспроизведение музыки - но эти и другие эксплойты подобного рода недовольны Apple, доставляют неудобства пользователям и редко передают одобрение Магазин приложений.

Тем временем Apple готовит к выпуску iOS 13.5 , которая в настоящее время доступна в бета-версии. Apple может вносить изменения в свою собственную систему, которые выгодно отслеживать таким образом. 13.5 представит ряд более очевидных функций - таких как поддержка FaceID для пользователей, носящих маску , или, по крайней мере, более быстрый путь к вводу пароля - и некоторые менее очевидные функции, такие как структура ExposureNotification которая обеспечивает только то, что контакт трассировка приложений нужна. Конечно, это не приведет к созданию идеальной системы: не каждый пользователь сможет воспользоваться этим, поскольку такие устройства, как iPhone 6 (2015), не могут работать под управлением iOS 13. Хотя система Apple использует глобальный стандарт идентификатор, каждая страна, которая реализует его, использует изолированную национальную базу данных. Таким образом, если зараженный европеец из одной страны подвергается воздействию гражданина из другой европейской страны, он не обнаружит его с помощью отслеживания контактов.

Apple COVID-19 ExposureNotification предоставляет решение для того, что здесь необходимо, но есть предостережения. Наиболее существенно, Apple указала, что только их приложение сможет использовать его, чтобы предотвратить злоупотребление этой технологией другими.

Так, как NHS делает это с их приложением COVID-19 ?

Как же тогда британский NHS COVID-19 может эффективно отслеживать новые устройства, пока он не заземлен, не «засыпая» (технически «подвисая») и, таким образом, оказываясь неэффективным? Из нашего тестирования 1.0.1b341 «NHS COVID-19» версии 1.0.1b341 видно, что он действительно эффективно взаимодействует в фоновом режиме. Похоже, что это делается с помощью ряда хитрых обходных путей с использованием keepalive и уведомлений. Принудительное завершение работы приложения прекратит фоновую трассировку, однако, если вместо этого телефон выключится и снова включится, он продолжит правильно взаимодействовать в фоновом режиме. Этот обходной путь может не соответствовать Apple, но на данный момент он не был раскрыт, и Apple утвердила сборки приложения, которые они видели до сих пор.

Мы продолжаем изучать это и будем публиковать более подробную информацию по мере развития событий.

Хранит ли приложение NHS COVID-19 конфиденциальные данные?

Нет. Приложение выглядит очень хорошо собранным, используя разумные методы обеспечения безопасности и без хранения ненужных данных. Он вращается вокруг linkingId который генерируется для каждой установки приложения. Этот идентификатор сохраняется при установке приложения, поэтому удаление и повторная установка не приведет к сбросу идентификатора.

Просматривая данные из приложения с помощью iPhone Backup Extractor по пути uk.nhs.nhsx.sonar , мы видим, что есть ряд файлов, связанных с Google Firebase, и набор небольших списков Plists (файлов конфигурации) для остальных приложений. данные.

Looking at the NHS COVID-19 app’s files in a backup
Просматривая файлы приложения NHS COVID-19 в резервной копии

Могут ли пользователи ложно сообщать, что у них есть COVID-19?

Если пользователь сообщает о симптомах, приложение предоставляет номер для вызова, чтобы организовать тест, а также код ссылки. Идея состоит в том, что результат теста будет связан с кодом пользователя. Если бы пользователь ложно сообщал о симптомах, подтверждение не состоялось бы, если бы NHS не обновило результат теста, чтобы он соответствовал коду пользователя.

Приложение запрашивает разрешения местоположения?

Нет.

Разве NHS вводило общественность в заблуждение по поводу использования API Google?

Нет. Приложение NHS COVID-19 глубоко интегрировано со стандартным API Google Firebase для хранения данных и управления ими. (NHS не использует Google или инфраструктуру отслеживания контактов Apple; кроме всего прочего, она не будет доступна до выпуска iOS 13.5.)

С какими сервисами связывается приложение?

Как и в приложении Android, все материалы передаются через API COVID19 NHS, размещенный в *.covid19.nhs.uk . Приложение делает несколько других запросов в результате использования службы Microsoft AppCenter , но ни один из них не является существенным или конфиденциальным.

Если работники ГСЗ используют приложение, не приведет ли оно к ложным срабатываниям?

Приложение предлагает медицинским работникам отключить Bluetooth на своих устройствах во время ношения средств индивидуальной защиты, заявив, что «ваши взаимодействия на работе не должны регистрироваться, когда вы носите средства индивидуальной защиты».

The NHS COVID-19 app's PPE Bluetooth prompt
Запрос PPE Bluetooth приложения NHS COVID-19


Мы были рады глубже погрузиться в приложение COVID-19 от NHS. Несмотря на то, что было много спекуляций относительно его функциональности, мы увидели хорошо построенное и безопасное приложение. Похоже, что фоновая трассировка работает, хотя Apple все еще контролирует, будет ли она продолжать действовать. Как следствие, эффективность британского ответа на COVID-19 теперь также находится под контролем Apple.

Выбор одного или использования фреймворка Apple будет непростым. Следование примеру Apple, вероятно, было бы менее спорным выбором. Тем не менее, iOS 13.5 еще не запущена, в то время как британское приложение выйдет в бета-версии завтра, и ничто не помешает Великобритании перейти к Apple в последующих обновлениях. Если смотреть сквозь призму - почему бы не отправить суд на остров Уайт первым?


Как приложение может оставаться эффективным в фоновом режиме?

Мы добавили этот ответ 0925 BST, 7 мая, чтобы ответить на вопросы, которые мы получили о специфике приложения, которое остается в живых. NHSX использовали несколько умных методов для улучшения результатов здесь.

Вчера вечером Sun сообщила, что приложение использует частные API-интерфейсы Bluetooth, но мы не увидели никаких признаков этого, и с тех пор они исправили свою историю, чтобы опровергнуть это утверждение. Приложение NHS COVID-19 использует общедоступные API-интерфейсы Bluetooth в iOS и, похоже, не пользуется какими-либо особыми привилегиями. Вместо этого есть некоторые умные методы.

Первый метод - ответ на поведение Bluetooth в iOS для приостановленных приложений. Мы отметили, что Apple меняет способ, которым приложение может сканировать новые устройства при приостановке Приостановленные приложения не могут правильно распознавать устройства, которые они не видели раньше. Как мы писали выше, «труднее искать признаки новых устройств, осмысленно общаться с ними и, в частности, выявлять устройства, не принадлежащие Apple».

NHSX решил проблему с устройствами, не относящимися к Apple, с другой стороны: понимая, что они не могут повлиять на то, что делает iOS в этом отношении, они встроили умные вещи в свое приложение для Android, чтобы распознавать ограниченные специфичные для Apple сообщения, которые являются фоновым приложением. на устройстве iOS отправит. Это дает устройству Android достаточно информации, чтобы иметь возможность общаться с устройством iOS, возвращая его в состояние, в котором они могут общаться.

Ситуация без iOS немного другая; Существует порог, при котором приложение NHS COVID-19 может замолчать, если оно остается на заднем плане в течение некоторого времени, и журналы устройств показывают примеры этого. В этом случае приложение было отодвинуто на задний план, но оно сможет продолжать сканирование (технически «широковещательное») более полутора часов. Другие события на телефоне, включая другие приложения, использующие Bluetooth, могут расширить это.

Сессия uk.nhs.nhsx.sonar-Периферийные-11919-319 может размещать рекламу в фоновом режиме в течение 6240 секунд.

Как следствие, невозможно сказать, что «приложение станет неэффективным при обмене данными между iOS и iOS через X промежуток времени»: есть щедрое окно переменных, в котором приложение должно остаться в живых, и ряд разумных факторов, которые могут вызвать расширение этого окна, включая другое использование Bluetooth, наличие устройств Android и эффективность уведомлений.

Есть несколько менее распространенных ситуаций, когда iOS может попытаться полностью приостановить фоновое приложение, например, когда системе не хватает памяти. Когда это происходит, это влияет на надежность сервиса. Приложение пытается решить эту проблему, вызывая push-уведомление с просьбой повторно открыть приложение, но это не всегда работает, в зависимости от состояния устройства. В наших тестах устройства iOS, на которых мы запускали приложение, продолжали поддерживать фоновую службу в течение ночи.


Собирает ли приложение личные данные и раскрывает мою личность?

Мы добавили этот ответ 1145 BST, 7 мая, чтобы ответить на вопросы, которые мы получили о сборе и передаче данных приложением.

Приложение iOS собирает очень мало данных: все linkingId их linkingId . Это может быть связано с человеком только в том случае, если он сообщит о симптомах и назначит тестирование в NHS с использованием этого идентификатора.

Положительный результат теста, кодируемый по идентификатору, эффективно отключает тревогу трассировки. Тогда возникает вопрос, будет ли NHS централизованно хранить данные человека, собранные во время теста, вместе с этим удостоверением личности. Это не было бы необходимо для работы приложения, и оно не присуще приложению. Как мы писали ранее, приложение не имеет доступа к данным о местоположении, кроме первых нескольких цифр почтового индекса пользователя (которые вводятся пользователем при настройке и не проверяются).

Тогда возникает вопрос не о том, что хранит приложение, а о том, какую информацию запрашивает NHS при бронировании теста, и как эта информация хранится.

Если бы пользователь должен был сообщать о симптомах, а не организовывать тест (или организовывать тест без предоставления своего идентификатора), абсолютно невозможно было бы связать два типа информации. Конечно, в этом экстремальном сценарии это также предотвратит оповещение приложения, если у пользователя есть COVID-19.

Мы продолжаем изучать это и будем публиковать более подробную информацию по мере развития событий.

Комментарии (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.


Можем ли мы улучшить эту статью?

Нам нравится слышать от пользователей: почему бы не написать нам электронное письмо, оставить комментарий или написать в Твиттере @reincubate?

© 2008 - 2020 Reincubate Ltd. Все права защищены. Зарегистрировано в Англии и Уэльсе #5189175, VAT GB151788978. Reincubate® является зарегистрированным товарным знаком. Политика конфиденциальности & условия. Мы рекомендуем 2FA. Построен с в Лондоне.