{"id":3884,"url":"\/distributions\/3884\/click?bit=1&hash=d0446155b659787baee974d7cef324e65951fab242e02279aea32889810d25e4","title":"\u0421\u0434\u0435\u043b\u0430\u0442\u044c \u0431\u043b\u0430\u0433\u043e\u0442\u0432\u043e\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430 \u0434\u0435\u043d\u044c\u0433\u0438 \u043a\u0440\u0443\u043f\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438","buttonText":"","imageUuid":"","isPaidAndBannersEnabled":false}
Мобайл
Evger

Протокол отслеживания контактов через Bluetooth от Apple & Google

10 апреля 2020 года компании Apple и Google анонсировали, что в следующих обновлениях их операционных систем iOS и Android появится поддержка совместно разработанного протокола отслеживания контактов.

Целью данного проекта является снижение распространения COVID-19 с помощью отслеживания цепочек контактов и раннего обнаружения новых заразившихся с последующей быстрой изоляцией.

Для отслеживания контактов будет использоваться технология BLE (Bluetooth Low Energy).

​Инфографика  Google описывающая принцип работы протокола Google пе

Принцип работы данного протокола отслеживания контактов следующий:

На телефонах с операционной системой iOS или Android запускается BLE-сервис со специальными service UUID и characteristic UUID. Работает это так же, как с вашими Bluetooth наушниками или гарнитурой, которые используют Bluetooth-сервис со стандартным определяющим класс гарнитур кодом (characteristic UUID), только в данном случае это особый код, определяющий протокол отслеживания контактов Apple & Google. Потребление энергии в таком режиме небольшое.

Телефоны периодически ищут по Bluetooth другие устройства с фиксированными service UUID и characteristic UUID и если находят, то понимают, что произошел контакт.Задача протокола — передать анонимные идентификаторы устройств друг другу при таком контакте, и если в дальнейшем кто-то заразится, сообщить всем контактам об этом.

Первый опыт тестирования в Сингапуре

Подобная технология отслеживания контактов через Bluetooth уже была запущена в Сингапуре.

Приложение Trace Together было запущено правительством Сингапура в марте 2020 года и быстро принесло результат.

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

Сейчас приложение установлено более чем на 1 млн устройств, а технологию, на которой работает приложение BlueTrace, выложили в open-source.

Описание протокола Apple & Google

Протокол Apple & Google, в отличие от BlueTrace, разрабатывался с учетом повышенных требований безопасности и приватности.

Он не требует авторизации по номеру телефона или email, информация о зараженных пользователях передается анонимно.

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

Так как же работает протокол?

Обмен идентификаторами через Bluetooth​ Apple
  1. Девайс случайным образом генерирует приватный 32-х байтный ключ Tracing Key, который всегда остается на девайсе
  2. Каждый день, генерируется дневной 16-ти байтный ключ Daily Tracing Key. Для его генерации используется функция
    HKDF: dk = HKDF(tk , NULL, (UTF8("CT-DTK")||Di),16)

    tk — это приватный ключ, Di — номер дня, который вычисляется как unix_timestamp div (60*60*24), где div - операция целочисленного деления а символ || означает конкатенацию
    NULL в данном случае это соль, которая не используется, а 16 - количество байт на выходе.Эти ключи в дальнейшем передаются на сервер, если пользователь заразился
  3. Каждые 10 минут* генерируется временный идентификатор Rolling Proximity ID. Его длина также составляет 16 байт.

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

    Для генерации используется функция HMAC (первые 16 байт), в качестве аргумента используется дневной ключ, объединенный с номером временного интервала:

    RPI = Truncate(HMAC(dk, (UTF8("CT-RPI")||Ti)),16), где dk - это дневной ключ, Ti — номер временного интервала, который вычисляется как: (unix_timestamp mod (60*60*24)) div (60*10), где div - операция целочисленного деления, а mod — остаток от деления

    *Идентификатор меняется каждые 10 минут согласно криптографической спецификации протокола, но в bluetooth спецификации указан 15-ти минутный интервал. Дело в том, что mac-адрес Bluetooth LE меняется в интервале 15-20 минут, при этом идентификатор будет меняться чаще, раз в 10 минут.
  4. При контакте устройства локально запоминают RPI (Rolling Proximity ID) друг друга и время, в которое произошел контакт.
  5. При заражении пользователь загружает последние 14 дневных ключей на сервер, откуда другие устройства периодически скачивают новые ключи.Скачав новый ключ, телефон сверяет со своими локально сохраненными контактами, вычислив для каждого контакта RPI и сравнив его с сохраненным RPI.Если находится соответствие, то пользователь получает уведомление о контакте с зараженным.

К моменту публикации статьи компании Apple и Google анонсировали новую версию спецификации Contact Tracing Protocol где изменили принцип генерации ежедневных ключей и Rolling Proximity ID. Вероятно это было сделано из-за того, что в данной версии протокола есть возможность отследить заразившегося пользователя в последние 14 дней перед публикацией его ключей.

Подробный разбор отличий мы сделаем в следующей статье.

Как планируется использовать протокол

Вместе с описанием протокола компании Apple и Google объявили, что протокол будет реализован на уровне операционных систем, а разработчики получат лишь доступ к API.

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

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

В таком случае приложение может запросить дополнительную информации о контакте: дату и продолжительность.

В API также есть возможность сообщить, что пользователь заразился COVID-19, но такое сообщение должно быть подписано медицинским центром, который должен быть авторизован Apple & Google для таких операций.Приложение должно передать медицинскому центру свои дневные ключи за последние 14 дней, получить цифровую подпись и отправить ее в API.

Отсюда возникает ряд вопросов: Какие медицинские учреждения смогут получить доступ подписи таких диагнозов?Кто будет сертифицировать медицинские центры для таких операций?Уже сейчас Apple App Store и Google Play Market ограничили публикацию приложений, имеющих отношение к COVID-19, пропускаются только приложения от медицинских и государственных учреждений. Возможно, планируется выдавать ключи для подписи диагнозов таким разработчикам при публикации приложений использующих Contact Tracing Framework.

Выводы

Анонсированный Apple и Google протокол еще раз доказывает актуальность проблемы отслеживания контактов для борьбы с инфекционными заболеваниями, в частности с COVID-19. Сложно вспомнить другую ситуацию, когда два конкурирующих IT-гиганта могли бы так быстро договориться о протоколе и выпустить совместный релиз.

Приложение Trace Together набрало более 1 миллиона пользователей за несколько месяцев, но это несравнимо меньше с потенциальным охватом Apple и Google в несколько миллиардов устройств.Такой охват делает данный протокол потенциально очень интересным для медицинских и государственных организаций по всему миру.

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

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

Open-source

​OpenCovidTrace ​OpenCovidTrace

Я глубоко убежден, что требуется open-source имплементация протокола Apple & Goole, которая будет проверена профессиональным сообществом и доступна всем желающим по open-source лицензии.

Поэтому мы работаем над open-source платформой OpenCovidTrace, в которой реализован протокол, описанный Apple & Google, с некоторыми улучшениями и изменениями, обусловленными ограничениями iOS.

Ограничения iOS

Обмен контактами, описанный в протоколе Apple & Google, происходит пассивно. Временные идентификаторы записаны в пакеты объявления ( advertising packets) BLE сервиса, для чего размер этих идентификаторов уменьшен до 16 байт.Два находящиеся рядом устройства видят BLE сервисы друг друга с соответствующим UUID и читают идентификаторы из advertising info (характеристики) BLE сервиса.

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

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

Мы рассчитываем, что в следующем обновлении iOS компания Apple уберет данное ограничение Core Bluetooth для своей реализации протокола обмена контактами.В противном случае, если ограничение будет снято только для реализации протокола Apple & Google, но останется на уровне приложения, Apple поставит других разработчиков в неравное положение, что может быть расценено как нечестная конкуренция.

Улучшения протокола

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

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

Geo-позиция контактов за прошлые 14 дней и Rolling Proximity ID’s контактов хранятся локально, они доступны только вам, поэтому это никак не нарушает вашу приватность.

Заразившийся пользователь кроме Rolling Proximity ID’s контактов может загрузить и свои GPS треки за последние 14 дней. Эти треки зараженных пользователей будут доступны другим пользователям на карте, анонимно без привязки устройству или другим данным по контактам.

Дополнительно мы предлагаем фиксацию контактов между пользователями по QR-коду, если Bluetooth недоступен.

Объединение технологий

OpenCovidTrace также ставит задачу объединить различные протоколы отслеживания контактов, включая упомянутый ранее BlueTrace, Apple & Google, а также описанный европейским научным сообществом протокол DP-3T, о котором мы расскажем в следующих статьях.

Присоединяйтесь к нам на Github! Ваши идеи и замечания будут полезны для развития проекта, вместе мы поможем погасить новые вспышки заболевания после снятия карантина.

Также вы можете помочь OpenCovidTrace, если поделитесь ссылкой на проект в социальных сетях.

Спасибо за внимание, не болейте.

Ссылки:

https://www.apple.com/covid19/contacttracing - документация протокола Apple & Google

https://www.tracetogether.gov.sg/ - сайт запущенного в сингапуре приложения Trace Together

https://bluetrace.io/ - сайт технологии на которой базируется Trace Together

https://opencovidtrace.org - сайт нашего open-source проектта

https://github.com/OpenCovidTrace - сайт нашего репозитория на Github

https://github.com/DP-3T/ - еще один перспективный протокол обмена контактами

0
30 комментариев
Написать комментарий...
Сырой череп

Цифровая тюрьма уже тут, остался всего шаг до массового чипирования

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

А зачем чипировать если каждый постоянно ходит с сотовым?

Ответить
Развернуть ветку
Сырой череп

Я ещё не придумал, не задавай такие вопросы

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

Ты точно не из думы?

Ответить
Развернуть ветку
Александр

Мне кажется затем же, зачем и эти тупые пропуска в Москве связанные с ковид. Тупость и поиск простых решений. Зачем это нужно было, если там и так через турникеты люди проходят в том же метро и пользуются картами, которые оформлены через банковские карты, плюс камеры, сотовое оборудование... Методов на вскидку много, как можно проконтролировать человека. Видимо просто сводить все эти базы данных воедино слишком заморочно. Это ж сколько бюрокатии, министерств и компаний (особенно зарубежных) нужно законтачить друг с другом (которые зачастую соперничают друг с другом) и обеспечить обмен информации (безопасно, ха-ха) между ними на законных основаниях в т.ч. международных. С учётом срочности и зачастую слабой компетенцией многих чиновников. Проще и правда чип засунуть или qr код на видное место хотя бы..))

Ответить
Развернуть ветку
USERNAME
зачем и эти тупые пропуска

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

Ответить
Развернуть ветку
Возрастной Кирилл

Одного "Сбербанк онлайн" Установленного на телефоне будет достаточно, чтобы отслеживать перемещения человека если к этой инфе получит доступ фбс.

Ответить
Развернуть ветку
Александр

Сбербанк не у всех есть. Особенно у бабулек всяких. Плюс я не уверен, что он передаёт данные, если не работает в фоновом режиме. Те же симки могут быть куплены в переходе у Джамшуда или оформлены на родственника.

Наконец, как это юридически обеспечить такой уровень доступа?  Ещё один закон, развязывающий руки силовикам и почву для злоупотребления? Режим ЧС возможно подойдет как обоснование, но его у нас почему-то упорно не хотят его вводить. Вместо этого мутный непонятный режим добровольно-принудительной самоизоляции.

Ответить
Развернуть ветку
Илья Фадеев

Прослушка голоса зато есть у всех. Кровавая гэбня и мирный Запад?

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

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

Ответить
Развернуть ветку
Седой томагавк_два

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

Ответить
Развернуть ветку
Сырой череп

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

Ответить
Развернуть ветку
Седой томагавк_два

А ты не задумывался о том что это у тебя торчит из ноги где она переходит в стопу? У этого даже названия нет. Чип уже в тебе

Ответить
Развернуть ветку
Сырой череп

Если я правильно понял, о чем ты, то это называется латеральная лодыжка...

Ответить
Развернуть ветку
Седой томагавк_два

Они придумали название чтобы замести следы

Ответить
Развернуть ветку
Сырой череп

Они придумали названия всему. Ты думаешь, чипы везде? 🤔

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

Какое милое цифровое рабство.

Ответить
Развернуть ветку
Гарант твоей девственности

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

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

А где вы видите ограничение?

Ответить
Развернуть ветку
KETHER CORTEX

Вы написали про приложение для выявления контактов с неблагонадёжными элементами общества. Сегодня предупреждают о контакте с зараженным, а завтра обвиняют в госизмене.

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

Ладно, вот теперь уже можно быть готовым к обмотанию фольгой и себя и телефона

Ответить
Развернуть ветку
Гусь Хмурый
и телефона

положил в пакетик чипсов и теперь ты мамкин бунтарь-хацкер

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

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

Ответить
Развернуть ветку
Кот с очками

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

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

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

Ответить
Развернуть ветку
Mike Kozlov

Так, объясните мне, пожалуйста, две вещи.

Во-первых, как вы собрались паблишить приложение, вас либо забреют «ну потому что мы сами это сделали, не надо мешать» либо потому что они не пропускают приложения про covid, как вы сами и сказали.

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

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

- Во-первых каждый может его собрать себе из сорсов и поставить на свой телефон, без стора. 
- Во-вторых, если, например, минздрав не доверяет Apple/Google, то они могу от своего имени выпустить наш апп и все контролировать. При этом протокол не позволит следить за людьми, ни даже находить заболевших.

Ответить
Развернуть ветку
Mike Kozlov

Вы представляете, что у вас будет аудитория, которая каждую неделю методично переподписывает приложение? Конверсия будет просто катастрофически низкой, мне кажется.

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

Ну и как результат - проблемы с внедрением на обоих концах. Совершенно не представляю, как это заработает.

В реализации Apple и Google есть хотя бы внедрение со стороны пользователя.

Ответить
Развернуть ветку
Трезвый американец

Lineage, AOSP и UB нам в помощь

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

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

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

Ответить
Развернуть ветку
Читать все 30 комментариев
null