Безопасность Handoff
Apple обеспечивает безопасную передачу данных как с одного устройства на другое, так и между нативным приложением и сайтом, даже если объем передаваемых данных велик.
Безопасность работы Handoff
Если устройства iOS, iPadOS и macOS находятся близко друг к другу, то пользователь может автоматически передавать незавершенные задачи с одного устройства на другое с помощью Handoff. Handoff позволяет пользователю переключаться между устройствами и мгновенно продолжать свою работу.
Если пользователь входит в iCloud на втором устройстве с поддержкой Handoff, два устройства создают пару через отдельное соединение Bluetooth Low Energy (BLE) 4.2 при помощи службы APNs. Отдельные сообщения шифруются во многом так же, как сообщения в iMessage. После объединения в пару каждое из устройств генерирует симметричный 256-битный ключ AES, который сохраняется в связке ключей устройства. Этот ключ может использоваться для шифрования и аутентификации оповещений BLE, которые сообщают о текущем действии устройства другим объединенным в пару устройствам iCloud, используя AES256 в режиме GCM с защитой от повторной передачи перехваченных сообщений.
Когда устройство в первый раз получает оповещение от нового ключа, оно устанавливает соединение стандарта BLE с вызывающим устройством и обменивается с ним ключами шифрования оповещений. Для защиты этого соединения используется шифрование BLE 4.2, а также шифрование отдельных сообщений, которое похоже на шифрование сообщений iMessage. В некоторых случаях эти сообщения передаются не через BLE, а через APNs. Для защиты и передачи информации о выполняемых пользователем действиях используются такие же методы, как в iMessage.
Переключение между нативными приложениями и сайтами с помощью Handoff
Благодаря Handoff нативные приложения iOS, iPadOS и macOS могут возобновлять активность пользователя на веб-странице в доменах, которые на законных основаниях контролируются разработчиком приложения. Кроме того, нативные приложения могут возобновлять действия пользователя в веб-браузере.
Приложение должно продемонстрировать наличие законного контроля над веб‑доменами, которые оно хочет использовать для возобновления. Это способствует тому, чтобы нативные приложения не могли запросить возобновление сайтов, которые не контролируются разработчиком. Для доказательства контроля над доменом сайта используется такой же механизм, как для общего доступа к учетным данным сайтов. Подробнее см. Доступ приложений к сохраненным паролям. Прежде чем приложению будет разрешено принять действия пользователя через Handoff, система должна подтвердить, что приложение контролирует доменное имя.
Источником передачи веб-страницы может быть любой браузер с интерфейсами Handoff API. Когда пользователь просматривает веб-страницу, система передает ее доменное имя с помощью зашифрованных байтов оповещения Handoff. Расшифровать байты оповещения могут только другие устройства пользователя.
Система принимающего устройства распознает, что установленное нативное приложение принимает информацию Handoff от переданного доменного имени, и отображает значок этой нативного приложения в меню Handoff. При запуске нативное приложение получает полный URL-адрес и заголовок веб-страницы. Никакая другая информация из браузера не передается в нативное приложение.
При передаче информации в обратном направлении нативное приложение может указать резервный URL-адрес на тот случай, если на принимающем устройстве не установлено то же нативное приложение. В этом случае вместо приложения в меню Handoff отображается браузер по умолчанию (если этот браузер поддерживает интерфейсы Handoff API). При вызове Handoff отображается этот браузер и в него передается резервный URL-адрес, предоставленный исходным приложением. Резервный URL-адрес не обязательно должен принадлежать доменным именам, которые контролируются разработчиком нативного приложения.
Передача больших объемов данных с помощью Handoff
Помимо основной функции Handoff некоторые приложения могут использовать API, которые поддерживают отправку больших объемов данных через технологию прямого соединения Wi-Fi, разработанную компанией Apple (во многом похожую на AirDrop). Например, приложение «Почта» использует эти интерфейсы API для передачи черновиков писем, которые могут включать большие вложения.
Когда приложение использует эти интерфейсы API, между двумя устройствами начинается обмен данными, как при использовании Handoff. Однако после получения первоначальной полезной нагрузки по Bluetooth Low Energy (BLE) принимающее устройство устанавливает новое подключение по сети Wi-Fi. Это подключение шифруется (с помощью TLS) и получает объект доверия из удостоверения, отправленного через Связку ключей iCloud. Удостоверение в сертификатах сверяется с удостоверением пользователя. Вся дальнейшая информация полезной нагрузки пересылается по этому зашифрованному подключению, пока передача не будет завершена.
Универсальный буфер обмена
Универсальный буфер обмена задействует функцию Handoff для безопасной передачи содержимого буфера обмена между различными устройствами пользователя, позволяя скопировать контент на одном устройстве и вставить его на другом. Для защиты контента используются те же методы, как и для других данных Handoff. По умолчанию, если разработчик приложения не выключил общий доступ, контент передается в универсальный буфер обмена.
Приложения имеют доступ к данным в буфере обмена независимо от того, вставил ли пользователь эти данные в приложении. При наличии универсального буфера обмена такой доступ получают также приложения, запущенные на других устройствах пользователя (в соответствии с регистрацией iCloud).