Технологические корпорации Apple и Google разработают API-решение для отслеживания контактов заболевших коронавирусом и информирования потенциальных переносчиков о необходимости самоизоляции. Оно будет использоваться в связке с приложениями от неназываемых служб здравоохранения.
Как будет работать решение и угрожает ли оно приватности пользователей — рассказывает независимый исследователь Андрей Тукманов.
В основе разработки лежит технология bluetooth: телефоны запоминают устройства вокруг и при появлении нового заболевшего сверяются с историей. Пока человек не заболел, вся история контактов хранится только на его телефоне и становится публичной, если получен положительный результат теста на COVID-19. В этот момент публикуются идентификаторы заболевшего. Каждое приложение сверяется с собственным списком и уведомляет пользователя об опасности.
Компании подчеркивают, что приложения не используют данные геолокации. Идентификатор пользователя анонимен, а новый код генерируется каждые 10 минут. Это призвано усложнить слежку за пользователем.
Криптография
Устройство пользователя хранит случайный и уникальный 256-битный отслеживающий ключ (tracing key). Этот ключ создается лишь один раз и привязывается к устройству. В документации не прописан протокол смены владельца устройства.
Каждые сутки генерируется 128-битовый новый ключ (daily tracing key). Он вычисляется по алгоритму HKDF и зависит от tracing key/номера дня.
Зная tracing key, можно вычислить daily tracing key за любой день. Алгоритм HKDF позволяет использовать случайность для устранения этой связи, однако в протоколе указано, что все ключи явно детерминированы. Обратная операция невозможна. Для вычисления ключа используется хеш-функция SHA256.
Каждые 10 минут вычисляется новый 128-битный rolling proximity identifier по алгоритму HMAC. Он зависит от ключа и номера интервала с начала дня.
В случае заражения пользователь отправляет на сервер набор своих daily tracing keys за некоторый период. Сервер агрегирует ключи от разных отправителей и периодически рассылает уведомления подключенным к API пользователям. При этом сервер не хранит информацию о контактах здоровых пользователей и получает доступ к ключам заболевшего только за определенный период времени.
Включение решения потребует разрешения пользователя на уровне операционной системы и конкретного приложения.
В мае появятся официальные приложения от каких-то служб здравоохранения. Организации-разработчики пока не называются. Потом API станет доступен другим разработчикам.
Вероятно, решение будет встроено в корпоративные экосистемы: оба гиганта активно развивают свои health-платформы.
Китайский прецедент
Китай первым столкнулся с эпидемией, и местные технологические компании уже разработали некоторые решения для борьбы с вирусом.
Платежная система AliPay запустила в Ханчжоу и многих китайских городах систему цветовых кодов. Пользователь регистрируется через приложение и получает код: зеленый, желтый или красный. Предъявив зеленый код контроллеру, можно пройти в метро. Человек с желтым или красным кодом должен связаться с властями.
Официальные комментарии о принципах работы системы крайне скупы. В Ant Financial заявляют, что это стороннее приложение с интеграцией в их экосистему. Система продвигается за счет административного ресурса: контролеры в метро с криком и руганью прогоняют людей без телефонов.
Государственные органы используют приложение в пропаганде, но не дают комментарии касательно механики задействованных алгоритмов. Вероятно, приложение использует «социальный рейтинг» — механизм оценки граждан Китая. Есть все основания полагать, что аккуратность использования приложения влияет на этот рейтинг. То есть нарушение самоизоляции может привести к его понижению.
Неясность критериев в первую очередь связана с использованием ИИ. Система постоянно перестраивается, и точные причины получения желтого рейтинга не знает никто.
Около миллиона человек имели красный или желтый код — это меньше 2% от 50 млн человек, использующих приложение.
Решение планируется масштабировать на весь Китай. В соревнование включился и главный конкурент AliPay — мессенджер WeChat с более чем миллиардом пользователей.
Можно предположить, что контроль здоровья может стать одной из основных составляющих суперприложений, которые играют в Азии очень важную роль. Однако у большинства государств нет технологических решений подобного уровня, а массовая слежка, привычная для Китая, за его границами может вызвать общественное сопротивление и политическую нестабильность.
Есть ли похожие решения? Как они работают?
С момента начала эпидемии было разработано множество приложений и протоколов для борьбы с вирусом.
Правительство Сингапура уже опробовало приложение Tracetogether. Агентство технологий при правительстве опубликовало спецификации протокола Bluetrace в основе Tracetogether и эталонные реализации для iOS и Android. Протокол использует идентификаторы, которые создаются централизованным сервисом (есть реализация, использующая облачную базу данных Google Firebase).
Ориентированные на приватность решения разрабатывают и независимые группы при участии крупных университетов. Проект safepath, например, разрабатывается под эгидой MIT и использует GPS и систему geohash для отслеживания контактов.
Еще один протокол, TCN, также использует bluetooth-идентификаторы. Система имеет несколько уровней идентификаторов. Изначально пользователь хранит основной секрет (rvk), каждый новый временный ключ вычисляется из предыдущего значения и основного секрета. Публикуемые идентификаторы вычисляются как хэш от временного ключа и его номера.
В случае заражения пользователь публикует первый временный ключ и его номер. Это решение требует меньшего количества данных для передачи предупреждения, но после публикации пользователь должен сгенерировать новый секрет.
Этот протокол применяется в проектах Co-Epi и Covid watch. Последний использует решение в сочетании с GPS-трекингом при помощи safepath.
Университет Лозанны (EPFL) совместно с ETH Zurich и другими европейскими университетами уже представили собственный протокол DP-3T.
В исследовании ZCash Foundation сравнили два вышеупомянутых протокола. Главным отличием исследователи назвали лучшую проверку целостности в TCN. Это дает возможность проверить правдивость отчета, представленного заболевшим.
Использующий блокчейн IOT-проект Nodl, созданный разработчиками анонимного мессенджера FireChat совместно c доктором Филипом Милном (Philip Milne Phd), тем временем анонсировали протокол Whisper.
На текущий момент существует более 60 IT-проектов, направленных на борьбу с Covid-19. Большинство из них созданы в рамках различных хакатонов. Крупнейший из них — Wirsvirus, 20 марта проведенный в Германии и собравший более 20 000 участников.
Все разработчики сталкиваются с похожими проблемами, часть из которых решает инициатива Google и Apple. Но, к сожалению, не все.
С какими проблемами столкнулись разработчики?
Основная проблема — расход батареи при постоянной трансляции данных через bluetooth.
Apple и Google используют разные подходы к экономии энергии.
iOS ранних версий не поддерживает рассылку (broadcasting) данных сторонними приложениями.
Внедрение решений для трекинга на уровне операционной системы и реализация единого API могут существенно облегчить разработку и повысить энергоэффективность решений.
Большинство протоколов предполагает поиск совпадений на устройствах пользователей. Однако, если система получит действительно массовое признание, количество сигналов о болезни со всего мира может потребовать больших вычислительных мощностей.
В протоколе не используются данные геолокации. Клиенту придется проверять отчеты о заражении со всего мира.
В документах компании упоминают “агрегацию данных” на серверах. На текущий момент есть множество решений для быстрого поиска совпадений по большому списку, наиболее известным из которых является фильтр Блума.
Однако блум-фильтр может вызывать ложноположительные срабатывания, что требует дополнительной проверки, которая вероятно будет проводиться на стороне сервера.
Все системы подчеркивают свою заботу о конфиденциальности пользователя, однако остается ряд вопросов.
Apple и Google заявляют, что все данные будут храниться на устройствах пользователей. Но большинство клиентов делают бэкапы, доступ к которым может получить злоумышленник или государственные органы.
Идентификаторы пользователей периодически обновляются, однако они известны всем, и реальные перемещения пользователя могут отслеживаться при помощи статистического анализа.
При получении отчета система вынуждена доверять данным пользователя. Злоумышленник может провести DoS-атаку, распространяя ложные сведения о заражении.
Так как результаты проверки могут быть основанием для помещения человека в карантин, такие атаки способны привести к чувствительным последствиям.
Протоколы не описывают принципы, по которым пользователь получает рекомендации о необходимости лечения и изоляции.
Если в Китае все решает централизованная система, то в предлагаемых системах решение принимает приложение на стороне пользователя. Мы до сих пор мало знаем о распространении Сovid-19, поэтому используемые эвристики могут оказаться неоптимальными.
Поиск хороших правил требует агрегации данных, что ставит новые вопросы о приватности решений.
В своем заявлении компании умалчивают о принципах, по которым приложения будут получать доступ к функционалу, и о том, как будут разделяться данные.
В описании bluetooth-части протокола упоминается Service UUID. В то же время неясно, как он будет использоваться.
У корпорации Apple уже были проблемы с немецкими регуляторами из-за ограничений доступа к NFC.
Выводы
Появление протокола от Apple и Google — большой шаг в борьбе с эпидемией. Однако по прежнему остаются вопросы о приватности пользователей и дальнейшей интерпретации полученных данных.
Вероятно, следующим шагом должно стать присоединение других крупных игроков к цифровизации пандемии. Это даст шанс сохранить приватность людей хотя бы на текущем уровне и использовать наработки, в первую очередь, в предиктивной аналитике для получения новых полезных результатов.
Источник: forklog.com