Русский
Русский
English
Статистика
Реклама

Strava

Перевод Как освободить умные часы Garmin от облачных сервисов, которые не работают из-за атаки

29.07.2020 14:20:10 | Автор: admin
Автор статьи известный хакер Эндрю Хван (bunnie)

Я часто говорю: если поверить, что технология это магия, то мы рискуем стать её заложниками. Совсем недавно я попал в такую ситуацию, но, к счастью, меня спас открытый исходный код.

На момент написания этой статьи Garmin страдает от массированной атаки зловреда-вымогателя. Это повлияло на меня, потому что у меня есть часы Garmin Instinct. Я очень доволен ими, и во многих отношениях они просто волшебны, так много возможностей упаковано в такой крошечный гаджет.

Кроме того, у меня есть хобби гребля на каноэ с выносными опорами.

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

Вокруг Сингапура могут быть экстремальные течения. При смене приливов и отливов Южно-Китайское море в конечном итоге находит путь в Андаманское море через Сингапурский пролив, вызывая предательские течения, которые меняются с течением времени. Поэтому после каждого гребка мои GPS-данные загружаются в облако Garmin Connect для просмотра маршрута, чтобы отметить опасные изменения в характере течений с приливами и отливами.

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

До вчерашнего дня.

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



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

Куча друзей посоветовали попробовать Strava. Хорошая новость в том, что Garmin позволяет извлекать файлы данных из часов Instinct для загрузки в сторонние службы. Нужно только подключить часы к обычному USB-порту, и они отобразятся как mass storage device.

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



Нажимаем Отклонить



Нажимаем Запретить разрешение



Нажимаем OK

Три клика, чтобы запретить доступ, а если расслабленно продолжать нажимать нижнюю кнопку, то вы сделаете другой выбор случайно. После этого меня встретил жуткий список людей, за которыми нужно следить (они так много узнали обо мне по одному адресу электронной почты?), а затем хитрое диалоговое окно, где если вы ответите неправильно, вам предложат ввести информацию о кредитной карте в рамках бесплатной пробной версии.

Поскольку Garmin уже заработал на продаже девайса дороже 200 долларов, сбор моих личных данных просто десерт; а вот для Strava мои данные основное блюдо. Лично мне совершенно ясно, что Strava даёт понять своим инвесторам, что они получат большую прибыль, монетизируя мои личные данные, включая информацию о моём здоровье.

Для меня это абсолютно неприемлемо. Вместо того, чтобы освободить данные из залога, переход от Garmin к Strava похож на переход из сковороды прямо в огонь.

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

Я с радостью обнаружил опенсорсную утилиту под названием gpsbabel (спасибо разработчикам! я задонатил!), которая конвертирует данные из полу-(?)проприетарного формата Garmin в совместимый формат .GPX. Оттуда я смог вычленить фрагменты парсинга XML и объединить его с OpenStreetMaps через Folium API для создания кастомных карт с моими данными.

Даже с учётом того, что я заблудился в попытке использовать Google Maps API, которые ставят ужасные водяные знаки только для разработки на всех тайлах карты, работа заняла всего один вечер. Не самая лучшая трата моего времени, учитывая все обстоятельства, но в основном это был вопрос поиска правильных опенсорсных частей и склеивания их вместе в Python (кстати, Python отличный клей, но ужасный структурный материал. Не создавайте из него большие проекты). Качество кода довольно дерьмовое, но Python позволяет это, и он делает своё дело. Учитывая эти предостережения, можно использовать его в качестве отправной точки для поиска чего-то получше.

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



Это конкретно нужные мне данные в нужном формате, не больше и не меньше. Кроме того, выдача представляет собой один html-файл, на который можно поставить прямую ссылку. Никакой аналитики, никаких кукисов. Только те данные, которыми я решил поделиться с вами.

Вот фрагмент кода, который я использую для построения картографических данных:

def plot_osm_map(track, output='speed-map.html', hr=None):    for i in range(len(track['speed'])):        track['speed'][i] = speed_conversion(track['speed'][i])    speeds = track['speed']    minima = min(speeds)    maxima = max(speeds)    norm = matplotlib.colors.Normalize(vmin=minima, vmax=maxima, clip=True)    mapper = cm.ScalarMappable(norm=norm, cmap=cm.plasma)    m = folium.Map(location=[track['lat'][0], track['lon'][0]], zoom_start=15)    for index in range(len(track['lat'])):        if track['speed'][index] == 0:            track['speed'][index] = 0.01        else:            track['speed'][index] = track['speed'][index]        if hr:            try:                tooltip=str(track['speed'][index]) + ' ' + str(hr['hr'][index]) +'bpm'            except:                tooltip=str(track['speed'][index])        else:            tooltip=str(track['speed'][index])        folium.CircleMarker(            location=(track['lat'][index], track['lon'][index]),            radius=track['speed'][index]**2 / 8,            tooltip=tooltip,            fill_color=matplotlib.colors.to_hex(mapper.to_rgba(track['speed'][index])),            fill=True,            fill_opacity=0.2,            weight=0,        ).add_to(m)    m.save(output)

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

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

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

Смысл открытого исходного кода не в том, чтобы ритуально компилировать материал. Смысл в осознании, что технология это не магия: что есть альтернатива, которую каждый может выбрать для себя, чтобы освободиться от потенциальной ситуации с заложниками. Если мы этого хотим, open source даёт возможность создавать и запускать собственные инструменты и сервисы.
Подробнее..

Владельцы MAPS.ME отменили изменения и вернули старое приложение. Надолго ли?

01.02.2021 12:14:39 | Автор: admin

Слева старое приложение, справа декабрьская версия от южнокорейцев. Источник: Смерть MAPS.ME?

В ноябре 2020 года Mail.Ru Group продала MAPS.ME южнокорейской компании Daegu Limited (входит в состав платёжной системы Parity.com), и уже 20 декабря 2020 года новые владельцы выпустили обновление, которое практически убило приложение.

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

К счастью, новые владельцы осознали глубину своей ошибки и откатили изменения. В апдейте от 30 декабря 2020 года восстановлена вся функциональность. Казалось бы, победа? Справедливость восторжествовала? Нет, в это слабо верится.

Продажа MAPS.ME


Приложение MAPS.ME (первоначально MapsWithMe) создал белорусский стартап MapsWithMe в апреле 2011 года. Разработчиков было четверо Юрий Мельничек (автор проекта, бывший сотрудник Google), Александр Золотарёв, Виктор Говако и Сергей Речицкий.


Юрий Мельничек, Александр Золотарёв, Виктор Говако и Сергей Речицкий в 2011 году. Источник: 42.tut.by

Изначальной идеей было выпустить карты, которые работают в офлайне, в отличие от Google Maps. Во-первых, они доступны без интернета и не нужно платить за роуминг. Во-вторых, такое приложение по своей сути будет быстрее. Идея оказалась отличной. Хотя к тому времени на рынке уже было небольших приложений с картами в офлайне, но большинство из них сохраняли данные в виде статических изображений, а это не позволяло скачать и использовать целиком карту страны в виде векторных тайлов.

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

Команда работала над проектом примерно полтора года. Было тяжело, инвестиции из собственного кармана достигли $250 тыс. Двум основателям пришлось продать свои квартиры. Первой вышла версия для iOS, потом для Android. Затем платная версия за 169 рублей, которая позволяла загружать карты в высоком разрешении. Приложение нашло аудиторию по всему миру: на первом месте по количеству пользователей были США, потом Россия.

В 2014 году компанию купила корпорация Mail.Ru Group за 542 млн рублей ($11,48 млн по курсу на 14 ноября 2014 года) и основатели получили свои доли. Приложение стало бесплатным.

Сразу после покупки был закрыт допотопный фирменный сервис Карты@Mail.ru. Вместо него планировалось везде использовать MAPS.ME, но не получилось. Он остался независимым мобильным приложением. В остальных продуктах (доставка, такси) Мейл по-прежнему использует карты Google Maps, которые стоят огромных денег.

Нужно заметить, что автономия проекта MAPS.ME в составе Mail.Ru была одним из условий его продажи. И его не получилось никуда интегрировать.

Может, оно и к лучшему, потому что тогда Mail.Ru мог бы и прибить отдельное мобильное приложение.

К 2019 году приложение преодолело отметку в 140 млн скачиваний и 10 млн месячных активных пользователей. Выручка составила около $2,5 млн, чистый убыток около $385 тыс. Команда разрослась, набрали менеджеров и т. д.


Команда MAPS.ME в Mail.Ru, источник

По мнению пользователей, с 2014 года приложение не стало хуже, что является заслугой разработчиков Mail.Ru. Они его не испортили. Хотя пытались. Например, в 2019 году сервис запустил платную подписку на каталог путеводителей, которые бесплатно доступны в других местах это не очень красиво.

В ноябре 2020 года MAPS.ME решили продать корейской компании Daegu Limited (входит в состав платёжной системы Parity.com) за 1,557 млрд рублей, это $19,33 млн по курсу на 2 ноября 2020 года. К тому времени компанию давно покинули основатели, а проект до самого конца оставался убыточным.

Возможно, финансовые показатели стали одной из причин продажи. К тому же, у совместного предприятия Сбера и Mail.ru есть доля в картографическом сервисе 2ГИС, который Сбербанк целиком купил в июне 2020 года. Кроме того, и OpenStreetMap, и MAPS.ME опенсорсные проекты, и кто угодно может создавать продукты на их основе. Сейчас Mail.Ru начала работать над собственными сервисами картографии на основе OpenStreetMap.

Что изменилось в декабре 2020 года


Для начала вспомним этот ужас, который появился в декабрьском обновлении. Создалось ощущение, что новые владельцы из Южной Кореи понятия не имеют, что за программа попала им в руки, как она работает и за что её любят миллионы человек.

Небольшой список сделанных изменений:

  • Для получения карт внедрили Mapbox SDK. В результате карты практически перестали работать в офлайне
  • Фоновое скачивание работало плохо
  • Пропали карты метро и навигация по метро
  • Испортилась пешеходная навигация, исчезла диаграмма с перепадом высот
  • Пропали личные данные: подписки на отключение рекламы, отзывы, записи пройденных маршрутов
  • Интерфейс стал монструозным, сильно напоминая Google Maps. Размер карт увеличился в четыре раза, при этом ухудшилась детализация. Например, размер карт Москвы вырос с 50 до 200 МБ
  • Исчез ландшафтный режим
  • Приложение стало тормозить

Зато появился кошелёк. Ведь новый владелец это платёжная система.

Для разработчиков MAPS.ME выход новой версии оказался сюрпризом.

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

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

Поэтому существует ненулевая вероятность, что ситуация повторится. Изменения просто ненадолго откатили, а потом Daegu Limited снова вернётся к первоначальному плану. Деньги есть деньги.

Форки MAPS.ME


К счастью, в 2015 году Mail.Ru сделала хорошее дело и открыла исходный код на GitHub под лицензией Apache 2.0 для свободного использования (официальный репозиторий). Его можно использовать частично (например, для добавления отображения офлайн-карт) или целиком, для создания нового сервиса с помощью модификации Maps.me.

Репозиторий форкнули более 1100 пользователей GitHub. Это гарантирует сохранность исходного кода.

Благодаря открытым исходникам, вскоре после продажи проекта был запущен проект по восстановлению оригинального облика MAPS.ME. В телеграм-канал Original MAPS.ME Project добавилось более 250 человек.

И уже много лет поддерживается свободный форк F-Droid.

Хотя инициатива с форками сейчас не так актуальна, потому что корейцы откатили изменения и вернули оригинальную версию MAPS.ME, но какая-то работа всё равно идёт, судя по активности в телеграм-канале и репозиториях. Например, разработчики заменяют иконки, на которые может распространяться копирайт. Они заменили уже 100 из 400 иконок.



Но если владельцы MAPS.ME опять испортят приложение, можно какое-то время не устанавливать новую версию. Просто скачать все нужные карты и пользоваться старым приложением. Форк исходного кода гарантирует, что эта версия приложения никуда не исчезнет.

Альтернативы MAPS.ME


На самом деле MAPS.ME это просто одна из многих оболочек для рендеринга OpenStreetMap, и вся суть именно в свободных картах, которые редактируются силами сообщества. Туда люди вносят тропинки и другие объекты, которые вы никогда не найдёте на Google Maps. Лучшая информативность OSM по сравнению с Google Maps особенно хорошо заметна в труднодоступных местах и не очень популярных туристических маршрутах.

Вообще, карты Google Maps предназначены в первую очередь для автомобилистов и обслуживания бизнесов. А для прогулок по городу, туризма, велосипедного спорта и любого другого активного отдыха OpenStreetMap просто без конкуренции.


Для сравнения, одна и та же лесная зона в черте города. Слева OpenStreetMap (MAPS.ME), справа Google Maps. Источник

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

OpenStreetMap главная причина популярности MAPS.ME. Но OSM это по сути база геоинформационных данных, а не векторные тайлы. Чтобы сгенерировать тайлы, требуется специальный движок, так как MapTiler, Mapbox или опенсорсный OpenMapTiles (на базе MapTiler), который можно установить на своём сервере и пользоваться им бесплатно. Этот сервер подготавливает векторные тайлы для загрузки в мобильное приложение.

И хорошая новость: есть целый ряд альтернативных программ для рендеринга тайлов. Вот небольшой список мобильных приложений, которые импортируют данные из OpenStreetMap, загружают тайлы на устройство и работают в офлайне. Хотя приложения основаны на свободных картах, некоторые из них платные или продают платный контент:

  • OsmAnd, есть бесплатная и платная версии (треки и тропинки, поддерживаются тепловые карты Strava и тайлы OpenTopo), не требует создания аккаунта, поддерживает закладки, работает в офлайне, отличается насыщенным UI, iOS, Android. В последних версиях под Android исправлен баг с поиском, из-за которого раньше поиск на карте практически не работал. Если кому-то интересно, вот телеграм-канал с разработчиками.


    OsmAnd для Android
  • Mapy.cz (есть популярные трейлы, горизонтали высот, хорошо подходит для велоспорта), работает в офлайне, Android-версия Mapy.cz Cycling & Hiking offline maps, также версии под iOS, Windows и AppGallery. Это приложение фокусируется на Центральной Европе, а международная версия называется Windy Maps
  • Guru Maps
  • Bike Citizens
  • Naviki
  • MapFactor Navigator
  • Pocket Earth, только для iOS
  • MapOut, только для iOS


    3D-эффект в MapOut
  • Gaia GPS, походы и путешествия

Что касается альтернатив, то одной из лучших считают OsmAnd. Здесь поддерживаются GPS-навигатор, предупреждения о камерах контроля скорости (POI) и другие необходимые функции. Правда, некоторые функции платные, хотя при желании можно сэкономить. Например, вот бесплатная версия от F-Droid (3.8.5) и бесплатные карты. Карты скачиваются заранее и хранятся на устройстве, как и положено. Есть мнение, что карты OsmAnd даже полнее и информативнее, чем у MAPS.ME.



Итак, старое приложение MAPS.ME пока остаётся с нами. Но если что-то пойдёт не так мы знаем, что делать.

P. S. Кстати, в картографических магазинах ещё продаются бумажные карты разных масштабов. Иногда в походе такая карта удобнее, чем экран мобильного телефона, хотя в 21 веке это уже какой-то экстремальный дауншифтинг.



На правах рекламы


Наша компания предлагает серверы не только с CPU от Intel, но и серверы с процессорами AMD EPYC. Как и для других типов серверов, огромный выбор операционных систем для автоматической установки, есть возможность установить любую ОС с собственного образа. Попробуйте прямо сейчас!

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru