BlueTrace — это протокол приложения с открытым исходным кодом , который облегчает цифровое отслеживание контактов пользователей для сдерживания распространения пандемии COVID-19 . [2] Первоначально разработанный правительством Сингапура , BlueTrace обеспечивает отслеживание контактов для приложения TraceTogether . [3] [4] Австралия и Объединенные Арабские Эмираты уже приняли протокол в своих государственных приложениях, [5] [6] [7] а другие страны рассматривали возможность принятия BlueTrace. [8] [9] Принципом протокола является сохранение конфиденциальности и сотрудничество с органами здравоохранения. [10]
Сохранение конфиденциальности пользователей было одним из основных соображений, вокруг которых был разработан BlueTrace. Для достижения этого личная информация собирается только один раз в момент регистрации и используется только для связи с потенциально инфицированными пациентами. Кроме того, пользователи могут отказаться в любое время, очистив всю личную информацию и сделав любые записанные данные неотслеживаемыми. Отслеживание контактов выполняется полностью локально на клиентском устройстве с помощью Bluetooth Low Energy , сохраняя все встречи в журнале истории контактов, хронологизирующем встречи за последние 21 день. Пользователи в журнале контактов идентифицируются с помощью анонимных временных идентификаторов со сдвигом во времени, выданных органом здравоохранения. Это означает, что личность пользователя не может быть установлена никем, кроме органа здравоохранения, в котором он зарегистрирован. Кроме того, поскольку временные идентификаторы регулярно меняются, злонамеренные третьи лица не могут отслеживать пользователей, наблюдая за записями журнала с течением времени.
После того, как пользователь получает положительный результат теста на инфекцию, орган здравоохранения запрашивает журнал контактов. Если пользователь решает поделиться своим журналом, он отправляется в орган здравоохранения, где он сопоставляет временный идентификатор с контактной информацией. Органы здравоохранения не могут получить доступ к записям журнала об иностранных пользователях, поэтому эти записи отправляются в соответствующий иностранный орган здравоохранения для обработки там. После обработки журнала орган здравоохранения связывается с пользователем, идентифицированным записью.
Протокол сосредоточен на двух областях: локальной регистрации зарегистрированных пользователей вблизи устройства и передаче журнала в действующий орган здравоохранения, при этом сохраняя конфиденциальность. Для достижения этого протокол можно разделить на области связи между устройствами (DDC) и связи между устройствами и сервером отчетов (DRSC).
Компонент DDC работает поверх существующего протокола Bluetooth Low Energy , определяя, как два устройства распознают присутствие друг друга. [10] : стр. 2 Компонент DRSC использует HTTPS для передачи временной шкалы посещений на централизованный сервер, принадлежащий органу здравоохранения, после того, как пользователь получил положительный результат теста на инфекцию. Затем орган здравоохранения может, используя журнал, уведомить пользователей, которые контактировали с инфицированным пациентом. [10] : стр. 2
Каждое приложение, реализующее протокол BlueTrace, имеет соответствующий центральный сервер отчетов, управляемый органом здравоохранения. Сервер отчетов отвечает за обработку первоначальной регистрации, предоставление уникальных идентификаторов пользователей и сбор журналов контактов, созданных частью протокола DDC. Когда пользователь впервые запускает приложение BlueTrace, у него будет запрошен номер телефона в международном формате и ему будет назначен статический идентификатор пользователя. [10] : раздел. 4 Этот номер телефона позже используется, если пользователь зарегистрировал встречу в журнале контактов инфицированного пациента.
После регистрации пользователям предоставляются временные идентификаторы (TempID), которые однозначно идентифицируют их для других устройств. Срок действия каждого TempID составляет 15 минут, что не позволяет злоумышленникам выполнять атаки с повторным воспроизведением или отслеживать пользователей с течением времени с помощью статических уникальных идентификаторов. [10] : раздел. 4.2 TempID генерируются из UserID пользователя, времени начала TempID и времени истечения срока действия TempID, которые шифруются и преобразуются сервером в строку, закодированную в Base64, с использованием секретного симметричного ключа шифрования. Чтобы гарантировать, что устройства имеют постоянный запас TempID, даже в нестабильной сетевой среде, TempID передаются на устройства пакетами с предварительной датой. [10] : раздел. 4.2 Состав TempID показан ниже:
После того, как пользователь получил положительный результат теста на инфекцию, орган здравоохранения генерирует PIN-код , аутентифицирующий пользователя для загрузки его журнала контактов на сервер отчетности. В журнал включены метаданные о каждом контакте; наиболее важными из которых являются временная метка и идентификатор органа здравоохранения (HAI).
HAI определяет, в какой орган здравоохранения отчитывается зарегистрированный контакт. Если HAI представляет иностранный орган здравоохранения, запись журнала передается в идентифицированный орган для обработки там.
После того, как орган здравоохранения отфильтровал записи журнала, включив только домашних клиентов, он расшифровывает TempID, чтобы раскрыть UserID, время начала и время истечения срока действия. Даты начала и окончания действия сравниваются с временной меткой встречи для обеспечения действительности, а UserID сопоставляется с номером телефона. Затем орган здравоохранения может связаться с номером телефона, чтобы сообщить пользователю о потенциальном контакте с инфицированным пациентом.
Часть DDC протокола определяет, как два устройства взаимодействуют и регистрируют свой контакт. Каждое устройство находится в одном из двух состояний, центральном или периферийном, с рабочим циклом около 1:4 соответственно.
В режиме периферии устройство объявляет о своем присутствии, а в режиме централи оно сканирует на предмет рекламных устройств. Кроме того, некоторые устройства не могут работать в режиме централи и, таким образом, работают исключительно в режиме периферии. [11] После того, как два устройства обнаружили друг друга, они обмениваются характерным пакетом, содержащим информацию о себе. Пакет формируется как файл JSON , содержащий TempID устройства, модель устройства, HAI и версию протокола BlueTrace.
При работе в режиме Central устройство дополнительно посылает силу сигнала, что позволяет позже рассчитать приблизительное расстояние между двумя устройствами. Ниже приведен пример пакета характеристик Central:
{ "id" : "FmFISm9nq3PgpLdxxYpTx5tF3ML3Va1wqqgY9DGDz1utPbw+Iz8tqAdpbxR1 nSvr+ILXPG==" , // TempID "md" : "iPhone X" , // Модель устройства "rc" : -60 , // Уровень сигнала "o" : "IJ_HAI" , // Идентификатор органа здравоохранения "v" : 2 // Версия протокола }
Эти характеристики затем добавляются в локальную базу данных на устройстве, где они хранятся в течение 21 дня и могут быть отправлены на сервер отчетов позже. Связанное устройство также добавляется в локальный черный список на два рабочих цикла, чтобы остановить два устройства, повторно связывающихся друг с другом, экономя энергию и память.
Сотрудничество между отдельными органами здравоохранения является основным компонентом протокола BlueTrace, и оно разработано таким образом, что несколько органов могут работать вместе, не раскрывая личную информацию иностранным органам, в которых пользователь не зарегистрирован. Поскольку каждый орган хранит свой отдельный ключ шифрования и записи пользователей, орган здравоохранения не может расшифровать и увидеть данные иностранного пользователя.
Чтобы гарантировать отправку записей журнала в нужный орган, часть рукопожатия DDC содержит идентификатор органа здравоохранения (HAI), уникальную строку , назначенную зарегистрированным органам здравоохранения. После идентификации записи журнала иностранного органа здравоохранения принимающий орган здравоохранения передает запись журнала на сервер отчетности иностранного органа, где она проверяется, и возвращается статический псевдоидентификатор.
PseudoID — это соленый криптографический хэш UserID, разработанный для того, чтобы позволить иностранным органам здравоохранения проводить статистический анализ журналов контактов и сообщать о конкретном пользователе, не раскрывая ненужную личную информацию. После того, как будет установлено, что PseudoID находился в тесном контакте с инфицированным пациентом, иностранный орган здравоохранения, выдавший PseudoID, информируется об этом и может предпринять необходимые меры.
Возможность пользователей отозвать согласие на использование и сбор своих данных в любое время была важным соображением при разработке протокола. [10] : раздел. 3, пункт. 4 Чтобы обеспечить это, персонально идентифицируемая информация исключена из компонента DDC протокола. Это означает, что единственное место, где хранится персональная информация, — это сервер отчетов, где она связана с анонимным статическим UserID. Этот UserID (зашифрованный во TempID) — это то, что используется для идентификации в части DDC протокола. Если пользователь отзывает согласие, запись пользователя удаляется с сервера отчетов, то есть UserID, полученные через журналы контактов, больше не могут быть сопоставлены с номером телефона.
Одной из самых больших проблем с конфиденциальностью, связанных с такими протоколами, как BlueTrace или PEPP-PT, является использование централизованной обработки отчетов. [12] [13] [14] [15] [16] [17] В протоколе централизованной обработки отчетов пользователь должен загрузить весь свой журнал контактов на сервер, администрируемый органом здравоохранения, где орган здравоохранения затем несет ответственность за сопоставление записей журнала с контактными данными, установление потенциального контакта и, в конечном итоге, предупреждение пользователей о потенциальном контакте. [18]
В качестве альтернативы, децентрализованные протоколы обработки отчетов, все еще имеющие центральный сервер отчетов, делегируют ответственность за обработку журналов клиентам в сети. Протоколы, использующие этот подход, такие как TCN и DP-3T , заставляют клиента загружать номер, из которого токены встреч могут быть получены отдельными устройствами. Затем клиенты проверяют эти токены по своим локальным журналам контактов, чтобы определить, контактировали ли они с инфицированным пациентом. [19] Этот подход, присущий тому факту, что протокол никогда не позволяет правительству получать доступ к журналам контактов, имеет значительные преимущества в плане конфиденциальности. Однако этот метод также представляет некоторые проблемы, в первую очередь отсутствие человека в цикле отчетности, что приводит к более высокому количеству ложных срабатываний; [18] и потенциальные проблемы масштабирования, поскольку некоторые устройства могут быть перегружены большим количеством отчетов. Децентрализованные протоколы отчетности также менее зрелые, чем их централизованные аналоги. [20] [21] [22]
OpenTrace — это реализация BlueTrace с открытым исходным кодом, выпущенная по лицензии GPL-3.0 . [23] [24] [25] Сторона DRSC протокола реализована с использованием платформы Firebase , [26] с использованием функций Firebase, бессерверной вычислительной среды, для всех клиентских вызовов; и Firebase Secret Manager [27] : строки 29–37 и Storage [28] : строка 22 для хранения ключа шифрования и журналов контактов соответственно. Для стороны приложения/DDC протокола включена модифицированная версия приложения TraceTogether для устройств Android и iOS. [29] [30]
COVIDSafe [31] [32] — это цифровое приложение для отслеживания контактов , анонсированное федеральным правительством Австралии на основе OpenTrace/BlueTrace, анонсированное 14 апреля 2020 года для борьбы с продолжающейся пандемией COVID-19 . [33] 26 апреля 2020 года федеральное правительство Австралии публично выпустило первую версию приложения. [6] [5] В течение первых 24 часов после выпуска приложение загрузили более 1 миллиона человек, [34] а в течение 48 часов — более 2 миллионов. [35] Ко второй неделе зарегистрировалось более 4 миллионов пользователей. [36] Сопровождая выпуск, Питер Даттон , министр внутренних дел , объявил о новом законодательстве, которое сделает незаконным принуждение кого-либо передавать данные из приложения, даже если они зарегистрировались и дали положительный результат теста. [37] [38] Исходный код приложения был также выпущен 8 мая 2020 года [39] [40] после задержек [41], пока не была завершена проверка Австралийским управлением связи . [42]
{{cite web}}
: CS1 maint: несколько имен: список авторов ( ссылка ){{cite web}}
: CS1 maint: несколько имен: список авторов ( ссылка ){{cite web}}
: CS1 maint: несколько имен: список авторов ( ссылка )