Политики сертификата
Расширение политик сертификата certificatePolicies содержит последовательность из одного или более идентификаторов политики, каждый из которых может иметь квалификатор. Эти квалификаторы не должны изменять определение политики.
В сертификате конечного участника данное расширение определяет политику, при которой был выпущен сертификат, и цели, для которых он может использоваться. В сертификате СА данное расширение ограничивает множество политик, которые могут присутствовать в сертификатах из сертификационного пути, включающего данный сертификат. Когда СА не хочет ограничивать множество политик для сертификатов из сертификационного пути, который включает данный сертификат, СА может указать специальную политику anyPolicy.
Считается, что приложения, допускающие только определенные политики, имеют список тех политик, которые они принимают, и сравнивают OIDs политик в сертификате с этим списком. Если данное расширение критичное, ПО проверки действительности пути должно иметь возможность интерпретировать его (включая необязательный квалификатор) или ему придется отвергать сертификат.
Для обеспечения интероперабельности рекомендуется, чтобы элементы политики состояли только из OID. Когда одного OID недостаточно, использование квалификаторов рекомендуется ограничивать теми, которые указаны ниже.
В настоящий момент определено два типа квалификаторов политики: CPS Pointer и User Notice.
Квалификатор CPS Pointer содержит указатель на Certification Practice Statement (CPS) – регламент сертификационной практики, опубликованный СА. Указатель должен быть представлен в виде URI.
Считается, что квалификатор User Notice будет показан соотвествующему участнику при использовании сертификата. Данный квалификатор имеет два необязательных поля: поле noticeRef и поле explicitText.
Поле noticeRef обозначает организацию и определяет конкретное текстовое определение, представленное данной организацией. Например, оно может идентифицировать организацию MSUCert и номер уведомления 1. В типичной реализации ПО приложения имеет файл уведомлений, содержащий текущее множество уведомлений для MSUCert; приложение извлекает текст уведомления из файла и показывает его.
Сообщения могут быть многоязыковыми, что позволяет ПО выбирать сообщения конкретного языка в соответствии с окружением.
Поле explicitText включает текст непосредственно в сертификат. Оно является строкой максимального размера 200 символов.
Обе опции notifyRef и explicitText включаются в один квалификатор, и если ПО приложения может разместить текст уведомления, указанный опцией noticeRef, то этот текст должен быть показан; в противном случае должна быть показана строка explicitText.
id-ce-certificatePolicies OBJECT IDENTIFIER ::= { id-ce 32 } anyPolicy OBJECT IDENTIFIER ::= { id-ce-certificate-policies 0 } certificatePolicies ::= SEQUENCE SIZE ( 1..MAX) OF PolicyInformation PolicyInformation ::= SEQUENCE { policyIdentifier CertPolicyId, policyQualifiers SEQUENCE SIZE (1..MAX) OF PolicyQualifierInfo OPTIONAL } CertPolicyId ::= OBJECT IDENTIFIER PolicyQualifierInfo ::= SEQUENCE { policyQualifierId PolicyQualifierId, qualifier ANY DEFINED BY policyQualifierId } -- policyQualifierIds для квалификаторов -- политики в Internet id-qt OBJECT IDENTIFIER ::= { id-pkix 2 } id-qt-cps OBJECT IDENTIFIER ::= { id-qt 1 } id-qt-unotice OBJECT IDENTIFIER ::= { id-qt 2 } PolicyQualifierId ::= OBJECT IDENTIFIER ( id-qt-cps | id-qt-unotice ) Qualifier ::= CHOICE { cPSuri CPSuri, userNotice UserNotice } CPSuri ::= IA5String UserNotice ::= SEQUENCE { noticeRef NoticeReference OPTIONAL, explicitText DisplayText OPTIONAL } NoticeReference ::= SEQUENCE { organization DisplayText, noticeNumbers SEQUENCE OF INTEGER } DisplayText ::= CHOICE { ia5String IA5String (SIZE (1..200)), visibleString VisibleString (SIZE (1..200)), bmpString BMPString (SIZE (1..200)), utf8String UTF8String (SIZE (1..200)) }