Расширенное использование ключа
Данное расширение определяет одну или более целей, для которых может использоваться сертифицированный открытый ключ, в дополнение к основным целям, указанным в расширении keyUsage. Данное расширение появляется только в сертификатах конечного участника. Оно определяется следующим образом:
id-ce-extKeyUsage OBJECT IDENTIFIER ::= { id-ce 37 } ExtKeyUsageSyntax ::= SEQUENCE SIZE (1..MAX) OF KeyPurposeId KeyPurposeId ::= OBJECT IDENTIFIER
Цели ключа могут быть при необходимости определены любой организацией.
Данное расширение может быть как критичным, так и некритичным.
Если расширение присутствует, то сертификат должен использоваться только для одной из указанных целей. Если указано несколько целей, то приложение не обязательно должно распознавать их все, а также расширенную цель, если она присутствует. Приложение, использующее сертификат, может потребовать указать конкретную цель, чтобы сертификат принимался данным приложением.
Если СА включает расширенные использования ключа, чтобы соответствовать таким приложениям, но не хочет ограничивать использование ключа, он может включить специальный keyPurposeID anyExtendedKeyUsage. Если keyPurposeID anyExtendedKeyUsage присутствует, расширение не должно быть критичным.
Если сертификат содержит как расширение использования ключа, так и расширение расширенного использования ключа, оба расширения должны обрабатываться независимо, и сертификат должен использоваться только для целей, содержащихся в обоих расширениях. Если нет целей, содержащихся в обоих расширенях, то сертификат не должен использоваться ни для какой цели (т.е. считается недействительным).
Определены следующие цели использования ключа:
anyExtendedKeyUsage OBJECT IDENTIFIER ::= { id-ce-extKeyUsage 0 } id-kp OBJECT IDENTIFIER ::= { id-pkix 3 } id-kp-serverAuth OBJECT IDENTIFIER ::= { id-kp 1 } -- аутентификация сервера TLS -- биты использования ключа, которые могут -- быть ограничением: digitalSignature, -- keyEncipherment или keyAgreement id-kp-clientAuth OBJECT IDENTIFIER ::= { id-kp 2 } -- аутентификация клиента TLS -- биты использования ключа, которые могут -- быть ограничением: digitalSignature -- и/или keyAgreement id-kp-codeSigning OBJECT IDENTIFIER ::= { id-kp 3 } -- подписывание загруженного выполняемого кода -- биты использования ключа, которые могут -- быть ограничением: digitalSignature id-kp-emailProtection OBJECT IDENTIFIER ::= { id-kp 4 } -- защита е-mail -- биты использования ключа, которые могут -- быть ограничением: digitalSignature, -- nonRepudiation, и/или (keyEncipherment -- или keyAgreement) id-kp-timeStamping OBJECT IDENTIFIER ::= { id-kp 8 } -- связывание хэша объекта со временем -- биты использования ключа, которые могут -- быть ограничением: digitalSignature -- и/или nonRepudiation id-kp-OCSPSigning OBJECT IDENTIFIER ::= { id-kp 9 } -- подписывание ответов OCSP -- биты использования ключа, которые могут -- быть ограничением: digitalSignature -- и/или nonRepudiation