Бум носимых устройств, разнообразных датчиков, браслетов, часов и трекеров продолжается более пяти лет. Индустрия предлагает широкое разнообразие устройств, которые могут собирать информацию о состоянии твоего организма. Комбинация данных с такого устройства и информации о твоем местоположении позволяет восстановить полную картину твоей деятельности буквально по минутам. Такая информация не должна попасть в руки злоумышленников или нечистоплотных рекламодателей; эта же информация бесценна для расследования преступлений, поскольку позволяет восстановить картину происшествия с точной привязкой ко времени. Сегодня мы подробно рассмотрим, какие данные о тебе собирают стандартные приложения Apple Health (iOS) и Google Fit (Android), как и где эти данные сохраняются, куда синхронизируются, как защищены и как их можно извлечь.
Приложение Apple Health появилось в сентябре 2014 года одновременно с выходом iOS 8 и с тех пор присутствует на всех устройствах iPhone.
Apple Health работает в фоновом режиме независимо от того, желаешь ты воспользоваться его возможностями или нет. Приложение использует данные от встроенных в iPhone датчиков для составления информации об активности пользователя.
В экосистеме Apple есть и устройство-компаньон для сбора дополнительных данных, которые не может предоставить iPhone. Это Apple Watch, которые в разных модификациях позволяют измерять пульс, определять степень активности пользователя, детектировать падения и снимать электрокардиограмму.
Пользователям, запустившим приложение Apple Health, доступны четыре основные категории данных:
Откуда поступают данные, на основе которых приложение отображает всю эту информацию? Все данные собираются от устройств и приложений, работающих по протоколу HealthKit. Сюда входит как сам iPhone, так и часы Apple Watch, а также различные сторонние устройства и приложения — браслеты, часы, трекеры, разнообразные спортивные и медицинские датчики и приборы. Для работы сторонних приложений необходимо предоставить им доступ к информации Apple Health, что само по себе несет определенные риски.
При этом в самом приложении Apple Health для каждой категории данных официально рекомендуется не одно, а сразу несколько приложений — начиная с печально известного Strava.
Кроме того, доступны следующие расширенные категории данных:
Очевидно, что далеко не все данные (и даже не значительная их часть) могут быть определены с помощью бытовых устройств, даже если речь идет о последнем поколении Apple Watch. Откуда же берутся все эти данные? Здесь нужно вспомнить о том, что в марте 2018 года Apple сумела договориться с рядом сетевых клиник в США, Великобритании и Австралии о стандартизации электронного формата медицинской информации и о передаче этих данных. Речь идет об архитектуре CDA — Clinical Document Architecture, которая стала стандартом де-факто для обмена медицинскими данными.
Стандарт CDA основан на XML, а документы в этом формате могут быть импортированы и обработаны в приложении Apple Health (категория Health Records). Актуальность CDA для России в настоящее время невысока: получить соответствующий файл можно только из одного из поддерживающих архитектуру CDA медицинских учреждений. Для импорта данных в Apple Health его достаточно открыть в приложении, после чего информация будет занесена в базу данных. Данные автоматически синхронизируются с другими устройствами Apple через облако iCloud.
Медицинские карты, результаты лабораторных анализов, данные наблюдений, рецепты, прививки, аллергические реакции и другие виды информации, входящие в Health Records, составляют медицинскую тайну, которая в большинстве стран защищается законодательно. Тем удивительнее стал подход к защите этих данных, который выбрала Apple в iOS 11. В этой версии операционной системы данные Health Records могли состоять только из документов CDA; эти данные синхронизировались с iCloud точно так же, как синхронизируются фотографии или заметки. Иными словами, никакой дополнительной защиты предусмотрено не было, и данные Health Records можно было извлечь при помощи Apple ID и пароля, получить по запросу у Apple или посредством GDPR, наконец — украсть из облака.
Для iOS 11 верны следующие утверждения:
В iOS 12 эту проблему исправили. В новой версии ОС данные Apple Health в целом и Health Records в частности перенесли в отдельный контейнер, который получил дополнительный уровень защиты. Данные в новом контейнере шифруются ключом из связки ключей (Keychain), который, в свою очередь, зашифрован ключом шифрования связки ключей. Ключ шифрования связки ключей перешифрован ключом, который вычисляется на основе пасскода (iOS) или системного пароля (macOS) пользователя. Такой механизм защиты достаточно сложен и безопасен, а для того, чтобы извлечь данные «Здоровья» из облака iCloud, потребуются абсолютно все данные из следующего списка:
Прямые следствия такого способа защиты данных:
На самом iPhone данные хранятся в каталоге /private/var/mobile/Library/Health/
:
В ней находятся две связанные базы данных в формате SQLite: healthdb.sqlite
и healthdb_secure.sqlite
. В этих базах данных содержится вся информация, за исключением точных координат тренировок пользователя (тех самых координат, которые часы Apple Watch начинают собирать сплошным потоком с периодичностью в одну секунду, если определяют момент начала тренировки). Данные о местоположении сохраняются в зашифрованную базу данных healthdb_secure.hfd
.
В базе данных healthdb.sqlite
содержится информация об источниках данных. В базе healthdb_secure.sqlite
хранится основная информация с частыми отсылками к первой базе.
Начиная с 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.
Материалы из последних выпусков можно покупать отдельно только через два месяца после публикации. Чтобы продолжить чтение, необходимо купить подписку.
Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке
1 год7190 р. Экономия 1400 рублей! |
1 месяц720 р. 25-30 статей в месяц |
Уже подписан?
Читайте также
Последние новости