{"id":14268,"url":"\/distributions\/14268\/click?bit=1&hash=1e3309842e8b07895e75261917827295839cd5d4d57d48f0ca524f3f535a7946","title":"\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0442\u044c \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u0430\u043c \u0438\u0433\u0440\u0430\u0442\u044c \u043d\u0430 \u0440\u0430\u0431\u043e\u0447\u0435\u043c \u043c\u0435\u0441\u0442\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e?","buttonText":"\u0423\u0437\u043d\u0430\u0442\u044c","imageUuid":"f71e1caf-7964-5525-98be-104bb436cb54"}

StopCovid — приложение для фиксации контактов с зараженными без нарушения приватности

Некоторое время назад к нам в компанию пришел проект по фиксации контактов между людьми, чтобы в случае заражения была возможность протестировать потенциально зараженных. Данное приложение должно помочь африканской стране Джибути, где очень мало аппаратов ИВЛ.

На сегодня команда Workin Geeks завершила работу над приложением и я расскажу о том, как устроено решение, минимально вторгающееся в личную жизнь людей.

Исследование

К началу работы мы уже видели существующие приложения и знали, что есть сингапурская разработка TraceTogether от сообщества Open Trace. Также поиском решений занимались студенты из Стэнфорда. Первые обещали в скором времени открыть свой код для использования. Мы предложили заказчику дождаться публикации, чтобы не тратить ресурсы зря. Через две недели мы получили исходники и дополнили их в соответствии с особенностями Джибути.

Как оно работает?

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

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

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

По датам можно осечь тех, кто контактировал до максимально возможного инкубационного периода заболевания. Оставшимся можно позвонить и предоставить возможность тестирования на дому. И так далее по цепочке. Можно находить полные цепочки передачи вируса и заранее планировать количество необходимых ИВЛ, а так же обязывать к строгому карантину зараженных.

Представленное описание является довольно точным, но упрощенным. Если хочется понять технологию полностью, то это можно сделать на сайте Open Trace на английском языке.

Недостатки

Сейчас на iPhone и других устройствах компании Apple технология не может работать, когда пользователь выключил экран. Поэтому в текущей версии айфон приходится переводить в режим энергосбережения и класть в карман во включенном состоянии, чтобы он продолжал фиксировать контакты. Это создает ненужные сложности, в связи с чем Apple и Google скорей всего и объявили о совместной работе над предоставлением дополнительных возможностей разработчикам. После релиза улучшений недостаток скорей всего будет устранен.

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

Опыт других стран

Австралия уже адаптировала приложение TraceTogether для себя.

Судя по этой статье, Исландия, Великобритания и Тайвань тоже рассматривают подобное решение.

Германия и США ждут улучшений от Apple и Google. Возможно есть еще какие-то кейсы, но мы их не находили.

Что в России?

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

0
17 комментариев
Написать комментарий...
TEOPU9l

А вы в курсе, что если включить энергосбережение, то экран лочится через 30 секунд, и это не изменить? 🤔

Ответить
Развернуть ветку
Anton Kondrashov
Автор

Спасибо за комментарий!

Это не так. Если говорить конкретно, то следующий код заставляет телефон и экран продолжать работать, пока есть заряд даже в режиме энергосбережения.

UIApplication.shared.isIdleTimerDisabled = true

Это же используется в приложениях, воспроизводящих видео, навигаторах, приложениях по чтению книг и прочих. В том числе мы перепроверили это на практике.

Ответить
Развернуть ветку
Аполлон Степанов

Что касается определения расстояния, то вам эта информация ничего не даст. Вот находитесь вы дома, и в 10 метрах от вас фиксируется человек. И что?? Может быть он в подъезде по лестнице прошел. Или может быть человек в соседней квартире в любом направлении. Что эта информация вам даёт?? Ничего.

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

"Однако описанный вами вариант с определением геопозиции не решает проблему, если не отсылать ее на сервер и не прогонять алгоритмы, которые еще нужно написать и протестировать."
Я не предлагаю передавать информацию с телефона пользователя. Я предлагаю делать всё на стороне провайдера.

https://habr.com/ru/company/megafon/blog/167905/
http://pro-gsm.info/location-tracking.html

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

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

Привожу пример.
У человек есть машина. По базе ГИБДД мы знаем, что у него есть авто. Мы фиксируем движение. Камера фиксирует движение авто. Мы понимаем кто едет в авто. Таким образом, пешеходов и водителей других авто можно исключить.

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

Поэтому, я считаю, применение геолокации в данном случае оптимальным решением.

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

Ответить
Развернуть ветку
Anton Kondrashov
Автор

В тех же статьях, что вы упомянули - "Точность в городе от 100 до 300 метров, за городом как правило от 100 до 500-700 метров." Этого недостаточно, чтобы хоть сколько то точно зафиксировать контакт. То же самое я могу сказать по собственному опыту работы в телекоме. Будет гораздо больше ложноположительных, чем при нашем решении.
Мы отсекаем контакты по 2 метрам, поэтому "в 10 метрах" мы не будем фиксировать контакт.
Для того, чтобы определить, что человек передвигается на транспорте, достаточно посмотреть скорость изменения геопозиции, не нужно залезать в базы ГИБДД.

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

Ответить
Развернуть ветку
Аполлон Степанов

С точки зрения методологии, здравая часть в вашем предложении конечно есть. Ловить всех кто ближе 2-х метров. 

Ответить
Развернуть ветку
Alexander Matveev

Не очень понятно. Нужно все время ходить с включённым приложением и не заблокированным экраном, чтобы просто отследить примерное расстояние? Зачем пользователям это делать?

Ответить
Развернуть ветку
Anton Kondrashov
Автор

Спасибо за вопрос!

Необходимость держать экран включенным есть только у пользователей iPhone и является временным неудобством, судя по заявлениям Apple.

Однако если принять, что это нужно сделать, уже сейчас можно более точечно отслеживать распространение инфекции и более эффективно бороться с ее распрострением. Это нужно для того, чтобы помочь себе, своим близким и своим согражданам.
Сейчас дневной прирост в России только тех у кого обнаруживается инфекция около 10к. Многие из этих людей выходили в магазин, аптеку или по своим делам, а значит контактировали с кем-то помимо своей семьи. Это дает довольно большой мультипликатор числу людей, которые заболеют завтра, через неделю, 20 дней.
В текущем варианте, люди которым был передан вирус, не знают об этом и продолжают ходить за продуктами и так далее. А если бы они потерпели необходимость чуть чаще заряжать телефон и держать приложение включенным, то смогли бы уберечь других людей.
Мы верим, что россиянам может быть небезразлична жизнь незнакомых им людей.

Ответить
Развернуть ветку
Николай Трихминов

Это идея борьбы с вирусом или свободой граждан? Завтра к вам приедут и запретят выходить на улицу по причине возможного заражения гриппа, штраф за нарушение. Без всякой компенсации итп. 
 
Вы хотите превратиться в подопытных мышей?
Чтобы к вам в дом являлись типа врачи и силой вас лечили и всю вашу семью заперли и взяли под контроль? 

Это не тиф, это грип! Хотите сея обезопаситься делайте что хотите. Но не мешайте другим жить и работать.

Ответить
Развернуть ветку
Anton Kondrashov
Автор

Благодарю за комментарий!

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

И грипп - это другой вирус, не стоит их приравнивать. Они обладают разной скоростью распространения.

Ответить
Развернуть ветку
Аполлон Степанов

Мне не понятно другое. А почему нельзя отслеживать местоположение провайдерам?? Ведь это наверняка легче сделать. Можно в режиме реального времени отслеживать местоположение путем триангуляции по базовым станциям через уровень сигнала. У спецслужб наверное есть уже миллион решений по данной тематике.

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

Ответить
Развернуть ветку
Anton Kondrashov
Автор

Спасибо за комментарий!

Данный способ будет следить за геопозицией человека, мы как раз предлагаем этого не делать, так как и необходимости в этом нет.

Если смотреть с сугубо технической, а не правовой стороны, то триангуляция - это не самый точный из доступных методов определения геопозиции. GPS и ГЛОНАСС гораздо точнее.

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

Ответить
Развернуть ветку
Аполлон Степанов

У вашего способа есть масса недостатков.

Не будем говорить о принципиальной возможности того, что боютус будет включен, уже это сомнительно. Здесь есть вопрос энергопотребления.

Плюс вопрос достоверности данных.

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

Или, например, поток машин. Человек едущий по встрече со мной не контактирует, но система его будет видеть. А с учётом того, что вы не отслеживаете положение, вы не можете применить алгоритмы фильтрации данных.

То есть, вы не знаете, что человек едет в соседней машине, или едет в другом ряду, или едет по встрече.

Плюс, оценка расстояния сомнительна.

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

Я вижу множество недостатков вашей системы. Даже с учётом снижения точности геолокация, всё равно она обладает преимуществом.

Ответить
Развернуть ветку
Anton Kondrashov
Автор

Касательно определения расстояния, в том числе в офисных сценариях, а так же энергосбережения можно прочитать как проводились исследования здесь https://github.com/opentrace-community/opentrace-calibration/blob/master/Trial%20Methodologies.md Погрешности, к сожалению, не указаны.

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

Фиксация контактов там, где их не было (в машине, с соседом) возможна. Однако описанный вами вариант с определением геопозиции не решает проблему, если не отсылать ее на сервер и не прогонять алгоритмы, которые еще нужно написать и протестировать. В краткосрочной перспективе гораздо проще протестировать еще одного человека на дому. В случае повторения пандемий этот вариант возможно улучшит показатели, но тут вопрос целесообразности. Суть нашей статьи в том, что решение уже существует, уже протестировано, его нужно только применить. Написание и тестирование новых, более точных алгоритмов может занять месяцы.

Нахождение в одном помещении и заражение через поверхности действительно не определяется и определение геопозиции в этом случае могло бы дать лучшие результаты. Возможно стоит рассмотреть варианты дополнения информации с Bluetooth контактами с общими wi-fi точками с придачей меньшего веса этим контактам. Вероятно, этого может быть достаточно.

Ответить
Развернуть ветку
Аполлон Степанов

"Нахождение в одном помещении и заражение через поверхности действительно не определяется и определение геопозиции в этом случае могло бы дать лучшие результаты. Возможно стоит рассмотреть варианты дополнения информации с Bluetooth контактами с общими wi-fi точками с придачей меньшего веса этим контактам. Вероятно, этого может быть достаточно."

Понимаете в чем дело. Решение должно закрывать вопрос или полностью, или вообще не предлагаться. Вот мы с вами подошли к вопросу дополнительных энергозатрат и модернизации приложения. Мол давайте еще дополнительно wi-fi точки отслеживать. А это уже как минимум лишь несколько часов работы в день устройства.

Но даже если так сделать, то опять же вопрос базы wi-fi. Есть у кого-то база расположения всех wi-fi точек доступа?? 

В общем, мне видится, что проще использовать уже готовую и понятную технологию, которую, уверен, многие спецслужбы применяют уже многие годы. Триангуляция по базовым станциям наверное сейчас уже настолько точна, что её можно просто взять и использовать.

Ответить
Развернуть ветку
Anton Kondrashov
Автор

Тезис про триангуляцию не верен, подробнее написал в ответе на ваш другой комментарий.
База Wi-Fi открытая, для это помощь спецслужб не нужна, подробнее можно прочитать здесь. https://en.wikipedia.org/wiki/Wi-Fi_positioning_system

По поводу того, что "Решение должно закрывать вопрос или полностью, или вообще не предлагаться" не соглашусь. Весь прогресс человечества основан на неидеальных промежуточных результатах и их непрерывном улучшении. 

Ответить
Развернуть ветку
Аполлон Степанов

Не увидел где можно посмотреть базу данных по местоположению WiFi точек доступа. Да и вообще сомнительно, вот у меня стоит дома WiFi, и что, в открытом доступе находится информация о местоположении моей точки с соответствующим MAC-адресом??

Ответить
Развернуть ветку
Anton Kondrashov
Автор

Домашний конечно нет, если вы его не внесете в базу, эти базы пополняются вручную заинтересованными владельцами публичных wi-fi точек. Публичные базы данных есть в последнем разделе (скриншот приложил). В вики вроде российских нет, однако есть аналоги. С ходу нашел http://3wifi.stascorp.com/. Возможно есть еще какие-то.

Ответить
Развернуть ветку
14 комментариев
Раскрывать всегда