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

#security #gps #distance

#Безопасность #gps #расстояние

Вопрос:

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

Могу ли я каким-либо образом изменить исправления GPS, чтобы сервер не знал, где находятся клиенты, но все равно мог вычислить точное расстояние между двумя из них?

Ответ №1:

Если клиенты не могут напрямую общаться друг с другом, тогда нет, не напрямую.

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

Вы могли бы размыть данные, но тогда вы повредите точности.

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

Кроме того, 1 за то, что вы действительно хотите сохранить конфиденциальность пользователей!

Комментарии:

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

Ответ №2:

Мне кажется, что оба клина, отправляющие свои точные координаты на сервер и рассчитывающие там расстояние, были бы лучшим вариантом для обеспечения конфиденциальности (и, возможно, также производительности)

т.е. Клиент A и клиент B отправляют свои координаты на сервер. Сервер вычисляет расстояние между двумя точками и отправляет обратно расстояние обоим клиентам.