Политики доверия AppleX509TP
Опции политики CRL
Опции политики списка аннулированных сертификатов определяются в следующей структуре:
typedef uint32 CSSM_APPLE_TP_CRL_OPT_FLAGS;
enum {
// require CRL verification for each cert; default is "try"
CSSM_TP_ACTION_REQUIRE_CRL_PER_CERT = 0x00000001,
// enable fetch from network
CSSM_TP_ACTION_FETCH_CRL_FROM_NET = 0x00000002
};
typedef struct {
// CSSM_APPLE_TP_CRL_OPTS_VERSION
uint32 Version
CSSM_APPLE_TP_CRL_OPT_FLAGS CrlFlags;
/*
* When non-NULL, store CRLs fetched from net here.
* This is most likely a pointer to one of the
* CSSM_TP_CALLERAUTH_CONTEXT.DBList entries but that
* is not a strict requirement.
*/
CSSM_DL_DB_HANDLE_PTR crlStore;
} CSSM_APPLE_TP_CRL_OPTIONS;
Когда CSSM_TP_ACTION_REQUIRE_CRL_PER_CERT
флаг установлен, сертификат не допустим, если каждый сертификат в цепочке сертификата не был успешно проверен с помощью списка аннулированных сертификатов. Эта проверка в дополнение к любым другим специфичным для сертификата или специфичным для политики проверкам, требуемым для проверки. Когда этот флаг не установлен, CRLs оценены, если они доступны, но это не ошибка, если доверительный модуль политики не может найти CRL. В любом случае сертификат не считают допустимым, если CRL найден, который указывает, что был отменен любой сертификат в цепочке сертификата.
Оценка многократных политик
Если многократные политики указаны, они оценены последовательно. В этом случае, VerificationAbortOn
поле CSSM_TP_CALLERAUTH_CONTEXT
структура указывает, когда прервать процесс проверки (см. “Trust Policy Services API” глава в Коллективной безопасности: CDSA и CSSM, версия 2 (с исправлениями) от Open Group (http://www .opengroup.org/security/cdsa.htm)). Модуль AppleX509TP CDSA поддерживает следующие значения для VerificationAbortOn
поле:
CSSM_TP_STOP_ON_NONE
; продолжайте к последующим политикам, если одна оценка политики перестала работатьCSSM_TP_STOP_ON_FIRST_FAIL
; остановитесь сразу, если оценка политики перестала работатьCSSM_TP_STOP_ON_POLICY
; обработанный как то же какCSSM_TP_STOP_ON_FIRST_FAIL