В watchOS 2 больше нет общих цепочек ключей.
Если я хочу отправить значение keychain из приложения iOS в приложение Watch, безопасно ли его отправлять через WCSession updateApplicationContext?
В watchOS 2 больше нет общих цепочек ключей.
Если я хочу отправить значение keychain из приложения iOS в приложение Watch, безопасно ли его отправлять через WCSession updateApplicationContext?
Ответ от Apple:
Содержимое приложения зашифровывается во время транзита. В противном случае контент хранится в контейнере приложений, который обеспечивает неотъемлемую безопасность контейнеров.
Вот ссылка на Белый документ безопасности. https://www.apple.com/business/docs/iOS_Security_Guide.pdf
Для транзитной части вы должны взглянуть на "Apple Watch", в разделе "Безопасность приложений". Для соответствующей части контейнера безопасности, вы должны взглянуть на раздел "Защита данных файла" в разделе "Шифрование и защита данных".
Да.
Если ваше значение keychain не изменяется и вы повторно обновляете контекст вашего приложения, вам может потребоваться отправить одноразовое значение только один раз (чтобы часы добавлялись к его цепочке ключей) вместо повторной отправки значения keychain.
Инженер Apple обсуждает использование Watch Connectivity для отправки элементов связки ключей на форуме разработчиков:
Если у вас есть данные на телефоне, к которому вы хотите получить доступ, в вашем приложении можно использовать WatchConnectivity для передачи определенных данных и объектов привязки ключей, которые ему нужны. Брелок на Apple Watch содержит отличный набор записей из брелка на парном iPhone, поэтому, если вам нужно что-то в обоих местах, вы можете либо создать его один раз для каждого устройства, либо использовать WatchConnectivity для его передачи между ними.
Update:
В watchOS 2 Watch Watch является механизмом передачи данных между парным телефоном и его часами. Связь между устройствами зашифровывается в соответствии с iOS Security Guide.
Что касается того, может ли словарь быть доступным во время работы в памяти или как он может сохраняться до того, как ваш внутренний абонент получит его, я думаю, вы должны полагаться на Apple для устранения любых возможных уязвимостей.
Вероятно, разумно сказать, что информация не находится в таком безопасном месте, как брелок, пока ваше расширение не проснется, не получит обновление, а затем сохранит значение в цепочке ключей.
Согласно руководству Apple Security: -
Защита данных Keychain Многие приложения должны обрабатывать пароли и другие короткие, но чувствительные биты данных, такие как ключи и токены входа. iOS keychain обеспечивает безопасный способ хранения этих элементов. Брелок для ключей реализуется как база данных SQLite, хранящаяся в файловой системе. Там это только одна база данных; демон securityd определяет, какая брелка к которым могут обращаться каждый процесс или приложение. API-интерфейсы доступа к ключам приведут к вызовы демону, который запрашивает приложения "keychain-access-groups", "идентификатор приложения-идентификатора" и "приложения". Скорее чем ограничение доступа к одному процессу, группы доступа допускают связывание ключей элементы, которые будут использоваться между приложениями. Предметы связки ключей могут быть разделены между приложениями от одного и того же разработчика. Этому управляют, требуя сторонним приложениям использовать группы доступа с выделенным им префиксом через Программу разработчиков iOS через группы приложений. Префикс требование и уникальность группы приложений выполняются посредством кода подписывание, профили Provisioning Profiles и программу разработчика iOS.
Данные Keychain защищены с использованием структуры класса, аналогичной структуре используется в файле Data Protection. Эти классы эквивалентны поведению для хранения классов защиты данных, но используйте разные ключи и являетесь частью API, которые называются по-разному.
Apple Watchон использует функции безопасности и технологию, созданные для iOS, для защиты данных на устройстве, а также от сообщений с его парным iPhone и Интернетом. Это включает в себя технологии таких как защита данных и контроль доступа к цепочке. Пользователи код доступа также запутан с UID устройства для создания шифрования ключи. Сопряжение Apple Watch с iPhone обеспечивается с помощью внеполосного (OOB) для обмена открытыми ключами, за которым следует ссылка BTLE общий секрет. Apple Watch отображает анимированный шаблон, который захваченный камерой на iPhone. Шаблон содержит закодированный секрет, который используется для внеполосного спаривания BTLE 4.1. Стандарт BTLE В случае необходимости, в качестве альтернативного метода сопряжения используется ввод пароля. однажды установлен сеанс BTLE, ключи обмена Apple Watch и iPhone используя процесс, адаптированный из IDS, как описано в разделе iMessage настоящей статьи. После обмена ключами сеанс Bluetooth ключ отбрасывается, и все сообщения между Apple Watch и iPhone зашифрован с использованием IDS, с зашифрованным BTLE и Wi-Fi ссылки, обеспечивающие дополнительный уровень шифрования. Используется ключевой прокат с 15-минутными интервалами, чтобы ограничить окно экспозиции, если трафик скомпрометированы. Для поддержки приложений, которым нужны потоковые данные, шифрование с использованием методов, описанных в разделе FaceTime этого используя услугу IDS, предоставляемую сопряженным iPhone. яблоко Часы реализуют аппаратное шифрование и защиту на основе классов файлов и элементов связки ключей, как описано в разделе Защита данных раздел этой статьи. Клавиатурные сумки с контролируемым доступом для элементов связки ключей также используются. Ключи, используемые для связи между часами и iPhone также защищен с использованием защиты на основе классов. Когда Apple Watch не входит в диапазон Bluetooth, вместо этого можно использовать Wi-Fi. Apple Watch не присоединятся к сетям Wi-Fi, если только учетные данные для этого не выполняются. присутствовать на парном iPhone, который предоставляет список известных сети на часы автоматически. Apple Watch может быть вручную заблокирован, удерживая боковую кнопку. Кроме того, движение эвристика используется для автоматической блокировки устройства вскоре после снятия с запястья. Когда заблокировано, Apple Pay нельзя использовать. Если автоматическая блокировка, обеспечиваемая обнаружением запястья, выключен в настройках, Apple Pay отключен. Обнаружение запястья отключен с помощью приложения Apple Watch на iPhone. Эта настройка также может быть задействован с использованием управления мобильными устройствами. Сопряженный iPhone также может разблокируйте часы, если часы будут носить. Это осуществляется путем установления соединения, аутентифицированного ключами установленных при спаривании. iPhone отправляет ключ, который использует часы чтобы разблокировать его ключи защиты данных. Код доступа к часам неизвестен iPhone и не передается. Эта функция может быть отключена с помощью Приложение Apple Watch на iPhone. Apple Watch может быть сопряжен только с одним iPhone за раз. Сопряжение с новым iPhone автоматически стирает все контента и данных от Apple Watch. Включение поиска моего телефона на спаренный iPhone также позволяет блокировать активацию на Apple Watch. активация Блокировка делает его более трудным для использования или продажи Apple Watch, который были потеряны или украдены. Блокировка активации требует от пользователя Apple ID и пароль для несанкционированного доступа, стирания или повторного включения Apple Watch.
Услуги Keychain Простота использования https://developer.apple.com/library/ios/documentation/Security/Conceptual/keychainServConcepts/02concepts/concepts.html