ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
23 ноября
991017 Топик полностью
fk0, легенда (02.04.2020 13:34, просмотров: 405) ответил =AlexD= на Ну это просто, посылать сообщение "вы в опасной близости от потенциального носителя вируса"
Нет, сам факт посылки такого сообщения с сервера уже говорит о том, что сервер обладает графом связей каждого человека. Я вижу две модели, и обе, увы, с недостатками: 


1) Ориентация на старый bluetooth и wifi, где каждое устройство обладает уникальным мак-адресом и вещает его  в эфир, телефоны накапливают список мак-адресов которые они наблюдали последние 2 недели. В случае заболевания, заболевший публикует на специальном сервере свой MAC-адрес, остальные проверяют факт публикации известных им адресов и сигнализируют если нужно. 


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


2) Ориентация исключительно на Bluetooth LE, где возможна широковещательная рассылка (beacon) произвольной информации. В частности можно рассылать не свой мак-адрес, а некоторые хеши посчитанные на основе адреса и, например, текушего времени. Т.е. идентификатор конкретного человека постоянно меняется -- это существенный плюс. В случае заражения, опять же на специальном сервере публикуются некие числовые значения (уникальный идентификатор, случайный, но не мак) идентифицирующие человека. Далее все заинтересованные получают информацию с сервера, считают хеши, проверяют, не встречалось ли такие хеши в эфире, если встречались -- сигнализируют. 


В данном случае всё равно есть уязвимость: каждый телефон записывает какой код он видел в какой момент времени, и впоследствии узнаёт что был потенциально заражен тогда-то. Далее человек может вспомнить с кем встречался именно в этот момент времени (хуже того, телефон может записать wifi и bluetooth MAC-адреса в автоматическом режиме -- опять же речь про модифицированное ПО).


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


Какие ещё потенциальные проблемы: получается должен существовать сервер способный выдерживать ГИГАНТСКИЕ нагрузки. К счастью в основном только GET-запросы, т.е. легко параллелится и масштабируется. Кроме того, абонентов можно принудительно разнести в разные "таймслоты" на основе их идентификаторов, чтоб выровнять нагрузку, избежать пиков.


И ещё важная проблема: недостоверные сообщения. Как с ней бороться непонятно. Это опять же опрос социальный, а не технический. У меня идей нет.  Делать внос сведений платным -- нельзя. Разве что, после публикации сведений блокировать абонента на длительный срок.


И очевидно должна быть функция тестирования. Когда так же "волна" проходит, но с другим сообщением, мол тест. Чтоб люди убедились, что приложение работет.

[ZX]