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

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

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


person tugs    schedule 25.05.2011    source источник


Ответы (2)


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

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

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

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

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

person Brad    schedule 25.05.2011
comment
Спасибо. Я как бы понял, что то, что я хотел, невозможно, мне просто нужно было доказать это самому себе. Мое собственное доказательство заключается в том, что если бы существовала какая-то волшебная функция, обеспечивающая нужные мне свойства, то есть точное местоположение неизвестно, но известно расстояние до любого другого местоположения, сервер мог бы просто создать несколько известных местоположений и использовать расстояния для триангуляции неизвестного местоположения. . - person tugs; 26.05.2011

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

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

person colinross    schedule 25.05.2011