Обзор CDSA
CDSA является архитектурой безопасности С открытым исходным кодом, принятой как технический стандарт Open Group. Apple разработал свою собственную реализацию С открытым исходным кодом CDSA, доступного как часть Дарвина на сайте Apple С открытым исходным кодом. Ядро CDSA является CSSM (менеджер Common Security Services), ряд модулей Открытого исходного кода, реализующих общедоступный прикладной программный интерфейс, названный API CSSM. CSSM обеспечивает APIs для криптографических служб (таких как создание криптографических ключей, шифрования и дешифрования данных), службы сертификата (такие как создание цифровых сертификатов, чтение и оценка цифровых сертификатов), безопасное хранение данных и другие службы безопасности (см. Apple Плагины CDSA для большего количества полного списка).
CSSM также определяет интерфейс для плагинов, реализующих службы безопасности для определенной операционной системы и аппаратной среды. Реализация на данной платформе может дополнительно предоставить промежуточный уровень, обеспечивающий определенный для операционной системы API для приложений. Присутствует ли такой уровень или нет, приложения могут вызвать API CSSM непосредственно.
OS X реализует почти все стандартные опции CSSM плюс ряд промежуточных служб безопасности для обеспечения стандартного OS X интерфейса для программистов приложения. Кроме того, для улучшения безопасности наиболее секретных операций реализация OS X выполняет демона Сервера безопасности как отдельный процесс. Демон Сервера безопасности запускает другой процесс, Агента безопасности, служащего пользовательским интерфейсом для Сервера безопасности.
Рисунок a-1 иллюстрирует реализацию OS X CDSA. Стандарт CDSA определяет архитектуру с четырьмя уровнями с верхним слоем, являющимся приложениями, использующими средства защиты CDSA. Рисунок a-1 показывает первые три уровня: плагины CDSA, CSSM и безопасность OS X APIs, составляющий промежуточный уровень, упомянутый в спецификации. API OS X Authorization Services, демон Сервера безопасности и Агент безопасности, показанный в числе, технически за пределами CDSA, но они показаны здесь для полноты, потому что они составляют неотъемлемую часть архитектуры безопасности OS X.
Контексты защиты (см. рисунок a-1) являются структурами данных, используемыми CSSM для помощи приложениям в управлении многими параметрами, используемыми в операциях безопасности. Менеджеры CSSM реализуют стандартный CSSM API. (Пятый менеджер, определенный в стандарте CDSA, названном менеджером Authorization Computation Services, не реализован в OS X. Вместо того, чтобы использовать API CSSM, OS X Authorization Services вызывает демона Сервера безопасности непосредственно.)
Плагины CDSA, показанные на рисунке a-1, являются предоставленными как часть OS X. Спецификация CDSA позволяет любое число плагинов. Пока плагин соблюдает правила для взаимодействия через интерфейс с менеджерами CSSM, это может реализовать любую часть набора функций CDSA, включая комбинацию функций, связанных с двумя или больше из менеджеров CSSM. (См. Модуль AppleCSP/DL для примера многофункционального плагина CDSA.) Спецификация CDSA даже допускает расширение CDSA добавлением избирательных менеджеров по модулю и связанных плагинов. Плагины могут вызвать друг друга, а также быть вызванным менеджерами CSSM — фактически, им свойственно сделать так.
Для введения в CDSA см. CDSA Объясненный, второй выпуск от Open Group. Техническим стандартом CDSA/CSSM является Коллективная безопасность: CDSA и CSSM, версия 2 (с исправлениями), также от Open Group.
Пока Вы используете безопасность OS X APIs, Вы не должны волновать по поводу подробных данных OS X реализацию CDSA. Однако, потому что вызов к API CSSM позволяет Вам указывать сменный модуль, к которому Вы хотите направить свой запрос, если Вы хотите вызвать CSSM непосредственно, у Вас должно быть некоторое понимание OS X плагины CDSA.
Apple плагины CDSA
Реализация OS X CDSA включает пять плагинов CDSA (см. рисунок a-1):
Провайдер криптографических служб AppleCSP
Библиотека хранения данных AppleFileDL
Поставщик услуг по хранению данных зашифрованных данных AppleCSP/DL
Библиотека сертификата AppleX509CL
AppleX509TP доверяют библиотеке политики
Этот раздел кратко описывает цель и функцию каждого из этих модулей. (См. глоссарий для объяснений любых незнакомых условий.)
Модуль AppleCSP
Вся безопасная связь и протоколы аутентификации основываются на ключах и шифровании. Провайдер криптографических служб Apple (AppleCSP) является основным сменным модулем, используемым несколькими из служб безопасности для создания криптографических ключей и шифрования или дешифрования данных. Цифровые подписи также используют модуль AppleCSP для создания дайджестов сообщения, используемых, чтобы создать и заверить подпись. CSP может использовать любое число алгоритмов.
Модуль AppleFileDL
Библиотека хранения данных (DL), модуль обеспечивает безопасное хранение — т.е. хранение зашифрованных данных по диску или другому носителю, сохраняющемуся, когда выключено питание. Стандарт CDSA позволяет модулю DL использовать любой вид базы данных или другого хранилища данных. Сохраняя вещи простыми, модуль AppleFileDL хранит свои данные в файлах в файловой системе OS X. Это предоставляет услуги низшего уровня, используемые плагином AppleCSP/DL для хранения секретов на цепочке для ключей, база данных Apple раньше хранила зашифрованные пароли, закрытые ключи и другие секреты.
Модуль AppleCSP/DL
Плагин AppleCSP/DL является многофункциональным модулем, комбинирующим функции криптографической службы и хранения данных для реализации цепочки для ключей Apple, используемой для хранения паролей, ключей и других секретов. Модуль AppleCSP/DL вызывает модуль AppleFileDL для выполнения файлового ввода-вывода и демона Сервера безопасности, чтобы зашифровать и дешифровать секреты.
Модуль AppleX509CL
Модуль библиотеки сертификата (CL) выполняет операции на цифровых сертификатах. Цифровые сертификаты используются, чтобы установить или подтвердить идентификационные данные объекта, такого как веб-сайт или отправитель снабженного цифровой подписью сообщения. Они делают так при помощи цифровой подписи, чтобы гарантировать, что только идентифицированный объект, возможно, обеспечил сертификат (см. Цифровые сертификаты). Модуль CL выполняет такие функции как создание новых сертификатов (в памяти), создание списков аннулированных сертификатов (которые указывают, какие сертификаты больше не действительны), заверяя цифровую подпись, содержавшуюся в сертификате, и извлекая информацию из сертификата. Модули CL не хранят персистентные копии сертификатов. Скорее модуль DL используется с этой целью.
Плагин AppleX509CL выполняет эти функции для сертификатов, соответствующих стандарту X.509, провозглашенному Международным союзом электросвязи (ITU). Стандарт ITU X.509 широко используется в Интернете и всюду по отрасли информационных технологий для разработки защищенных приложений на основе инфраструктуры открытых ключей (набор аппаратных средств, программного обеспечения, людей, политик, и процедуры должны были создать и управлять цифровыми сертификатами, основывающимися на шифровании с открытым ключом). Посмотрите Асимметричные Ключи для получения дополнительной информации об открытых ключах.
Модуль AppleX509TP
Цифровому сертификату связали уровень доверия с ним, на основе атрибутов сертификата. Доверительная политика является рядом правил, которые указывают меры, которые могут быть приняты данные определенный уровень доверия. Другими словами, цель установить уровень доверия для сертификата состоит в том, чтобы ответить на вопрос, “Я должен доверять этому сертификату для этого действия?”
Эмитент цифрового сертификата добавляет цифровую подпись к сертификату, чтобы гарантировать, что сертификат не был изменен и проверять идентификационные данные эмитента. В целом цифровая подпись заверена с помощью другого сертификата. Следовательно, каждый сертификат обычно является частью цепочки сертификатов, заканчивающейся корневым сертификатом, который может быть проверен без оборота к другому сертификату (см. Цифровые сертификаты).
Плагин доверительной политики (TP) выполняет две основных функции: это собирается, цепочка сертификатов должна была проверить данный сертификат, и это определяет уровень доверия, который может получить сертификат.
Модуль AppleX509TP выполняет эти функции на сертификатах X.509, с помощью доверительных политик, установленных Apple.
CSSM Services
Несмотря на то, что безопасность OS X, APIs обеспечивает все возможности, в которых Вы, вероятно, будете, когда-либо нуждаться для разработки защищенных приложений, почти весь стандартный CSSM APIs, также доступна для Вашего использования. Этот раздел кратко описывает функции, предоставленные каждой службой CSSM. Для получения дополнительной информации посмотрите Коллективную безопасность: CDSA и CSSM, версия 2 (с исправлениями), от Open Group.
Криптографические службы
Криптографические службы в CSSM обеспечивают функции для выполнения следующих задач:
Шифрование и дешифрование текста и данных
Создание и заверение цифровых подписей
Создание криптографического хеша (используемый для дайджестов сообщения и других целей)
Генерация симметричных и асимметричных пар криптографических ключей
Генерация псевдослучайных чисел
Управление доступом к CSP для создания ключей
Для наблюдения точно, какие протоколы системы защиты и алгоритмы поддерживаются реализацией Apple CSP см. документацию, предоставленную код в системе защиты С открытым исходным кодом, который можно загрузить на сайте Apple С открытым исходным кодом и Информации о версии Безопасности в последних Инструментах XCode от Apple.
Data Store Services
CSSM Data Store Services обеспечивает API для того, чтобы сохранить и получить данные, которые независимы от типа используемого хранения. Если существует больше чем один установленный модуль DL, вызывающая сторона может запросить Data Store Services для изучения возможностей каждого и выбора который использовать в определенном вызове. Реализация Apple Data Store Services поддерживает любой стандарт CDSA DL сменный модуль. Библиотеку Хранения данных AppleFileDL и Модуль хранения Зашифрованных данных AppleCSP/DL обе функции реализации вызывает Data Store Services.
Certificate Services
Certificate Services, как указано CDSA выполняет следующие функции:
Заверяет подписи на сертификатах и списках аннулированных сертификатов
Создает сертификаты и списки аннулированных сертификатов
Сертификаты знаков и списки аннулированных сертификатов
Значения выдержек полей из сертификатов и списков аннулированных сертификатов
Списки аннулированных сертификатов поисков для указанных сертификатов
Реализация Apple Certificate Services поддерживает все API-функции CL в спецификации CDSA/CSSM.
Trust Policy Services
Реализация OS X CSSM Trust Policy Services обеспечивает функции, чтобы проверить сертификаты, определить то, что приписывает, они содержат и поэтому уровень доверия, который им можно дать, и создать цепочку связанных сертификатов. Это не реализует другие доверительные функции политики в стандарте CSSM. Документация для функций политики доверия CSSM, поддерживаемых реализацией TP Apple, может быть найдена с кодом в системе защиты С открытым исходным кодом, который можно загрузить на сайте Apple С открытым исходным кодом.
Authorization Computation Services
Реализация Apple CSSM не включает Authorization Computation Services, определенную в стандарт CDSA. Вместо этого вызовы API Authorization Services демон Сервера безопасности непосредственно (см. рисунок a-1).