Управляя ключами, сертификатами и паролями

Цепочка для ключей обеспечивает хранение для паролей, ключей шифрования, сертификатов и других маленьких частей данных. После доступа запросов приложения к цепочке для ключей это может сохранить и получить уязвимые данные, уверенные, что ненадежные приложения не могут получить доступ к тем данным без явного действия пользователем.

Когда приложение должно получить доступ к цепочке для ключей, в 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 в Обзоре безопасности.