Как Tinder (Слегка) Скрывает Ваше Местоположение

В этом году вы и ваш приятель Стив Стивингтон основали стартап по отслеживанию пользователей.

Бизнес основан на Вы обнаружили утечку метаданных WhatsApp .

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

Недавно вы переехали в шикарный новый офис в отделе литературы XIX века Публичной библиотеки Сан-Франциско и имеете завидную репутацию интернет-маркетолога.

Но под этой глянцевой и сомнительной внешностью скрывается гниль.

Вы подозреваете, что ваш хороший друг, соучредитель и со-генеральный директор Стив Стивингтон замышляет против вас заговор.

Он всегда в странное время выбегает из библиотеки и куда-то пропадает на несколько часов.

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

Вы несколько раз поручали библиотекарям присматривать за ним, но все они плохо справляются с полевой работой.

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

Стив Стивингтон, вероятно, пытается убедить инвесторов вывести вас из бизнеса.

Вы думаете, что Питер Тиль поддержит вас, но насчет тети Марты сложно сказать.

Итак, нам нужно выяснить, куда делся Стив.

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

Это позволяет пользователям принимать взвешенные решения о том, действительно ли стоит ехать 13 километров, чтобы встретить пару ростом 6 или 6,5 лет, когда они утром принимают ванну, мороженое в холодильнике и работают. Другими словами, Tinder точно знает, куда идет Стив.

И если вы выберете правильный эксплойт, вы тоже скоро об этом узнаете.

Чтобы сориентироваться в поиске, вы просмотрели отчеты о прошлых утечках данных о местоположении пользователей Tinder. Их было несколько.

В 2013 году было обнаружено, что Серверы Tinder отправляют точные координаты потенциальных совпадений в мобильное приложение.

.

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

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



Как Tinder (слегка) скрывает ваше местоположение

Ответ API Tinder, включая точное местоположение Tinder попытался незаметно исправить уязвимость, переложив расчет расстояния на серверы, а не на приложение.

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

Однако Tinder по неосторожности отправил расстояния в виде неокругленных чисел с 15 знаками после запятой.



Как Tinder (слегка) скрывает ваше местоположение

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

Исследователи отправили в Tinder три фальшивых координаты с разными местоположениями пользователя.

В каждом новом месте они спрашивали Tinder, как далеко находится цель.

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

Точка пересечения — координаты цели с точностью до 30 метров.



Как Tinder (слегка) скрывает ваше местоположение

Пример трилатерации Tinder Команда безопасности Tinder посмотрела на этих людей, которые постоянно заставляли их работать, вздохнула и незаметно устранила уязвимость.

Tinder теперь отправляет в приложение расстояния, округленные до ближайшего километра.

По-прежнему возможно использовать указанную процедуру трилатерации для определения координат цели в пределах километра или около того.

Но в густонаселенном городе Сан-Франциско это не ответит, куда делся подлый Стивингтон.

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

Вы должны выяснить, куда он идет, пока не стало слишком поздно.

Вы заперлись в своем личном кабинете – в читальном зале библиотеки на 4 этаже.

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

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

Начать новую атаку можно так же, как и при трилатерации.

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

Tinder может ответить «8 километров», что само по себе малополезно.

Но тогда вы сможете двигаться на север по одному пикселю за раз, запрашивая расстояние на каждом шагу.

Сервер ответит: «8 километров, 8 километров, 8 километров, 8 километров, 7 километров».

Если ваше предположение о процессе округления верно, то точка изменения ответа соответствует точному расстоянию до цели в 7,5 километров.

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

Перейдем к действию.

Пока Уилсон сходил в туалет, вы одалживаете его телефон для тестирования — вы знаете, что он пользуется Tinder, а код разблокировки виден по отпечатку пальца на экране.

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

Там вы открываете Tinder на обоих телефонах.

Вы продолжаете проводить пальцем до тех пор, пока не найдете совпадение, а затем пишете короткий скрипт Python, используя пиндер для подделки вызовов API Tinder. Вы помещаете Уилсона посреди залива Сан-Франциско, а затем пытаетесь определить его координаты, меняя свое местоположение пиксель за пикселем, чтобы найти точку, в которой расстояние между вами меняется от одного округленного числа к другому.

Но что-то не так.

Наступил вечер, время ужина прошло, а Уилсона вы еще не нашли.

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

Круги иногда дразняще близки к пересечению, но обычно не дают значимого ответа о том, где находится Уилсон.

Вы начинаете отчаиваться.

Прямо в эту секунду Стив Стивингтон может подписать новый контракт с Питером Тилем и тетей Мартой.

Возможно, он уже обновил страницу вашей компании в LinkedIn, переименовал вас в «советника», «помощника» или «бывшего генерального директора».

Библиотека закрывается, и вы переходите в складское помещение.

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



Как Tinder (слегка) скрывает ваше местоположение

Разочарованная, вы делаете шаг назад и ударяетесь головой о нижнюю полку.

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

Tinder, возможно, не просто округляет точные расстояния.

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

Вы перестаете рисовать круги и начинаете ходить по линиям вокруг истинного местоположения Уилсона, отмечая каждое изменение расстояния.

В два часа ночи все становится ясно.



Как Tinder (слегка) скрывает ваше местоположение

Размещайте метки на карте с учетом расстояний в Tinder. Теперь Tinder настолько ревниво относится к конфиденциальности пользователей, что разрывает скучные узы обычной геометрии.

Он отказался от Евклида.

Ему не нужен Формула гаверсина .

Вместо этого Tinder использует две инновации при расчете расстояния между совпадениями.

Во-первых, и это самое главное, он делит город на квадраты размером примерно 1 х 1 миля.

При расчете расстояния местоположение цели привязывается к центру текущего квадрата сетки.

Затем он вычисляет и возвращает приблизительное расстояние между вами.

и это связанное местоположение .



Как Tinder (слегка) скрывает ваше местоположение

Tinder связывает местоположения пользователей с сеткой Во-вторых, он рассчитывает расстояния словно по своей уникальной формуле.

Для этого берется карта приблизительных заранее заданных расстояний и накладывается на центр целевого квадрата.

Tinder ищет местоположение злоумышленника в этом наложении и возвращает соответствующее расстояние.

При обычном расчете евклидова расстояния это будет набор концентрических кругов.



Как Tinder (слегка) скрывает ваше местоположение

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



Как Tinder (слегка) скрывает ваше местоположение

Помимо прочего, это означает, что Tinder часто возвращает слегка неверные значения расстояний.

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

слишком неравномерные расстояния, расположенные к северо-востоку друг от друга.

Привязка к сетке — ключевое нововведение в подходе Tinder. Это означает, что Tinder всегда будет возвращать одно и то же расстояние, если цель находится где-нибудь в пределах данного квадрата сетки.

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

Невозможно найти целевое местоположение с большей точностью, чем границы одного из квадратов сетки (примерно) 1x1 миля.

Даже такое грубое наблюдение может заставить пользователей Tinder задуматься.

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

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

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

Возможно, новая метрика просто рассчитывается быстрее, и, несмотря на заветы Гордона Мура, компьютеры все еще ограничены.

Однако все это сводится к тому, что Tinder безопасен – в этом очень узком смысле – и вы облажались.

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

Вы грустите, но тщательно заметаете следы.

Вы очищаете шкаф и бросаете телефон Уилсона в промышленный измельчитель библиотеки.

Выходите через главный вход, украдите плохо пристегнутый велосипед и грустно едете домой.

На следующее утро Стив Стивингтон дарит вам одну из пары кружек «сорежиссера», над которыми он работал на секретном дневном уроке керамики.

Это абсолютно отвратительно.

Было бы лучше, если бы он дал вам одну из парочки десятидолларовых купюр и остался в офисе.

Работал он мало и плохо, а приходилось проводить много совещаний и много врать – обычно это его работа.

Но, по крайней мере, он не украл твою компанию.

Вы наливаете кофе Уилсона в свою нелепую кружку и желаете удачи своему хорошему другу.

Когда ночью засыпаешь, в голову приходят мысли о том, что происходит с координатной сеткой Tinder на Северном полюсе.

Ваш код из этой статьи опубликован на Github. .

Пожалуйста, скажи себе , если у вас возникнут вопросы или вы обнаружите ошибки.

Теги: #tinder #трилатерация #информационная безопасность #Геоинформационные услуги

Вместе с данным постом часто просматривают: