Сотрудник компании IOActive Labs Research разработал программку GMaps-Trafficker, которая анализирует HTTPS-трафик Google Maps и делает предположения, карты какой местности передаются по защищённому соединения. Это интересный образец того, что извлекать полезную информацию можно даже из зашифрованного контента, если подойти к делу с умом.
Теоретически, это облегчает слежку за автомобилистами, потому что вы можете узнать картинку с экрана их автомобильного навигатора. То же самое относится к пользователям Android-смартфонов, которые тоже часто пользуются сервисом Google Maps.
Суть представленной методики заключается в анализе размеров PNG-файлов, которые возвращает Google Maps. В системе координат Google Maps долгота и широта местности преобразуется в значения x и y, которые зависят от уровня зуммирования z.
https://khms0.google.com/blablabla?x=1&y=2&z=3
Таким образом, мы получаем трёхмерную систему координат (x, y, z), где каждому сочетанию значений соответствуют два PNG-изображения. Первая картинка называется оверлейной и содержит названия городов, рек, улиц и т.д., вторая картинка содержит реальные данные со спутниковой съёмки.
Когда понятна структура трафика, дальнейший анализ уже относительно прост. Исследователи составили базу данных с размерами PNG-файлов с помощью программы GMapCatcher, затем написали программку для аппроксимации размера файлов, исходя из структуры трафика SSL. Ещё одна программа пытается подобрать подходящие значения x, y, z, получая информацию о приблизительном размере передаваемых файлов, а затем все они кластеризуются в определённый регион. Понятно, что на большой базе система получает множество ложных срабатываний, но чем дольше анализируется трафик, тем точнее можно кластеризовать координаты в определённом регионе.
Сложность ещё и в том, что очень трудно скачать всю базу Google Maps, потому что они забанят вас по IP-адресу, ну и нужно ещё найти место для хранения петабайтов картинок.
Концептуальная программа для Google Maps является просто примером того, что анализировать и извлекать какую-то информацию можно из любого защищённого трафика. Исследователи отмечают, что существуют различные техники анализа, так что веб-разработчикам нельзя расслабляться и рассчитывать на то, что если они подключили SSL, то полностью защитились от прослушки.
Более подробные детали по перехвату трафика Google Maps с помощью GMaps-Trafficker изложены в этом документе, или можете задавать вопросы автору в твиттере @santaragolabs.