Управляя ключами, сертификатами и паролями
Цепочка для ключей обеспечивает хранение для паролей, ключей шифрования, сертификатов и других маленьких частей данных. После доступа запросов приложения к цепочке для ключей это может сохранить и получить уязвимые данные, уверенные, что ненадежные приложения не могут получить доступ к тем данным без явного действия пользователем.
Когда приложение должно получить доступ к цепочке для ключей, в OS X пользователю предлагают разрешение; если цепочка для ключей заблокирована, пользователя просят относительно пароля разблокировать ее.
В iOS приложение может получить доступ только к своим собственным элементам в цепочке для ключей — пользователя никогда не просят относительно разрешения или относительно пароля.
Существует два рекомендуемых APIs для доступа к цепочке для ключей:
Сертификат, ключ и доверительные службы
Сертификатом, Ключом и Trust Services является API C для управления сертификатами, открытыми и закрытыми ключами, симметричными ключами и доверительными политиками в iOS и OS X. Можно использовать эти службы в приложении к:
Создайте сертификаты и асимметричные ключи
Добавьте сертификаты и ключи к цепочкам для ключей, удалите их из цепочек для ключей и используйте ключи, чтобы зашифровать и дешифровать данные
Получите информацию о сертификате, таком как закрытый ключ, связанный с ним, владелец, и т.д.
Преобразуйте сертификаты и от переносимых представлений
Создайте и управляйте доверительными политиками и оцените определенный сертификат с помощью указанного набора доверительных политик
Добавьте сертификаты привязки
В OS X функции также доступны для получения сертификатов привязки и указанных пользователями аппарата настроек для доверительных политик для данного сертификата.
В iOS для дополнительных функций предоставлены:
Используйте закрытый ключ для генерации цифровой подписи для блока данных
Используйте открытый ключ для заверения подписи
Используйте открытый ключ для шифрования блока данных
Используйте закрытый ключ для дешифрования блока данных
Сертификат, Ключ и Trust Services воздействуют на сертификаты, соответствующие стандарту ITU X.509, использует цепочку для ключей для хранения и извлечения сертификатов и ключей, и использует доверительные политики, предоставленные Apple.
Поскольку сертификаты используются SSL и TLS для аутентификации, Безопасный Транспортный API включает множество функций для управления использованием сертификатов и корневых сертификатов в безопасном соединении.
Для отображения содержания сертификата в пользовательском интерфейсе OS X можно использовать SFCertificatePanel
и SFCertificateView
классы в Objective C Безопасности API. Кроме того, SFCertificateTrustPanel
класс выводит на экран доверительные решения и позволяет пользователю отредактировать доверительные решения.
Keychain Services
В OS X и iOS, Keychain Services позволяет Вам создавать цепочки для ключей, добавлять, удалять и редактировать элементы цепочки для ключей, и — в OS X только — управляют наборами цепочек для ключей. В большинстве случаев осведомленное о цепочке для ключей приложение не должно делать никакого управления цепочкой для ключей и только должно вызвать несколько функций, чтобы сохранить или получить пароли.
По умолчанию резервные копии данных iOS сохранены в открытом тексте, за исключением паролей и других секретов на цепочке для ключей, остающихся зашифрованными в резервном копировании. Поэтому важно использовать цепочку для ключей для хранения паролей и других данных (таких как cookie), которые используются для доступа к безопасным веб-сайтам. Иначе, если посторонний человек получает доступ к данным резервного копирования, эти данные могли бы поставиться под угрозу.
Чтобы начать использовать Keychain Services, посмотрите Ссылку Keychain Services Programming Guide and Keychain Services.
В OS X приложение Доступа Цепочки для ключей обеспечивает пользовательский интерфейс для цепочки для ключей. Посмотрите Доступ Цепочки для ключей в Обзоре безопасности для получения дополнительной информации об этом приложении.
Узнавать больше
Для получения дополнительной информации об использовании Keychain Services, чтобы сохранить и получить секреты и сертификаты, считайте Ссылку Keychain Services Programming Guide and Keychain Services.
Для получения дополнительной информации о Безопасном Транспорте, считайте Безопасный Транспорт.
Для получения дополнительной информации о пользовательском интерфейсе сертификата API, считайте Objective C Безопасности API в Обзоре безопасности.