Смартфон во спасение. Жизнь после карантина


О, прежний мир, где же ты? Вернись, мы так соскучились по тебе!.. Да, речь пойдёт о коронавирусе, великом и ужасном. Пора бы с ним уже разделаться. Кто хочет вместе с нами принять участие в битве?



Позвольте представиться. Мы команда разработчиков, которая создала и развивает сервис автоматической онлайн регистрации на авиарейсы 1Checkin.

Как вы наверняка знаете (или догадываетесь), пандемия коронавируса не пощадила авиаиндустрию, и, мягко говоря, отрасль сейчас на паузе. Что ж, мы решили не идти в вынужденный отпуск и скоро вы узнаете, к чему это привело. Итак, теперь ближе к теме.




Эпидемия испанского гриппа в глобальном масштабе была не так давно, в начале прошлого века. Технический прогресс уже был достаточным, чтобы существовавшие в то время транспортные средства обеспечили быстрое распространения вируса по планете.
Эпидемия атипичной пневмонии в том же временном масштабе была совсем недавно, каких-то 17 лет назад. Транспортное сообщение стало намного лучше, а значит еще опаснее в плане возникновения эпидемий. Но и современная медицина сильно отличалась от медицины начала XX века, однако это не мешало вирусу свободно завоёвывать новые территории и распространяться благодаря заболевшим людям. Специалисты, знающие подробности внезапного исчезновения вируса атипичной пневмонии, могут подтвердить, что человечество тогда отделалось, можно сказать, лёгким испугом. И вот настал 2020 год, мы продолжаем жить в эпоху технического прогресса и научных достижений, но никуда не делась возможность встречи с новыми инфекционными заболеваниями, лекарств от которых пока нет. Распространение вируса SARS-CoV-2 и вызываемой им болезни COVID-19 наглядно это продемонстрировало. И нет никаких объективных причин полагать, что в ближайшее время возможность встречи с подобными инфекциями исчезнет.


Как жить в эпоху карантинов, как жить после самоизоляции? Карантин по своей сути не должен быть вечным: он вводится для нормализации ситуации. Рано или поздно ограничительные меры могут быть сняты по причине прохождения пика заболеваемости, но за этим пиком может прийти следующий, а это неизбежно повлечёт возврат ограничений. Между этими пиками наверняка могут быть попытки вернуться к прежнему образу жизни. Добавьте к этому, что всеобщая самоизоляция не решает всех проблем хотя бы потому, что некоторые люди в силу своей профессии вынуждены в этот период продолжать трудовую деятельность вне дома, и их своевременное отстранение от работы в случае заболевания крайне важно. Очистив государство от вируса, можно запросто получить новые завозные случаи инфицирования и новый виток эпидемии. Здравый смысл настойчиво упрашивает нас жить с пониманием того, что пандемия или волна заражений может быть не последней. И как же жить дальше? Конечно, не ждать новую пандемию, но быть готовыми к ней.



У человека с инженерным образованием созерцание новой коронавирусной реальности вызывает некоторое досадное недоумение. Мысль, которая в текущей ситуации просто «взрывает» голову: у большинства жителей в карманах (сумках, чехлах, руках) находятся устройства, которые могут помочь обществу менее остро пережить эпидемию коронавируса, но они почему-то до сих пор не делают этого. Да, речь идёт о смартфонах, большинство из которых на сегодняшний день имеет такую техническую начинку, которая может быть использована для запоминания перемещений владельца и фиксации контактов с другими владельцами смартфонов неподалёку. К сожалению, до 2020 года подобное решение массово никто не внедрил, человечество не сработало на опережение. Гром грянул — теперь самое время всем нам что-нибудь с этим сделать.


Если проанализировать публикации в СМИ, то может сложиться впечатление, что только ленивый сейчас не создаёт ПО для борьбы с коронавирусом. Но речь пойдет именно о полезных решениях в области отслеживания контактов, а таких решений оказалось не так много. Мы были в числе тех, кто решил двигаться в этом направлении. Признаемся, что разворот собственного мышления от привычных метрик результата в виде штук, процентов, денежных единиц к количеству спасённых жизней — отдельная история, даже немного интимная, но поверьте, появилась сильнейшая мотивация, и теперь наш локомотив успешно набирает ход.


Как вы, наверное, поняли из первых абзацев, мы до этого уже занимались разработкой мобильных приложений, необходимых знаний было достаточно, поэтому в марте текущего года после некоторых исследований начали разработку собственного протокола по отслеживанию контактов с помощью технологии Bluetooth — так на свет появился наш проект OpenCovidTrace. Идея была на поверхности, и вполне закономерно, что подобные разработки почти одновременно стартовали в разных уголках мира. Ключевым событием в данной истории стало то, что в апреле компании Google и Apple объединили свои усилия для совместного создания технологии в области Bluetooth contact tracing. Это, безусловно, подчеркнуло важность и социальную значимость такой разработки, но в то же время резко увеличилась вероятность того, что в рамках данной тематики разрозненные усилия разработчиков со всего мира уже не будут объединены в общий сонаправленный поток. Тем более детальное изучение документации протокола Google & Apple порождает ряд вопросов и опасений на тему безопасности и конфиденциальности, но об этом позже.


На сегодняшний день OpenCovidTrace — это платформа, объединяющая популярные протоколы автоматического отслеживания контактов. И первым значимым фактором является распространенность: даже далеко не идеальный протокол способен успешно спасать от коронавируса, если этот протокол уже распространен в некой местности или у определенной группы пользователей. Более разумно реализовать поддержку такого протокола, чтобы сработать по всем фронтам. Согласитесь, самое время умерить свой перфекционизм, когда счёт идёт на жизни людей. А все выявленные недостатки разных протоколов мы перекрываем собственными разработками — в итоге получается эдакий собранный пазл. Именно такое интегральное решение претендует на максимальную эффективность. Вот о нём наконец-то и поговорим, пришла пора подробностей. Не сильно долго интриговали вас? Поехали!



Карантин -> Смартфон -> Спасение


Жители России уже наслышаны про отслеживание их перемещений на основе данных от операторов мобильной связи. Однозначная идентификация объекта и геометрическая погрешность метода многим не приходится по душе. Да и вообще такая схема больше подходит для режима карантина с целью контроля его соблюдения.


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



Давайте порассуждаем про эффективный трекинг, который соответствовал бы особенностям распространения коронавируса, а также учитывал бы все интересы пользователей. Возможности Bluetooth у смартфонов позволяют реализовать автоматический учет контактов в радиусе действия сигнала радиомодуля, при этом параметры распространения коронавируса сопоставимы с величинами эффективного обнаружения источника сигнала. Что это означает и как работает?
Человек устанавливает мобильное приложение на свой смартфон, после этого устройство способно самостоятельно обнаруживать и фиксировать идентификаторы других пользователей приложения в радиусе действия модуля Bluetooth. При этом приложение может вычислить продолжительность контакта и дистанцию, а также фиксирует местоположение пользователя по геоданным от GPS/ГЛОНАСС. Например, когда человек зашел в вагон метро, его смартфон моментально записал данные других смартфонов, находящихся рядом. Если позже кто-то из пользователей приложения заболел и подтвердил статус инфицированного, то приложение тут же сообщит всем, кто был в опасной близости, что есть высокая вероятность заражения. Это позволит максимально быстро перейти в режим самоизоляции и обратиться к медикам для проведения тестирования на наличие вируса. Конечно, такая система не гарантирует идеального информирования о возможном заражении: в вагоне могут быть пассажиры, которые не являются пользователями приложения или вообще не имеют смартфонов. К тому же, например, загрязнение поручней никто не отменял. Но механизм трекинга с последующим оповещением о риске заболевания позволяет снизить темпы распространения инфекции и избежать критической нагрузки на систему здравоохранения. Решающие значение имеет опережение распространения инфекции: принимая решение о самоизоляции на основе данных о контактах, происходит эффективная борьба на шаг впереди. Взгляните на визуализацию этого принципа, созданную командой разработчиков протокола DP3T (Decentralized Privacy-Preserving Proximity Tracing), международной группой ученых из различных институтов:




Итак, очевидно, что трекинг имеет смысл. С аппаратной точки зрения разработчики проявили единодушие: для отслеживания контактов используется технология BLE (Bluetooth Low Energy). На телефонах с операционной системой iOS или Android запускается BLE-сервис, телефоны периодически ищут по Bluetooth другие устройства и если находят, то понимают, что произошел контакт.

Задача протокола — передать идентификаторы устройств друг другу при таком контакте, и если в дальнейшем кто-то заразится, сообщить всем контактам об этом. Но как быть с приватностью и безопасностью? Как открыться для обнаружения другим устройствам и не переживать за сохранность своих данных? Как не стать объектом тотальной слежки? Ответы на все эти вопросы породили следующие решения:

  • идентификаторы генерируются и хранятся локально;
  • используется стандартная и надежная криптография;
  • публичные идентификаторы часто меняются, что затрудняет отслеживание;
  • данные трекинга хранятся только на устройстве пользователя, на сервер при заражении передаются только анонимные ключи.

Давайте полюбуемся на инфографику для протокола Google & Apple, кое-что станет нагляднее:







Выглядит здорово, приватность и безопасность заявлены, но каждый пользователь должен быть абсолютно уверен в том, что на практике это будет именно так. Как этого добиться? Конечно, использовать open source подход. Разработанный нами протокол реализуется в формате открытого исходного кода, что гарантирует соблюдение задекларированных правил: алгоритмы работы приложения выполняют только заявленные функции, а их безопасность проверена сообществом разработчиков. Для широкого распространения подобного решения крайне важно иметь возможность воспользоваться открытым решением, где всегда можно удостовериться в безопасности пользовательских данных — иначе успеха не видать.
Кстати, G&A совсем недавно выпустили обновленный релиз своего протокола, где HMAC шифрование было заменено на AES. Версии, объясняющие случившееся, пока разнятся, но мы обязательно расскажем вам о том, что же это всё-таки было.


Тем не менее решение от Google и Apple пока не вышло за рамки опубликованного протокола. В то время как сингапурское приложение TraceTogether уже успело наделать шума и показать определенные результаты. Проект поддерживает правительство Сингапура, где подобное мобильное приложение запустили одним из первых. Всемирная организация здравоохранения и эксперты заявили, что широкие меры по отслеживанию, тестированию и изоляции помогли значительно сократить распространение вируса, снизив за две недели число новых заражений с 909 случаев, объявленных 29 февраля, до 74 случаев 16 марта. В основе приложения лежит технология BlueTrace, являющаяся централизованным решением, требующим периодического обмена данными с сервером. При запуске приложения клиент регистрируется на сервере с помощью номера мобильного телефона, при этом подключается авторизованное медицинское учреждение, сервер в ответ отдает устройству UserId. Здесь также используется BLE для обмена сообщениями между устройствами. Приложение TraceTogether на iOS не работает в background режиме, т.е. фиксация контактов возможна лишь когда приложение открыто и активно, но мы в своей разработке решили эту проблему, так что OpenCovidTrace перекрывает этот нюанс.


На этом, пожалуй, стоит завершить ознакомительный рассказ о различных решениях задачи автоматического отслеживания контактов. Ведь статьи — это, конечно, хорошо, но раз мы взялись за эту тему, то поторопимся доработать наше решение для его скорейшего внедрения, работа ждёт. В этой статье мы постарались в общих чертах рассказать вам о том, что OpenCovidTrace — это open-source платформа, интегрирующая все популярные BLE протоколы отслеживания контактов (DP-3T, Google & Apple, BlueTrace и другие), имеющая также дополнительный набор функций для iOS и Android платформ. А вообще держитесь: в следующих статьях мы завалим вас техническими подробностями всех упомянутых протоколов. Если вы хотите присоединиться к нам и внести свой вклад в разработку, то добро пожаловать в наше сообщество: мы уже успешно испытали прототип, а Git репозиторий доступен для подписки. Кстати, помочь проекту можно также репостами в социальных сетях. И главное — будьте здоровы!