Главная » Песочница 2 » Какие данные собирают Apple Health и Google Fit
Какие данные собирают Apple Health и Google Fit

Какие данные собирают Apple Health и Google Fit

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

Как узнать  какие данные собирают стандартные приложения Apple Health (iOS) и Google Fit (Android)? Как и где эти данные сохраняются, куда синхронизируются, как защищены и как их можно извлечь? В этой статье мы подробно рассмотрим эти вопросы.

Apple Health: приложение «все в одном»

Одновременно с iOS 8 вышло в свет и приложение Apple Health в сентябре 2014 года. С тех пор это приложение присутствует на всех устройствах iPhone и использует данные от встроенных в iPhone датчиков для составления информации об активности пользователя. Apple Health работает в фоновом режиме независимо от вашего желания!

В экосистеме Apple есть и устройство-компаньон для сбора дополнительных данных, которые не может предоставить iPhone. Это Apple Watch, которые в разных модификациях позволяют измерять пульс, снимать электрокардиограмму, детектировать падения и определять степень активности пользователя.

Какие данные собирают Apple Health и Google Fit

Пользователям, запустившим приложение Apple Health, доступны четыре основные категории данных:

  • Activity, в которой можно увидеть активность пользователя;
  • Nutrition, где показывается, что и в каких количествах пользователь ест. Регистрируется, если пользователь ведет дневник питания в одном из сторонних приложений;
  • Sleep с анализом данных о сне пользователя;
  • Mindfulness (осознанность или релаксация), загадочная категория, истинный смысл которой доступен достигшим просветления адептам определенных практик. С технической точки зрения смысловой нагрузки не несет, по крайней мере в iOS 11 и 12. Записывается при запуске приложения Breathe на Apple Watch или при работе одного из сторонних приложений.

Откуда поступают данные, на основе которых приложение отображает всю эту информацию? Все данные собираются от устройств и приложений, работающих по протоколу HealthKit. Сюда входит как сам iPhone, так и часы Apple Watch, а также различные сторонние устройства и приложения — браслеты, часы, трекеры, разнообразные спортивные и медицинские датчики и приборы. Для работы сторонних приложений необходимо предоставить им доступ к информации Apple Health, что само по себе несет определенные риски.

Какие данные собирают Apple Health и Google Fit

При этом в самом приложении Apple Health для каждой категории данных официально рекомендуется не одно, а сразу несколько приложений — начиная с печально известного Strava.

Какие данные собирают Apple Health и Google Fit

Кроме того, доступны следующие расширенные категории данных:

  • Body Measurements — рост и вес пользователя;
  • Health Records — больничные карты и документы в формате СDA;
  • Heart — кровяное давление и пульс;
  • Reproductive Health — менструальные циклы и данные о работе репродуктивной системы;
  • Results — результаты лабораторных анализов (например, уровень сахара в крови);
  • Vitals — жизненные параметры организма (давление, температура, пульс, дыхание…);
  • Medical ID — медицинские параметры организма (например, группа крови).

Очевидно, что далеко не все данные (и даже не значительная их часть) могут быть определены с помощью бытовых устройств, даже если речь идет о последнем поколении Apple Watch. Откуда же берутся все эти данные? Здесь нужно вспомнить о том, что в марте 2018 года Apple сумела договориться с рядом сетевых клиник в США, Великобритании и Австралии о стандартизации электронного формата медицинской информации и о передаче этих данных. Речь идет об архитектуре CDA — Clinical Document Architecture, которая стала стандартом де-факто для обмена медицинскими данными.

Стандарт CDA основан на XML, а документы в этом формате могут быть импортированы и обработаны в приложении Apple Health (категория Health Records). Актуальность CDA для России в настоящее время невысока: получить соответствующий файл можно только из одного из поддерживающих архитектуру CDA медицинских учреждений. Для импорта данных в Apple Health его достаточно открыть в приложении, после чего информация будет занесена в базу данных. Данные автоматически синхронизируются с другими устройствами Apple через облако iCloud.

Какие данные собирают Apple Health и Google Fit

Медицинские карты, результаты лабораторных анализов, данные наблюдений, рецепты, прививки, аллергические реакции и другие виды информации, входящие в Health Records, составляют медицинскую тайну, которая в большинстве стран защищается законодательно. Тем удивительнее стал подход к защите этих данных, который выбрала Apple в iOS 11. В этой версии операционной системы данные Health Records могли состоять только из документов CDA; эти данные синхронизировались с iCloud точно так же, как синхронизируются фотографии или заметки. Иными словами, никакой дополнительной защиты предусмотрено не было, и данные Health Records можно было извлечь при помощи Apple ID и пароля, получить по запросу у Apple или посредством GDPR, наконец — украсть из облака.

Для iOS 11 верны следующие утверждения:

  1. Для доступа к данным Health достаточно Apple ID, пароля и одноразового кода двухфакторной аутентификации.
  2. Данные доступны компании Apple.
  3. Данные выдаются правоохранительным органам по запросу.
  4. Данные выдаются через запрос GDPR.
  5. Могут быть извлечены сторонними приложениями.

В iOS 12 эту проблему исправили. В новой версии ОС данные Apple Health в целом и Health Records в частности перенесли в отдельный контейнер, который получил дополнительный уровень защиты. Данные в новом контейнере шифруются ключом из связки ключей (Keychain), который, в свою очередь, зашифрован ключом шифрования связки ключей. Ключ шифрования связки ключей перешифрован ключом, который вычисляется на основе пасскода (iOS) или системного пароля (macOS) пользователя. Такой механизм защиты достаточно сложен и безопасен, а для того, чтобы извлечь данные «Здоровья» из облака iCloud, потребуются абсолютно все данные из следующего списка:

  1. Apple ID и пароль пользователя.
  2. Одноразовый код двухфакторной аутентификации (на учетных записях без 2FA синхронизация просто не включится).
  3. Код блокировки или системный пароль одного из устройств пользователя, которые уже участвуют в синхронизации.

Прямые следствия такого способа защиты данных:

  1. У обычного пользователя не возникает особых проблем с синхронизацией данных: достаточно настроить новое устройство и ввести код блокировки экрана от предыдущего iPhone или iPad.
  2. Компания Apple не имеет доступа к данным «Здоровья» пользователя, синхронизированным с устройств под управлением iOS 12.
  3. Данные не выдаются правоохранительным органам и по запросам GDPR (не могут быть расшифрованы).
  4. Доступ сторонних приложений ограничен (но возможен, см. Elcomsoft Phone Breaker).

Где хранятся данные Apple Health

На самом iPhone данные хранятся в каталоге

Какие данные собирают Apple Health и Google Fit

В ней находятся две связанные базы данных в формате SQLite: healthdb.sqlite и healthdb_secure.sqlite. В этих базах данных содержится вся информация, за исключением точных координат тренировок пользователя (тех самых координат, которые часы Apple Watch начинают собирать сплошным потоком с периодичностью в одну секунду, если определяют момент начала тренировки). Данные о местоположении сохраняются в зашифрованную базу данных healthdb_secure.hfd.

Какие данные собирают Apple Health и Google Fit

В базе данных healthdb.sqlite содержится информация об источниках данных. В базе healthdb_secure.sqlite хранится основная информация с частыми отсылками к первой базе.

Какие данные собирают Apple Health и Google Fit

Начиная с iOS 11 Apple Health использует синхронизацию в облако iCloud. Синхронизируются данные, собранные приложением Apple Health; записи CDA, насколько нам известно, в облако не поступают. Не синхронизируется и уникальный для каждого устройства идентификатор Medical ID. Многие сторонние приложения (Strava, Endomondo и другие) синхронизируют данные в собственные облачные сервисы.

В iOS 11 данные «Здоровья» синхронизируются так же, как и остальные виды синхронизированных данных: они поступают в отдельный контейнер в iCloud, откуда их можно извлечь в виде отдельных фрагментов и расшифровать каждый фрагмент при помощи ключей, которые также извлекаются из iCloud. Физическая безопасность данных обеспечивается исключительно тем, что сами данные хранятся на одних серверах (которые, кстати, принадлежат Microsoft, Google, AT&T или китайской государственной компании, если речь идет о китайских пользователях) в зашифрованном виде, а ключи расшифровки физически хранятся только на серверах самой компании Apple в Купертино. Таким образом, ни Microsoft, ни Google, ни китайское правительство прямого доступа к данным не имеет (они зашифрованы), но если известны логин и пароль пользователя — расшифровать их вполне можно. Такая информация выдается правоохранительным органам и по запросу GDPR.

Гораздо интереснее дела обстоят в iOS 12. В новой версии системы предусмотрена дополнительная защита данных «Здоровья». Для обеспечения обратной совместимости с устройствами с iOS 11 данные, собранные iOS 12, попадают в отдельный контейнер (при этом старый, незащищенный контейнер сохраняется, и данные из него будут прочитаны устройствами с iOS 12). Насколько нам известно, незащищенный контейнер сохраняется в облаке до тех пор, пока есть хотя бы одно устройство с iOS 11, которое участвует в облачной синхронизации «Здоровья». Как только все устройства обновляются до iOS 12, незащищенный контейнер должен пропасть из облака (фактически это может происходить после длительной, иногда — очень длительной задержки).

Данные в новом, защищенном контейнере будут дополнительно зашифрованы при помощи ключа, который хранится в облачной связке ключей (iCloud Keychain). Извлечь этот ключ можно лишь после извлечения и расшифровки самого iCloud Keychain, зашифрованного, в свою очередь, ключом, который вычисляется на основе кода блокировки (или системного пароля) пользователя. Таким образом, данные из нового контейнера невозможно расшифровать без кода блокировки от iPhone или пароля от компьютера Mac.

Как извлечь данные Apple Health

Если у тебя есть физический доступ к iPhone и тебе известен код блокировки, экспортировать данные Apple Health не просто, а очень просто. Достаточно открыть приложение Health и воспользоваться штатной функцией экспорта. Приложение создаст ZIP-архив, который ты можешь сразу же отправить себе через AirDrop.

Какие данные собирают Apple Health и Google Fit

Еще можно сделать локальную резервную копию iPhone через iTunes, обязательно с паролем (если пароль на резервную копию не будет установлен, то данные Health не сохраняются в бэкап). В резервную копию записываются оригинальные базы данных, а не экспортированные данные.

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

Если же физического доступа к iPhone у тебя нет, то извлечь информацию можно из облака iCloud. В зависимости от того, под какой версией iOS работает устройство пользователя (11 или 12), тебе может потребоваться код блокировки одного из устройств, которые участвовали в синхронизации. Для извлечения и расшифровки мы пользовались утилитой Elcomsoft Phone Breaker.

Если хотя бы одно из устройств пользователя работает на iOS 11:

  1. Запускаем Elcomsoft Phone Breaker.
  2. Выбираем Apple → Synced Data.
    Какие данные собирают Apple Health и Google Fit
  3. Выделяем Health.
    Какие данные собирают Apple Health и Google Fit
  4. Вводим логин, пароль и одноразовый код двухфакторной аутентификации.
    Какие данные собирают Apple Health и Google Fit
  5. Запрос пасскода пропускаем.
  6. Скачивается и расшифровывается та часть данных, которая хранится в первом (незашифрованном) контейнере.

Если все устройства пользователя работают под управлением iOS 12, то первого (незашифрованного) контейнера в облаке может не быть. В этом случае тебе потребуется ввести код блокировки iPhone, который уже участвует в синхронизации.

  1. Запускаем Elcomsoft Phone Breaker.
  2. Выбираем Apple → Synced Data.
  3. Выделяем Health.
  4. Вводим логин, пароль и одноразовый код двухфакторной аутентификации.
  5. Выбираем устройство, которое участвует в синхронизации Apple Health.
    Какие данные собирают Apple Health и Google Fit
  6. Вводим код блокировки или системный пароль от выбранного устройства.
    Какие данные собирают Apple Health и Google Fit
  7. Скачиваются и расшифровываются все данные как из первого (незашифрованного), так и из второго (зашифрованного) контейнера.

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

Теперь данные можно просмотреть и проанализировать.

Какие данные собирают Apple Health и Google Fit
Какие данные собирают Apple Health и Google Fit

Как это работает?

Извлечение из первого (незащищенного) контейнера отработано на предыдущих типах синхронизированных данных. Для этого требуется авторизоваться в iCloud, после чего:

  1. Получить зашифрованный список фрагментов (chunks).
  2. Запросить список зон.
  3. Затребовать синхронизацию зон.
  4. Затребовать ссылки на файлы.
  5. Скачать файлы.
Какие данные собирают Apple Health и Google Fit

Запрашиваем список зон:

  • Все зоны начинаются с PrimarySyncCircle.
  • Далее следует UUID, например 1AA8B4D0-9B73-4D88-A740-BFE04DD8A5AC.
  • Новые зоны создаются при каждом входе в учетную запись.
  • Зоны периодически сливаются.

Запрашиваем синхронизацию зон. Результат:

Скачиваем файлы. Все файлы доступны в виде списка фрагментов. Каждый фрагмент должен быть расшифрован. При запросе синхронизации возвращается ключ шифрования индивидуальных ключей фрагментов (wrapped_key), который должен быть расшифрован. При помощи расшифрованного wrapped_key мы можем расшифровать каждый из ключей шифрования для отдельных фрагментов. Наконец, уже эти ключи используются для расшифровки индивидуальных фрагментов файлов. Расшифрованные фрагменты объединяются в файлы, которые и сохраняются на диск.

Google Fit: аналог Apple Health для Android

В экосистеме Google нет штатного аналога системы «Здоровье» в том виде, как она реализована в iOS. Но есть Google Fit, приложение, которое можно установить на телефон из Play Store. Различий между Apple Health и Google Fit масса.

Количество и разнообразие собираемой и отображаемой информации

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

Обратная сторона медали — в приложении Apple Health отображаются сразу все доступные типы данных, даже если информации как таковой там нет. С непривычки такое обилие данных просто запутывает. Что такое Mindfullness? Почему для пользователей мужского пола отображается целый список непонятных слов в разделе Reproductive Health? (Так, для справки, у них просто отсутствуют те органы, состояние которых приложение Apple Health «измеряет» у пользователя.) Откуда берутся данные о том, какое количество кальция, меди или железа я употребил на обед, а если эти строки пустые, то зачем они выводятся на главный экран? У меня нет разумных ответов на эти вопросы (специалисты-диетологи наверняка знают, как и те, кто вынужден плотно следить за балансом микроэлементов). Вероятно, это своеобразная реклама в стиле «я еще и вышивать умею». Приложение Apple Health запредельно перегружено пустой, нерелевантной и просто «мусорной» информацией и приучает пользователей игнорировать целые огромные разделы.

Google Fit — противоположность решению от Apple. Приложение агрегирует минимум информации: количество шагов, пройденное расстояние, данные о том, сколько времени пользователь провел в движении (Move Points), и данные о том, сколько времени пользователь провел в активном движении (данные Heart Points). Интересный момент: различные сторонние приложения и датчики могут сообщать (а могут и не сообщать, жестких требований у Google нет) многочисленные дополнительные виды данных, и Google Fit сохранит их и синхронизирует с облаком. При этом пользователю такие данные не будут видны: в интерфейсе Google Fit просто нет соответствующих возможностей.

Google Fit и интеграция со сторонними приложениями

Так же как и Apple Health, Google Fit поддерживает интеграцию со сторонними приложениями. Но если в приложении Apple Health есть масса предопределенных категорий для самой разнообразной информации, то Google Fit способен отображать лишь ограниченное число типов данных. Более того, производителям датчиков и приложений, совместимых с Apple HealthKit, приходится отдавать в Apple Health всю или почти всю информацию, которую собирает устройство или приложение, — таково требование Apple. А вот у Google таких требований нет. В результате, к примеру, браслеты Samsung отдают информацию только приложению от Samsung, которое, в свою очередь, просто не передает данные в Google Fit. Подобным же образом ведут себя браслеты Garmin; что интересно, те же самые браслеты совершенно спокойно отдают данные в Apple Health, если у пользователя iPhone.

Из всего перечисленного есть несколько важных следствий.

  1. Одни и те же браслеты и сторонние приложения почти всегда отдают в Apple Health больше информации, чем они же передают в Google Fit.
  2. Apple Health стандартизирует данные; в приложение невозможно передать информацию, не описанную в HealthKit, но та, которую передали, может быть просмотрена и проанализирована пользователем.
  3. Google Fit принимает любые данные, даже те, о которых не знает ничего. Эти данные сохраняются и синхронизируются в учетной записи пользователя, но через само приложение Google Fit увидеть их невозможно.

Сравнение с Apple Health

В отличие от iPhone приложение Google Fit не использует встроенные в смартфон датчики — в частности, не используется встроенный во многие телефоны шагомер. Данные об активности пользователя аппроксимируются на основе данных Significant Movement (это то самое, что позволяло смартфонам с Android 6.0 «засыпать» в режим Doze), данных служб геолокации (чаще всего — даже не со спутников, а вычисленных при помощи мобильных вышек) и той информации, которую вводит о себе пользователь при настройке приложения (рост, вес и возраст).

Соответственно, если взять на прогулку iPhone и, к примеру, Google Pixel, то, проанализировав данные после возвращения, мы увидим совершенно разную информацию.

Вот наглядный пример. Из пятичасовой поездки (час двадцать на машине, прогулка, обед, короткая поездка на машине и возвращение домой) приложение Apple Health сделало следующие выводы.

Какие данные собирают Apple Health и Google Fit
Какие данные собирают Apple Health и Google Fit

Apple Health: пройдено 3287 шагов, 2,6 км дистанция, калорий 222 + 1342 = 1564, время физической активности — неизвестно, но дает девять минут «упражнений» и время «stand hours» — пять часов (это совсем не так, пять часов — это общее время, в течение которого на руке были часы Apple Watch; из них около двух с половиной часов заняла поездка в машине).

Данные доступны в формате XML; за час зарегистрировано несколько десятков записей приблизительно следующего содержания. Пример записи (в дальнейшем мы нормализуем записи в виде таблиц для упрощения восприятия информации):

Данные шагомера. Обрати внимание, что данные собираются из двух источников: iPhone и часы.

Данные сердцебиения:

Данные о пройденной дистанции:

Кроме того, доступны некоторые дополнительные типы данных, которые сообщают часы: Basal Energy Burned, Active Energy Burned, Flights Climbed, Apple Exercise Time.

В целом приложение Apple Health дает вполне объемную картинку активности пользователя, позволяющую, к примеру, уличить в измене неверного мужа (данные InstantaneousBeatsPerMinute) или раскрыть инсценированное ограбление (данные шагомера и HKQuantityTypeIdentifierFlightsClimbed):

А вот данные о точном местоположении пользователя с использованием встроенного в часы датчика GPS или самого iPhone сохраняются в том случае, если Apple Health посчитает, что пользователь не просто гуляет или бежит за автобусом, а занимается спортивной ходьбой или бегом. В противном случае такие данные просто отсутствуют. Если же часы или приложение посчитают, что ты тренируешься, то данные начнут собираться сплошным потоком с периодичностью в одну секунду:

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

А вот как выглядят данные с Google Fit.

Какие данные собирают Apple Health и Google Fit
Какие данные собирают Apple Health и Google Fit

Google Fit: пройдено 3748 шагов, 2,41 км дистанция, калорий 1377, время физической активности 50 мин. При этом карта на одном из скриншотов довольно странная: на самом деле участок был преодолен за рулем автомобиля совсем по другому маршруту.

Какие данные собирают Apple Health и Google Fit

Вот так выглядит участок агрегированных Google Fit данных за период с 14:30 по 15:30. В файле Daily Aggregations будет доступна информация, сгруппированная в 15-минутные интервалы. Ее не так много:

Start time, End time, Calories (kcal), Distance (m), Low latitude (deg), Low longitude (deg), High latitude (deg), High longitude (deg), Average speed (m/s), Max speed (m/s), Min speed (m/s), Step count, Average weight (kg), Max weight (kg), Min weight (kg), Inactive duration (ms), Walking duration (ms)
14:30:00.000+01:00, 14:45:00.000+01:00, 21.970262804673375, 81.47002220153809, 52.3498691, 14.5603561, 52.3498691, 14.5603561, 1.3560495376586914, 1.361162781715393, 1.3509362936019897, 189, , , , 839979, 60021
14:45:00.000+01:00, 15:00:00.000+01:00, 18.642008718815653, 11.182665824890137, 52.3457901, 14.5852002, 52.3457901, 14.5852002, , , , 269, , , , 890828, 9172
15:00:00.000+01:00, 15:15:00.000+01:00, 57.92037990980161, 234.93591034412384, 52.3452287, 14.5833228, 52.3454651, 14.584661, 0.6185604934920054, 0.7937963008880615, 0.4872109591960907, 442, , , , 290734, 609266
15:15:00.000+01:00, 15:30:00.000+01:00, 38.01473075330071, 282.5838632583618, 52.3453065, 14.5836133, 52.3458285, 14.5853516, 1.0011046724361665, 1.2798868417739868, 0.3900336027145386, 435, , , , 519858, 305148
15:30:00.000+01:00, 15:45:00.000+01:00, 18.041664123535156, , 52.3145496, 14.5510705, 52.3170428, 14.588051, 21.795568063657157, 32.099998474121094, 9.140000343322754, , , , , ,

Если у тебя нет часов или фитнес-трекера, то для сбора данных будет использоваться только сам телефон. В этом случае данные попадают в папку Low Accuracy. Сюда не входят маршруты, которые ты преодолел за рулем или в общественном транспорте, — только пешие прогулки или занятия спортом.

А вот что будет, если ты наденешь браслет или часы, которые могут сообщать данные в Google. Обрати внимание, данные хранятся в том же формате, но лежат при этом в отдельной папке.

Наконец, ты можешь просмотреть посуточную агрегацию в папке Daily Summaries:

Выводы? Apple Watch собирает больше данных, и они в целом более точные даже без использования внешних датчиков (часов) просто благодаря тому, что приложение от Apple не стесняется привлекать встроенный в iPhone шагомер. Данные Stand Hours рассчитываются некорректно даже при использовании часов.

Важный момент: Apple Health не возвращает карты перемещений, а данные местоположения сохраняются только в том случае, если приложение (или часы) посчитает, что ты занимаешься спортивной тренировкой.

Google Fit не использует, похоже, никакие датчики, кроме Significant Motion и определения местоположения (скорее всего, по вышкам, а не по спутникам). В результате Fit возвращает лишь очень приблизительную картину. Использование внешних датчиков (например, встроенных в спортивный трекер или часы, поддерживающие интеграцию с Google Fit) позволяет уточнить картину и добавить некоторые категории данных (пульс, давление), но настолько тесной интеграции, как между часами Apple Watch и системой iOS, здесь нет. При этом Google Fit собирает данные о твоем местоположении с использованием датчиков телефона независимо от того, занимаешься ты спортивной активностью, просто гуляешь или едешь за рулем или в транспорте.

Синхронизация и защита данных

Как синхронизируются и как защищены данные Apple Health, мы уже рассказали. Если на все твои устройства установлена iOS 12, то данные Apple Health будут надежно зашифрованы, а ключ шифрования перешифрован посредством кода блокировки экрана (или системным паролем, если речь идет о macOS). Для доступа к данным потребуется логин (Apple ID), пароль от Apple ID, одноразовый пароль двухфакторной аутентификации (если отключить 2FA, то данные «Здоровья» не будут синхронизированы) и код блокировки экрана одного из устройств, на котором уже включена синхронизация данных «Здоровья».

В описанной выше ситуации данные «Здоровья» не будут переданы правоохранительным органам по запросу (точнее, они могут быть переданы, но расшифровать полученную информацию будет невозможно). Не получить информацию и запросом через GDPR. Извлечь их можно либо путем синхронизации на свежее устройство под управлением iOS (из которого их будет довольно трудно извлечь: jailbreak для iOS 12 пока нет), либо с помощью специализированного софта (Elcomsoft Phone Breaker). С другой стороны, если есть устройство, на которое синхронизированы данные Health, то их можно просто экспортировать в ZIP.

Apple Health может «поделиться» данными с одним из многочисленных сторонних приложений, которые ты можешь установить или самостоятельно, или по рекомендации самого приложения Apple Health. Так, для каждой категории данных Apple Health рекомендует сразу несколько приложений, которые помогут собрать, обработать и проанализировать информацию. Если ты установишь одно или несколько таких приложений, а потом в настройках системы разрешишь им доступ к данным Health, то приложения смогут как поставлять информацию в Apple Health, так и получать данные, собранные Apple Health и другими подключенными сторонними приложениями. Что будут делать эти приложения с твоими данными, как они собираются их защищать и охранять, куда будут передавать и как хранить — известно только со слов разработчиков таких приложений. Утечки случались. Наверное, показательнее всего случай с приложением Strava, доступным для платформ iOS и Android. Компания использовала приложение Strava Running and Cycling GPS для сбора информации и на основе данных пользователей составила статистику и обнародовала местоположение военнослужащих военных баз в США, Сирии и Нигерии. В общем-то, это все, что тебе нужно знать об отношении сторонних компаний к персональным данным.

В то же время вся информация из приложения Apple Health четко структурирована; все поля определены и описаны, и если данные удалось расшифровать, то анализировать их достаточно просто.

В случае с Google дела обстоят и проще, и сложнее. Проще — потому что все данные Google Fit доступны в облаке Google Account без какого-либо дополнительного шифрования. Их можно извлечь при помощи собственного сервиса компании Google Takeout, можно получить по запросу от правоохранительных органов. Никакой дополнительной защиты или шифрования нет. А вот анализ данных из Google Fit может оказаться сложнее. Дело в том, что Google Fit способен агрегировать информацию из различных источников, включая сторонние приложения и внешние датчики. К сожалению, Google не описывает структуру данных и не предопределяет категории, в результате чего каждое стороннее приложение может сообщать данные хоть и в стандартном формате, но с собственными обозначениями категорий и типов данных. Анализировать информацию приходится вручную.

Сухой остаток

Принципиальное отличие между Apple Health и Google Fit не только в том, какие типы информации собирает каждое приложение, но и в том, как и от кого эти данные защищены.

Google Fit собирает данные о местоположении. Если не используются внешние датчики, то собирается только информация от Google Location Services на основе данных от сотовых вышек и GPS с периодичностью пять минут. Количество шагов аппроксимируется на основе пройденной дистанции и данных о телосложении пользователя, которые вводит сам пользователь. Если внешние датчики используются, то в приложение может поступать дополнительная информация.

Google Fit: синхронизация и защита данных. Все собранные данные синхронизируются в учетную запись пользователя. Дополнительной защиты нет. Шифрования нет. Данные доступны как самой компании Google, так и правоохранительным органам и любым желающим через сервис Google Takeout.

Apple Health собирает данные на основе датчиков телефона, включая встроенный шагомер и альтиметр. Данные о местоположении в обычном состоянии не регистрируются. Они регистрируются лишь в периоды, когда система или Apple Watch определяют «спортивный» характер активности пользователя; в таких случаях координаты сохраняются ежесекундно. Интересный момент: Apple Health также просит пользователя ввести данные о телосложении, но использует их противоположно тому, как это делает Google. Если Google Fit рассчитывает количество шагов пользователя по пройденной дистанции и росту, то Apple Health рассчитает пройденную дистанцию на основе роста пользователя и количества шагов, которые зарегистрировал датчик-шагомер (за исключением времени спортивных тренировок). При наличии внешних датчиков (а ими могут выступать как часы Apple Watch, так и множество сторонних устройств и приложений) собирается заметно больше данных.

Начиная с iOS 11 Apple синхронизирует данные Health в облако. В iOS 11 данные «Здоровья» не имели какой-то особой защиты; их можно было извлечь и расшифровать точно так же, как и остальные синхронизированные данные (фотографии, контакты, заметки, календари и прочее). Соответственно, если данные в облако поступают с устройства, работающего под управлением iOS 11, то доступны они будут как самой компании Apple, так и правоохранительным органам и всем желающим воспользоваться сервисом извлечения данных через запрос GDPR.

В iOS 12 используется принципиально другой подход к защите данных «Здоровья». Теперь они защищены ключом, который хранится в облачной связке ключей iCloud Keychain. Этот ключ может быть получен в том и только в том случае, если известны логин и пароль от Apple ID, получен одноразовый код двухфакторной аутентификации (а сам режим двухфакторной аутентификации обязательно включен); наконец, расшифровать ключ получится, только если известен код блокировки устройства, которое уже участвует в синхронизации Apple Health. Соответственно, данные, полученные с устройств под управлением iOS 12, зашифрованы и НЕ ДОСТУПНЫ ни компании Apple, ни правоохранительным органам, ни тем, кто хочет получить информацию через GDPR. Извлечь их можно либо посредством синхронизации с новым устройством Apple (с iOS 12) и последующего экспорта данных Apple Health, либо, если лишнего устройства под управлением iOS 12 под рукой нет, при помощи специализированного приложения (Elcomsoft Phone Breaker).

Сторонние приложения, которым предоставляется доступ к данным Google Fit и Apple Health, мы выделим в самостоятельную группу. Количество и разнообразие таких приложений не позволяет проанализировать все или даже самые популярные из них. Тем не менее уже были зарегистрированы утечки данных из нескольких известных приложений. Разрешая доступ к данным «Здоровья» стороннему приложению, нужно четко понимать, что с этого момента ты сам отдал свои данные «на сторону». И если механизмы защиты данных «Здоровья» в iOS известны и хорошо изучены, то политики и механизмы защиты твоих данных у сторонних компаний будут располагаться в диапазоне от «намного хуже» до «полностью отсутствуют».

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *