Network Working Group Request for Comments: 4523 Категория: Standards Track K. Zeilenga, OpenLDAP Foundation Июнь 2006 года Отменяет: 2252, 2256, 2587
Этот документ определяет проект стандарта протокола Интернет для сообщества Интернет, а также приглашает к обсуждению и подаче предложений по его усовершенствованию. Пожалуйста, сверяйтесь с текущей редакцией "Официальных стандартов протоколов Интернет" (STD 1), чтобы узнать состояние стандартизации и статус этого протокола. Ограничений на распространение данного документа не накладывается.
Copyright (C) Internet Society (2006).
В этом документе описывается схема данных для представления сертификатов X.509, элементов стандарта X.521, относящихся к защите информации, и других связанных элементов в каталогах, доступ к которым осуществляется с использованием протокола Lightweight Directory Access Protocol (LDAP). Приводимые в этом документе LDAP-определения для элементов схемы данных X.509 и X.521 заменяют те определения, которые были представлены в RFC 2252 и 2256.
В этом документе предоставляются определения схемы данных [RFC4512] LDAP [RFC4510] для подмножества элементов, определённых в стандартах X.509 [X.509] и X.521 [X.521], в том числе типы атрибутов для сертификатов, пар перекрёстных сертификатов и списков отзывов сертификатов, правила соответствия для использования с этими типами атрибутов, а также относящиеся к ним объектные классы. Также предоставляются определения синтаксисов LDAP для связанных значений утверждений и атрибутов.
Поскольку семантики этих элементов определены в X.509 и X.521, знание X.509 и X.521 необходимо для использования представленных здесь определений схемы данных LDAP.
Этот документ совместно с [RFC4510] полностью отменяет RFC 2252 и 2256. Внесённые в этом документе изменения относительно RFC 2252 и RFC 2256 включают:
Этот документ отменяет RFC 2587. Определения схемы данных X.509 для LDAPv2 [RFC1777] объявлены историческими так же, как и сам протокол LDAPv2 [RFC3494].
Ключевые слова "MUST" (необходимо), "MUST NOT" (недопустимо), "REQUIRED" (требуется), "SHALL" (нужно), "SHALL NOT" (не нужно), "SHOULD" (следует), "SHOULD NOT" (не следует), "RECOMMENDED" (рекомендуется), "MAY" (возможно) и "OPTIONAL" (необязательно) в данном документе должны интерпретироваться так, как описано в BCP 14 [RFC2119].
Определения схемы данных приводятся в форматах описания LDAP [RFC4512]. Приведённые здесь определения отформатированы (разбиты на строки) для улучшения читабельности.
В этом разделе описаны различные синтаксисы, используемые в LDAP для передачи сертификатов и связанных с ними типов данных.
( 1.3.6.1.4.1.1466.115.121.1.8 DESC 'X.509 Certificate' )
Значение данного синтаксиса представляет собой конструкцию Certificate
из стандарта X.509 [X.509, раздел 7].
В связи с тем, что в определение конструкции Certificate
периодически вносятся изменения, для этого синтаксиса не предусмотрена специфичная для LDAP кодировка. Значения с этим синтаксисом следует (SHOULD) кодировать с использованием Особых правил кодирования (Distinguished Encoding Rules, DER) [X.690], и они должны (MUST) передаваться только с использованием опции передачи ;binary [RFC4522]; то есть значения должны запрашиваться и возвращаться с использованием описаний атрибутов в виде "userCertificate;binary
".
Поскольку значения этого синтаксиса содержат данные, подписанные цифровой подписью, такие значения, а также форма каждого из них, должны (MUST) быть сохранены в том виде, в котором они представлены.
( 1.3.6.1.4.1.1466.115.121.1.9 DESC 'X.509 Certificate List' )
Значение данного синтаксиса представляет собой конструкцию CertificateList
из стандарта X.509 [X.509, раздел 7.3].
В связи с тем, что в определение конструкции CertificateList
периодически вносятся изменения, для этого синтаксиса не предусмотрена специфичная для LDAP кодировка. Значения с этим синтаксисом следует (SHOULD) кодировать с использованием DER [X.690], и они должны (MUST) передаваться только с использованием опции передачи ;binary [RFC4522]; то есть значения должны запрашиваться и возвращаться с использованием описаний атрибутов в виде "certificateRevocationList;binary
".
Поскольку значения этого синтаксиса содержат данные, подписанные цифровой подписью, такие значения, а также форма каждого из них, должны (MUST) быть сохранены в том виде, в котором они представлены.
( 1.3.6.1.4.1.1466.115.121.1.10 DESC 'X.509 Certificate Pair' )
Значение данного синтаксиса представляет собой конструкцию CertificatePair
из стандарта X.509 [X.509, раздел 11.2.3].
В связи с тем, что в определение конструкции X.509 CertificatePair
периодически вносятся изменения, для этого синтаксиса не предусмотрена специфичная для LDAP кодировка. Значения с этим синтаксисом следует (SHOULD) кодировать с использованием DER [X.690], и они должны (MUST) передаваться только с использованием опции передачи ;binary [RFC4522]; то есть значения должны запрашиваться и возвращаться с использованием описаний атрибутов в виде "crossCertificatePair;binary
".
Поскольку значения этого синтаксиса содержат данные, подписанные цифровой подписью, такие значения, а также форма каждого из них, должны (MUST) быть сохранены в том виде, в котором они представлены.
( 1.3.6.1.4.1.1466.115.121.1.49 DESC 'X.509 Supported Algorithm' )
Значение данного синтаксиса представляет собой конструкцию SupportedAlgorithm
из стандарта X.509 [X.509, раздел 11.2.7].
В связи с тем, что в определение конструкции X.509 SupportedAlgorithm
периодически вносятся изменения, для этого синтаксиса не предусмотрена специфичная для LDAP кодировка. Значения с этим синтаксисом следует (SHOULD) кодировать с использованием DER [X.690], и они должны (MUST) передаваться только с использованием опции передачи ;binary [RFC4522]; то есть значения должны запрашиваться и возвращаться с использованием описаний атрибутов в виде "supportedAlgorithms;binary
".
Поскольку значения этого синтаксиса содержат данные, подписанные цифровой подписью, такие значения, а также форма каждого из них, должны (MUST) быть сохранены в том виде, в котором они представлены.
( 1.3.6.1.1.15.1 DESC 'X.509 Certificate Exact Assertion' )
Значение данного синтаксиса представляет собой конструкцию CertificateExactAssertion
из стандарта X.509 [X.509, раздел 11.3.1]. Значения с этим синтаксисом должны (MUST) быть закодированы с использованием Общих правил кодирования строк (Generic String Encoding Rules, GSER) [RFC3641]. В приложении A.1 представлен эквивалент данного синтаксиса в виде грамматики, описанной в Расширенной форме Бэкуса-Наура (Augmented Backus-Naur Form, ABNF) [RFC4234].
( 1.3.6.1.1.15.2 DESC 'X.509 Certificate Assertion' )
Значение данного синтаксиса представляет собой конструкцию CertificateAssertion
из стандарта X.509 [X.509, раздел 11.3.2]. Значения с этим синтаксисом должны (MUST) быть закодированы с использованием GSER [RFC3641]. В приложении A.2 представлен эквивалент данного синтаксиса в виде грамматики, описанной в ABNF [RFC4234].
( 1.3.6.1.1.15.3 DESC 'X.509 Certificate Pair Exact Assertion' )
Значение данного синтаксиса представляет собой конструкцию CertificatePairExactAssertion
из стандарта X.509 [X.509, раздел 11.3.3]. Значения с этим синтаксисом должны (MUST) быть закодированы с использованием GSER [RFC3641]. В приложении A.3 представлен эквивалент данного синтаксиса в виде грамматики, описанной в ABNF [RFC4234].
( 1.3.6.1.1.15.4 DESC 'X.509 Certificate Pair Assertion' )
Значение данного синтаксиса представляет собой конструкцию CertificatePairAssertion
из стандарта X.509 [X.509, раздел 11.3.4]. Значения с этим синтаксисом должны (MUST) быть закодированы с использованием GSER [RFC3641]. В приложении A.4 представлен эквивалент данного синтаксиса в виде грамматики, описанной в ABNF [RFC4234].
( 1.3.6.1.1.15.5 DESC 'X.509 Certificate List Exact Assertion' )
Значение данного синтаксиса представляет собой конструкцию CertificateListExactAssertion
из стандарта X.509 [X.509, раздел 11.3.5]. Значения с этим синтаксисом должны (MUST) быть закодированы с использованием GSER [RFC3641]. В приложении A.5 представлен эквивалент данного синтаксиса в виде грамматики, описанной в ABNF.
( 1.3.6.1.1.15.6 DESC 'X.509 Certificate List Assertion' )
Значение данного синтаксиса представляет собой конструкцию CertificateListAssertion
из стандарта X.509 [X.509, раздел 11.3.6]. Значения с этим синтаксисом должны (MUST) быть закодированы с использованием GSER [RFC3641]. В приложении A.6 представлен эквивалент данного синтаксиса в виде грамматики, описанной в ABNF [RFC4234].
( 1.3.6.1.1.15.7 DESC 'X.509 Algorithm Identifier' )
Значение данного синтаксиса представляет собой конструкцию AlgorithmIdentifier
из стандарта X.509 [X.509, раздел 7]. Значения с этим синтаксисом должны (MUST) быть закодированы с использованием GSER [RFC3641]. В приложении A.7 представлен эквивалент данного синтаксиса в виде грамматики, описанной в ABNF [RFC4234].
В этом разделе представлен набор правил соответствия для использования в LDAP, применяемых к сертификатам и связанным с ними типам данных. Применение данных правил должно соответствовать применению их аналогов из стандарта X.500.
Правило соответствия certificateExactMatch
сравнивает на предмет точного совпадения представленное значение утверждения сертификата со значением атрибута с синтаксисом сертификата, как описано в разделе 11.3.1 стандарта [X.509].
( 2.5.13.34 NAME 'certificateExactMatch' DESC 'X.509 Certificate Exact Match' SYNTAX 1.3.6.1.1.15.1 )
Правило соответствия certificateMatch
сравнивает представленное значение утверждения сертификата со значением атрибута с синтаксисом сертификата, как описано в разделе 11.3.2 стандарта [X.509].
( 2.5.13.35 NAME 'certificateMatch' DESC 'X.509 Certificate Match' SYNTAX 1.3.6.1.1.15.2 )
Правило соответствия certificatePairExactMatch
сравнивает на предмет точного совпадения представленное значение утверждения пары сертификатов со значением атрибута с синтаксисом пары сертификатов, как описано в разделе 11.3.3 стандарта [X.509].
( 2.5.13.36 NAME 'certificatePairExactMatch' DESC 'X.509 Certificate Pair Exact Match' SYNTAX 1.3.6.1.1.15.3 )
Правило соответствия certificatePairMatch
сравнивает представленное значение утверждения пары сертификатов со значением атрибута с синтаксисом пары сертификатов, как описано в разделе 11.3.4 стандарта [X.509].
( 2.5.13.37 NAME 'certificatePairMatch' DESC 'X.509 Certificate Pair Match' SYNTAX 1.3.6.1.1.15.4 )
Правило соответствия certificateListExactMatch
сравнивает на предмет точного совпадения представленное значение утверждения списка сертификатов со значением атрибута с синтаксисом списка сертификатов, как описано в разделе 11.3.5 стандарта [X.509].
( 2.5.13.38 NAME 'certificateListExactMatch' DESC 'X.509 Certificate List Exact Match' SYNTAX 1.3.6.1.1.15.5 )
Правило соответствия certificateListMatch
сравнивает представленное значение утверждения списка сертификатов со значением атрибута с синтаксисом списка сертификатов, как описано в разделе 11.3.6 стандарта [X.509].
( 2.5.13.39 NAME 'certificateListMatch' DESC 'X.509 Certificate List Match' SYNTAX 1.3.6.1.1.15.6 )
Правило соответствия algorithmIdentifierMatch
сравнивает представленный идентификатор алгоритма со значением атрибута идентификатора поддерживаемого алгоритма, как описано в разделе 11.3.7 стандарта [X.509].
( 2.5.13.40 NAME 'algorithmIdentifierMatch' DESC 'X.509 Algorithm Identifier Match' SYNTAX 1.3.6.1.1.15.7 )
В этом разделе описан набор типов атрибутов сертификатов и связанных с ними типов данных для использования в LDAP.
В атрибуте userCertificate
содержатся сертификаты X.509, выданные пользователю одним или несколькими удостоверяющими центрами, как описано в разделе 11.2.1 стандарта [X.509].
( 2.5.4.36 NAME 'userCertificate' DESC 'X.509 user certificate' EQUALITY certificateExactMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.8 )
Согласно требованиям синтаксиса данного типа атрибута, значения такого атрибута запрашиваются и передаются с использованием описания атрибута "userCertificate;binary
".
В атрибуте cACertificate
содержатся сертификаты X.509, выданные удостоверяющему центру (УЦ), как описано в разделе 11.2.2 стандарта [X.509].
( 2.5.4.37 NAME 'cACertificate' DESC 'X.509 CA certificate' EQUALITY certificateExactMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.8 )
Согласно требованиям синтаксиса данного типа атрибута, значения такого атрибута запрашиваются и передаются с использованием описания атрибута "cACertificate;binary
".
В атрибуте crossCertificatePair
содержатся пары сертификатов X.509, как описано в разделе 11.2.3 стандарта [X.509].
( 2.5.4.40 NAME 'crossCertificatePair' DESC 'X.509 cross certificate pair' EQUALITY certificatePairExactMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.10 )
Согласно требованиям синтаксиса данного типа атрибута, значения такого атрибута запрашиваются и передаются с использованием описания атрибута "crossCertificatePair;binary
".
В атрибуте certificateRevocationList
содержатся списки сертификатов, как описано в разделе 11.2.4 стандарта [X.509].
( 2.5.4.39 NAME 'certificateRevocationList' DESC 'X.509 certificate revocation list' EQUALITY certificateListExactMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.9 )
Согласно требованиям синтаксиса данного типа атрибута, значения такого атрибута запрашиваются и передаются с использованием описания атрибута "certificateRevocationList;binary
".
В атрибуте authorityRevocationList содержатся списки сертификатов, как описано в разделе 11.2.5 стандарта [X.509].
( 2.5.4.38 NAME 'authorityRevocationList' DESC 'X.509 authority revocation list' EQUALITY certificateListExactMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.9 )
Согласно требованиям синтаксиса данного типа атрибута, значения такого атрибута запрашиваются и передаются с использованием описания атрибута "authorityRevocationList;binary
".
В атрибуте deltaRevocationList
содержатся списки сертификатов, как описано в разделе 11.2.6 стандарта [X.509].
( 2.5.4.53 NAME 'deltaRevocationList' DESC 'X.509 delta revocation list' EQUALITY certificateListExactMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.9 )
Согласно требованиям синтаксиса данного типа атрибута, значения такого атрибута должны (MUST) запрашиваться и передаваться с использованием описания атрибута "deltaRevocationList;binary
".
В атрибуте supportedAlgorithms
содержатся поддерживаемые алгоритмы, как описано в разделе 11.2.7 стандарта [X.509].
( 2.5.4.52 NAME 'supportedAlgorithms' DESC 'X.509 supported algorithms' EQUALITY algorithmIdentifierMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.49 )
Согласно требованиям синтаксиса данного типа атрибута, значения такого атрибута должны (MUST) запрашиваться и передаваться с использованием описания атрибута "supportedAlgorithms;binary
".
В этом разделе описан набор связанных с сертификатами объектных классов для использования в LDAP.
Данный объектный класс используется для дополнения записей объектов, которые могут быть субъектами сертификатов, как определено в разделе 11.1.1 стандарта [X.509].
( 2.5.6.21 NAME 'pkiUser' DESC 'X.509 PKI User' SUP top AUXILIARY MAY userCertificate )
Данный объектный класс используется для дополнения записей объектов, которые действуют как удостоверяющие центры, как определено в разделе 11.1.2 стандарта [X.509]
( 2.5.6.22 NAME 'pkiCA' DESC 'X.509 PKI Certificate Authority' SUP top AUXILIARY MAY ( cACertificate $ certificateRevocationList $ authorityRevocationList $ crossCertificatePair ) )
Данный класс используется для представления объектов, которые действуют как точки распространения CRL, как определено в разделе 11.1.3 стандарта [X.509].
( 2.5.6.19 NAME 'cRLDistributionPoint' DESC 'X.509 CRL distribution point' SUP top STRUCTURAL MUST cn MAY ( certificateRevocationList $ authorityRevocationList $ deltaRevocationList ) )
Объектный класс deltaCRL
используется для дополнения записей, которые содержат дельта-списки отзыва сертификатов, как определено в разделе 11.1.4 стандарта [X.509].
( 2.5.6.23 NAME 'deltaCRL' DESC 'X.509 delta CRL' SUP top AUXILIARY MAY deltaRevocationList )
Данный объектный класс используется для дополнения записей объектов, участвующих в аутентификации на основе сертификатов, как определено в разделе 6.15 стандарта [X.521]. Этот объектный класс является устаревшим в пользу pkiUser.
( 2.5.6.15 NAME 'strongAuthenticationUser' DESC 'X.521 strong authentication user' SUP top AUXILIARY MUST userCertificate )
Данный объектный класс используется для дополнения записей необходимой дополнительной информацией о безопасности, как определено в разделе 6.16 стандарта [X.521].
( 2.5.6.18 NAME 'userSecurityInformation' DESC 'X.521 user security information' SUP top AUXILIARY MAY ( supportedAlgorithms ) )
Данный объектный класс используется для дополнения записей объектов, которые действуют как удостоверяющие центры, как определено в разделе 6.17 стандарта [X.521]. Этот объектный класс является устаревшим в пользу pkiCA.
( 2.5.6.16 NAME 'certificationAuthority' DESC 'X.509 certificate authority' SUP top AUXILIARY MUST ( authorityRevocationList $ certificateRevocationList $ cACertificate ) MAY crossCertificatePair )
Данный объектный класс используется для дополнения записей объектов, которые действуют как удостоверяющие центры, как определено в разделе 6.18 стандарта [X.521]. Этот объектный класс является устаревшим в пользу pkiCA.
( 2.5.6.16.2 NAME 'certificationAuthority-V2' DESC 'X.509 certificate authority, version 2' SUP certificationAuthority AUXILIARY MAY deltaRevocationList )
К приложениям для работы с сертификатами с поддержкой LDAP применяются общие положения о сертификатах [RFC3280]. Также к ним применяются общие соображения безопасности LDAP [RFC4510].
Хотя элементы данных сертификата обычно подписаны электронной подписью, эти подписи защищают только целостность подписанной информации. В отсутствие защиты целостности данных на уровне протокола LDAP (или более низких уровнях, например, IPsec), сервер не может полагаться на то, что поступивший от клиента запрос сертификата (или любой другой запрос) не был изменён при передаче. Также и клиент не может полагаться на то, что результаты запроса не были изменены при передаче. Поэтому, как правило, рекомендуется, чтобы реализации данного стандарта использовали имеющиеся в LDAP сервисы аутентификации и обеспечения целостности данных [RFC4513][RFC4511].
IANA зарегистрировала идентификатор объекта LDAP [RFC4520] для использования в данной технической спецификации.
Subject: Request for LDAP OID Registration Person & email address to contact for further information: Kurt Zeilenga <kurt@OpenLDAP.org> Specification: RFC 4523 Author/Change Controller: IESG Comments: Identifies the LDAP X.509 Certificate schema elements introduced in this document.
IANA обновила реестр дескрипторов LDAP [RFC4520], как показано ниже.
Subject: Request for LDAP Descriptor Registration Descriptor (short name): see table Object Identifier: see table Person & email address to contact for further information: Kurt Zeilenga <kurt@OpenLDAP.org> Usage: see table Specification: RFC 4523 Author/Change Controller: IESG algorithmIdentifierMatch M 2.5.13.40 authorityRevocationList A 2.5.4.38 * cACertificate A 2.5.4.37 * cRLDistributionPoint O 2.5.6.19 * certificateExactMatch M 2.5.13.34 certificateListExactMatch M 2.5.13.38 certificateListMatch M 2.5.13.39 certificateMatch M 2.5.13.35 certificatePairExactMatch M 2.5.13.36 certificatePairMatch M 2.5.13.37 certificateRevocationList A 2.5.4.39 * certificationAuthority O 2.5.6.16 * certificationAuthority-V2 O 2.5.6.16.2 * crossCertificatePair A 2.5.4.40 * deltaCRL O 2.5.6.23 * deltaRevocationList A 2.5.4.53 * pkiCA O 2.5.6.22 * pkiUser O 2.5.6.21 * strongAuthenticationUser O 2.5.6.15 * supportedAlgorithms A 2.5.4.52 * userCertificate A 2.5.4.36 * userSecurityInformation O 2.5.6.18 * * Updates previous registration
Этот документ основан на стандарте X.509, который является продуктом ITU-T. Ряд определений схемы данных LDAP был сформирован на основе определений из RFC 2252 и 2256, оба продукта рабочей группы ASID IETF. Конструкции ABNF в приложении A предоставлены Steven Legg. Дополнительный материал для уточнения схемы данных LDAP, касающейся X.509, был заимствован из предыдущих работ David Chadwick и Steven Legg.
[RFC2119] Bradner, S., "Ключевые слова для обозначения уровня требований в RFC", BCP 14, RFC 2119, март 1997 г.
[RFC3641] Legg, S., "Generic String Encoding Rules (GSER) for ASN.1 Types", RFC 3641, октябрь 2003 г.
[RFC4510] Под редакцией Zeilenga, K., "Lightweight Directory Access Protocol (LDAP): Путеводитель по технической спецификации", RFC 4510, июнь 2006 г.
[RFC4512] Zeilenga, K., "Lightweight Directory Access Protocol (LDAP): Информационные модели каталога", RFC 4512, июнь 2006 г.
[RFC4522] Legg, S., "Lightweight Directory Access Protocol (LDAP): Опция двоичного кодирования", RFC 4522, июнь 2006 г.
[X.509] International Telecommunication Union - Telecommunication Standardization Sector, "The Directory: Authentication Framework", X.509(2000).
[X.521] International Telecommunication Union - Telecommunication Standardization Sector, "The Directory: Selected Object Classes", X.521(2000).
[X.690] International Telecommunication Union - Telecommunication Standardization Sector, "Specification of ASN.1 encoding rules: Basic Encoding Rules (BER), Canonical Encoding Rules (CER), and Distinguished Encoding Rules (DER)", X.690(2002) (also ISO/IEC 8825-1:2002).
[RFC1777] Yeong, W., Howes, T. и S. Kille, "Lightweight Directory Access Protocol", RFC 1777, март 1995 г.
[RFC2156] Kille, S., "MIXER (Mime Internet X.400 Enhanced Relay): Mapping between X.400 and RFC 822/MIME", RFC 2156, январь 1998 г.
[RFC3280] Housley, R., Polk, W., Ford, W. и D. Solo, "Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 3280, апрель 2002 г.
[RFC3494] Zeilenga, K., "Lightweight Directory Access Protocol version 2 (LDAPv2) to Historic Status", RFC 3494, март 2003 г.
[RFC3642] Legg, S., "Common Elements of Generic String Encoding Rules (GSER) Encodings", RFC 3642, октябрь 2003 г.
[RFC4234] Crocker, D. и P. Overell, "Augmented BNF for Syntax Specifications: ABNF", RFC 4234, октябрь 2005 г.
[RFC4511] Под редакцией Sermersheim, J., "Lightweight Directory Access Protocol (LDAP): Определение протокола", RFC 4511, июнь 2006 г.
[RFC4513] Под редакцией Harrison, R., "Lightweight Directory Access Protocol (LDAP): Методы аутентификации и механизмы обеспечения безопасности", RFC 4513, июнь 2006 г.
[RFC4520] Zeilenga, K., "Соглашения Internet Assigned Numbers Authority (IANA) для протокола Lightweight Directory Access Protocol (LDAP)", BCP 64, RFC 4520, июнь 2006 г.
Данное приложение является информативным.
В этом приложении приводятся грамматики ABNF [RFC4234] для определённых в данном документе основанных на GSER [RFC3641] специфичных для LDAP кодировок. Эти грамматики были сформированы с использованием общих элементов для кодировок GSER [RFC3642].
CertificateExactAssertion = "{" sp cea-serialNumber "," sp cea-issuer sp "}" cea-serialNumber = id-serialNumber msp CertificateSerialNumber cea-issuer = id-issuer msp Name id-serialNumber = %x73.65.72.69.61.6C.4E.75.6D.62.65.72 ; 'serialNumber' id-issuer = %x69.73.73.75.65.72 ; 'issuer' Name = id-rdnSequence ":" RDNSequence id-rdnSequence = %x72.64.6E.53.65.71.75.65.6E.63.65 ; 'rdnSequence' CertificateSerialNumber = INTEGER
CertificateAssertion = "{" [ sp ca-serialNumber ] [ sep sp ca-issuer ] [ sep sp ca-subjectKeyIdentifier ] [ sep sp ca-authorityKeyIdentifier ] [ sep sp ca-certificateValid ] [ sep sp ca-privateKeyValid ] [ sep sp ca-subjectPublicKeyAlgID ] [ sep sp ca-keyUsage ] [ sep sp ca-subjectAltName ] [ sep sp ca-policy ] [ sep sp ca-pathToName ] [ sep sp ca-subject ] [ sep sp ca-nameConstraints ] sp "}" ca-serialNumber = id-serialNumber msp CertificateSerialNumber ca-issuer = id-issuer msp Name ca-subjectKeyIdentifier = id-subjectKeyIdentifier msp SubjectKeyIdentifier ca-authorityKeyIdentifier = id-authorityKeyIdentifier msp AuthorityKeyIdentifier ca-certificateValid = id-certificateValid msp Time ca-privateKeyValid = id-privateKeyValid msp GeneralizedTime ca-subjectPublicKeyAlgID = id-subjectPublicKeyAlgID msp OBJECT-IDENTIFIER ca-keyUsage = id-keyUsage msp KeyUsage ca-subjectAltName = id-subjectAltName msp AltNameType ca-policy = id-policy msp CertPolicySet ca-pathToName = id-pathToName msp Name ca-subject = id-subject msp Name ca-nameConstraints = id-nameConstraints msp NameConstraintsSyntax id-subjectKeyIdentifier = %x73.75.62.6A.65.63.74.4B.65.79.49.64.65.6E.74.69.66.69.65.72 ; 'subjectKeyIdentifier' id-authorityKeyIdentifier = %x61.75.74.68.6F.72.69.74.79.4B.65.79.49.64.65.6E.74.69.66.69.65.72 ; 'authorityKeyIdentifier' id-certificateValid = %x63.65.72.74.69.66.69.63.61.74.65.56.61.6C.69.64 ; 'certificateValid' id-privateKeyValid = %x70.72.69.76.61.74.65.4B.65.79.56.61.6C.69.64 ; 'privateKeyValid' id-subjectPublicKeyAlgID = %x73.75.62.6A.65.63.74.50.75.62.6C.69.63.4B.65.79.41.6C.67.49.44 ; 'subjectPublicKeyAlgID' id-keyUsage = %x6B.65.79.55.73.61.67.65 ; 'keyUsage' id-subjectAltName = %x73.75.62.6A.65.63.74.41.6C.74.4E.61.6D.65 ; 'subjectAltName' id-policy = %x70.6F.6C.69.63.79 ; 'policy' id-pathToName = %x70.61.74.68.54.6F.4E.61.6D.65 ; 'pathToName' id-subject = %x73.75.62.6A.65.63.74 ; 'subject' id-nameConstraints = %x6E.61.6D.65.43.6F.6E.73.74.72.61.69.6E.74.73 ; 'nameConstraints' SubjectKeyIdentifier = KeyIdentifier KeyIdentifier = OCTET-STRING AuthorityKeyIdentifier = "{" [ sp aki-keyIdentifier ] [ sep sp aki-authorityCertIssuer ] [ sep sp aki-authorityCertSerialNumber ] sp "}" aki-keyIdentifier = id-keyIdentifier msp KeyIdentifier aki-authorityCertIssuer = id-authorityCertIssuer msp GeneralNames GeneralNames = "{" sp GeneralName *( "," sp GeneralName ) sp "}" GeneralName = gn-otherName / gn-rfc822Name / gn-dNSName / gn-x400Address / gn-directoryName / gn-ediPartyName / gn-uniformResourceIdentifier / gn-iPAddress / gn-registeredID gn-otherName = id-otherName ":" OtherName gn-rfc822Name = id-rfc822Name ":" IA5String gn-dNSName = id-dNSName ":" IA5String gn-x400Address = id-x400Address ":" ORAddress gn-directoryName = id-directoryName ":" Name gn-ediPartyName = id-ediPartyName ":" EDIPartyName gn-iPAddress = id-iPAddress ":" OCTET-STRING gn-registeredID = gn-id-registeredID ":" OBJECT-IDENTIFIER gn-uniformResourceIdentifier = id-uniformResourceIdentifier ":" IA5String id-otherName = %x6F.74.68.65.72.4E.61.6D.65 ; 'otherName' gn-id-registeredID = %x72.65.67.69.73.74.65.72.65.64.49.44 ; 'registeredID' OtherName = "{" sp on-type-id "," sp on-value sp "}" on-type-id = id-type-id msp OBJECT-IDENTIFIER on-value = id-value msp Value ;; <Value> as defined in Section 3 of [RFC3641] id-type-id = %x74.79.70.65.2D.69.64 ; 'type-id' id-value = %x76.61.6C.75.65 ; 'value' ORAddress = dquote *SafeIA5Character dquote SafeIA5Character = %x01-21 / %x23-7F / ; ASCII minus dquote dquote dquote ; escaped double quote dquote = %x22 ; '"' (double quote) ;; Note: The <ORAddress> rule encodes the x400Address component ;; of a GeneralName as a character string between double quotes. ;; The character string is first derived according to Section 4.1 ;; of [RFC2156], and then any embedded double quotes are escaped ;; by being repeated. This resulting string is output between ;; double quotes. EDIPartyName = "{" [ sp nameAssigner "," ] sp partyName sp "}" nameAssigner = id-nameAssigner msp DirectoryString partyName = id-partyName msp DirectoryString id-nameAssigner = %x6E.61.6D.65.41.73.73.69.67.6E.65.72 ; 'nameAssigner' id-partyName = %x70.61.72.74.79.4E.61.6D.65 ; 'partyName' aki-authorityCertSerialNumber = id-authorityCertSerialNumber msp CertificateSerialNumber id-keyIdentifier = %x6B.65.79.49.64.65.6E.74.69.66.69.65.72 ; 'keyIdentifier' id-authorityCertIssuer = %x61.75.74.68.6F.72.69.74.79.43.65.72.74.49.73.73.75.65.72 ; 'authorityCertIssuer' id-authorityCertSerialNumber = %x61.75.74.68.6F.72.69.74.79.43 %x65.72.74.53.65.72.69.61.6C.4E.75.6D.62.65.72 ; 'authorityCertSerialNumber' Time = time-utcTime / time-generalizedTime time-utcTime = id-utcTime ":" UTCTime time-generalizedTime = id-generalizedTime ":" GeneralizedTime id-utcTime = %x75.74.63.54.69.6D.65 ; 'utcTime' id-generalizedTime = %x67.65.6E.65.72.61.6C.69.7A.65.64.54.69.6D.65 ; 'generalizedTime' KeyUsage = BIT-STRING / key-usage-bit-list key-usage-bit-list = "{" [ sp key-usage *( "," sp key-usage ) ] sp "}" ;; Note: The <key-usage-bit-list> rule encodes the one bits in ;; a KeyUsage value as a comma separated list of identifiers. key-usage = id-digitalSignature / id-nonRepudiation / id-keyEncipherment / id-dataEncipherment / id-keyAgreement / id-keyCertSign / id-cRLSign / id-encipherOnly / id-decipherOnly id-digitalSignature = %x64.69.67.69.74.61.6C.53.69.67.6E.61.74 %x75.72.65 ; 'digitalSignature' id-nonRepudiation = %x6E.6F.6E.52.65.70.75.64.69.61.74.69.6F.6E ; 'nonRepudiation' id-keyEncipherment = %x6B.65.79.45.6E.63.69.70.68.65.72.6D.65.6E.74 ; 'keyEncipherment' id-dataEncipherment = %x64.61.74.61.45.6E.63.69.70.68.65.72.6D.65.6E %x74 ; "dataEncipherment' id-keyAgreement = %x6B.65.79.41.67.72.65.65.6D.65.6E.74 ; 'keyAgreement' id-keyCertSign = %x6B.65.79.43.65.72.74.53.69.67.6E ; 'keyCertSign' id-cRLSign = %x63.52.4C.53.69.67.6E ; "cRLSign" id-encipherOnly = %x65.6E.63.69.70.68.65.72.4F.6E.6C.79 ; 'encipherOnly' id-decipherOnly = %x64.65.63.69.70.68.65.72.4F.6E.6C.79 ; 'decipherOnly' AltNameType = ant-builtinNameForm / ant-otherNameForm ant-builtinNameForm = id-builtinNameForm ":" BuiltinNameForm ant-otherNameForm = id-otherNameForm ":" OBJECT-IDENTIFIER id-builtinNameForm = %x62.75.69.6C.74.69.6E.4E.61.6D.65.46.6F.72.6D ; 'builtinNameForm' id-otherNameForm = %x6F.74.68.65.72.4E.61.6D.65.46.6F.72.6D ; 'otherNameForm' BuiltinNameForm = id-rfc822Name / id-dNSName / id-x400Address / id-directoryName / id-ediPartyName / id-uniformResourceIdentifier / id-iPAddress / id-registeredId id-rfc822Name = %x72.66.63.38.32.32.4E.61.6D.65 ; 'rfc822Name' id-dNSName = %x64.4E.53.4E.61.6D.65 ; 'dNSName' id-x400Address = %x78.34.30.30.41.64.64.72.65.73.73 ; 'x400Address' id-directoryName = %x64.69.72.65.63.74.6F.72.79.4E.61.6D.65 ; 'directoryName' id-ediPartyName = %x65.64.69.50.61.72.74.79.4E.61.6D.65 ; 'ediPartyName' id-iPAddress = %x69.50.41.64.64.72.65.73.73 ; 'iPAddress' id-registeredId = %x72.65.67.69.73.74.65.72.65.64.49.64 ; 'registeredId' id-uniformResourceIdentifier = %x75.6E.69.66.6F.72.6D.52.65.73.6F.75 %x72.63.65.49.64.65.6E.74.69.66.69.65.72 ; 'uniformResourceIdentifier' CertPolicySet = "{" sp CertPolicyId *( "," sp CertPolicyId ) sp "}" CertPolicyId = OBJECT-IDENTIFIER NameConstraintsSyntax = "{" [ sp ncs-permittedSubtrees ] [ sep sp ncs-excludedSubtrees ] sp "}" ncs-permittedSubtrees = id-permittedSubtrees msp GeneralSubtrees ncs-excludedSubtrees = id-excludedSubtrees msp GeneralSubtrees id-permittedSubtrees = %x70.65.72.6D.69.74.74.65.64.53.75.62.74.72.65.65.73 ; 'permittedSubtrees' id-excludedSubtrees = %x65.78.63.6C.75.64.65.64.53.75.62.74.72.65.65.73 ; 'excludedSubtrees' GeneralSubtrees = "{" sp GeneralSubtree *( "," sp GeneralSubtree ) sp "}" GeneralSubtree = "{" sp gs-base [ "," sp gs-minimum ] [ "," sp gs-maximum ] sp "}" gs-base = id-base msp GeneralName gs-minimum = id-minimum msp BaseDistance gs-maximum = id-maximum msp BaseDistance id-base = %x62.61.73.65 ; 'base' id-minimum = %x6D.69.6E.69.6D.75.6D ; 'minimum' id-maximum = %x6D.61.78.69.6D.75.6D ; 'maximum' BaseDistance = INTEGER-0-MAX
CertificatePairExactAssertion = "{" [ sp cpea-issuedTo ] [sep sp cpea-issuedBy ] sp "}" ;; At least one of <cpea-issuedTo> or <cpea-issuedBy> MUST be present. cpea-issuedTo = id-issuedToThisCAAssertion msp CertificateExactAssertion cpea-issuedBy = id-issuedByThisCAAssertion msp CertificateExactAssertion id-issuedToThisCAAssertion = %x69.73.73.75.65.64.54.6F.54.68.69.73 %x43.41.41.73.73.65.72.74.69.6F.6E ; 'issuedToThisCAAssertion' id-issuedByThisCAAssertion = %x69.73.73.75.65.64.42.79.54.68.69.73 %x43.41.41.73.73.65.72.74.69.6F.6E ; 'issuedByThisCAAssertion'
CertificatePairAssertion = "{" [ sp cpa-issuedTo ] [sep sp cpa-issuedBy ] sp "}" ;; At least one of <cpa-issuedTo> and <cpa-issuedBy> MUST be present. cpa-issuedTo = id-issuedToThisCAAssertion msp CertificateAssertion cpa-issuedBy = id-issuedByThisCAAssertion msp CertificateAssertion
CertificateListExactAssertion = "{" sp clea-issuer "," sp clea-thisUpdate [ "," sp clea-distributionPoint ] sp "}" clea-issuer = id-issuer msp Name clea-thisUpdate = id-thisUpdate msp Time clea-distributionPoint = id-distributionPoint msp DistributionPointName id-thisUpdate = %x74.68.69.73.55.70.64.61.74.65 ; 'thisUpdate' id-distributionPoint = %x64.69.73.74.72.69.62.75.74.69.6F.6E.50.6F.69.6E.74 ; 'distributionPoint' DistributionPointName = dpn-fullName / dpn-nameRelativeToCRLIssuer dpn-fullName = id-fullName ":" GeneralNames dpn-nameRelativeToCRLIssuer = id-nameRelativeToCRLIssuer ":" RelativeDistinguishedName id-fullName = %x66.75.6C.6C.4E.61.6D.65 ; 'fullName' id-nameRelativeToCRLIssuer = %x6E.61.6D.65.52.65.6C.61.74.69.76.65 %x54.6F.43.52.4C.49.73.73.75.65.72 ; 'nameRelativeToCRLIssuer'
CertificateListAssertion = "{" [ sp cla-issuer ] [ sep sp cla-minCRLNumber ] [ sep sp cla-maxCRLNumber ] [ sep sp cla-reasonFlags ] [ sep sp cla-dateAndTime ] [ sep sp cla-distributionPoint ] [ sep sp cla-authorityKeyIdentifier ] sp "}" cla-issuer = id-issuer msp Name cla-minCRLNumber = id-minCRLNumber msp CRLNumber cla-maxCRLNumber = id-maxCRLNumber msp CRLNumber cla-reasonFlags = id-reasonFlags msp ReasonFlags cla-dateAndTime = id-dateAndTime msp Time cla-distributionPoint = id-distributionPoint msp DistributionPointName cla-authorityKeyIdentifier = id-authorityKeyIdentifier msp AuthorityKeyIdentifier id-minCRLNumber = %x6D.69.6E.43.52.4C.4E.75.6D.62.65.72 ; 'minCRLNumber' id-maxCRLNumber = %x6D.61.78.43.52.4C.4E.75.6D.62.65.72 ; 'maxCRLNumber' id-reasonFlags = %x72.65.61.73.6F.6E.46.6C.61.67.73 ; 'reasonFlags' id-dateAndTime = %x64.61.74.65.41.6E.64.54.69.6D.65 ; 'dateAndTime' CRLNumber = INTEGER-0-MAX ReasonFlags = BIT-STRING / "{" [ sp reason-flag *( "," sp reason-flag ) ] sp "}" reason-flag = id-unused / id-keyCompromise / id-cACompromise / id-affiliationChanged / id-superseded / id-cessationOfOperation / id-certificateHold / id-privilegeWithdrawn / id-aACompromise id-unused = %x75.6E.75.73.65.64 ; 'unused' id-keyCompromise = %x6B.65.79.43.6F.6D.70.72.6F.6D.69.73.65 ; 'keyCompromise' id-cACompromise = %x63.41.43.6F.6D.70.72.6F.6D.69.73.65 ; 'cACompromise' id-affiliationChanged = %x61.66.66.69.6C.69.61.74.69.6F.6E.43.68.61.6E.67.65.64 ; 'affiliationChanged' id-superseded = %x73.75.70.65.72.73.65.64.65.64 ; 'superseded' id-cessationOfOperation = %x63.65.73.73.61.74.69.6F.6E.4F.66.4F.70.65.72.61.74.69.6F.6E ; 'cessationOfOperation' id-certificateHold = %x63.65.72.74.69.66.69.63.61.74.65.48.6F.6C.64 ; 'certificateHold' id-privilegeWithdrawn = %x70.72.69.76.69.6C.65.67.65.57.69.74.68.64.72.61.77.6E ; 'privilegeWithdrawn' id-aACompromise = %x61.41.43.6F.6D.70.72.6F.6D.69.73.65 ; 'aACompromise'
AlgorithmIdentifier = "{" sp ai-algorithm [ "," sp ai-parameters ] sp "}" ai-algorithm = id-algorithm msp OBJECT-IDENTIFIER ai-parameters = id-parameters msp Value id-algorithm = %x61.6C.67.6F.72.69.74.68.6D ; 'algorithm' id-parameters = %x70.61.72.61.6D.65.74.65.72.73 ; 'parameters'
Kurt D. Zeilenga
OpenLDAP Foundation
EMail: Kurt@OpenLDAP.org
Copyright (C) Internet Society (2006).
На этот документ распространяются права, лицензии и ограничения, содержащиеся в BCP 78, и, за исключением случаев, изложенных в нем, авторы сохраняют все свои права.
Этот документ и содержащаяся в нём информация распространяются "КАК ЕСТЬ" и АВТОР ДОКУМЕНТА, ОРГАНИЗАЦИЯ, КОТОРУЮ ОН/ОНА ПРЕДСТАВЛЯЕТ, ИЛИ КОТОРОЙ ОН/ОНА СПОНСИРУЕТСЯ (ЕСЛИ ТАКОВЫЕ ИМЕЮТСЯ), INTERNET SOCIETY И INTERNET ENGINEERING TASK FORCE ОТКАЗЫВАЮТСЯ ОТ ВСЕХ ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ЛЮБЫЕ ГАРАНТИИ ТОГО, ЧТО ИСПОЛЬЗОВАНИЕ ПРИВЕДЁННОЙ ЗДЕСЬ ИНФОРМАЦИИ НЕ НАРУШАЕТ КАКИХ-ЛИБО ПРАВ ИЛИ ЛЮБЫЕ ПОДРАЗУМЕВАЕМЫЕ ГАРАНТИИ ПРИГОДНОСТИ ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ.
IETF не занимает никакой позиции относительно действительности или области действия каких-либо прав на интеллектуальную собственность или других прав, которые могут заявляться как относящиеся к реализации или использованию технологий, описанных в данном документе, либо в подтверждении которых могут или не могут быть доступны какие-либо лицензии; кроме того, IETF не заявляет о том, что она будет предпринимать какие-либо независимые усилия по выявлению подобных прав. Информацию по процедурам в отношении прав в документах RFC можно найти в BCP 78 и BCP 79.
Копии поданных в секретариат IETF заявлений о правах на интеллектуальную собственность (Intellectual Property Rights, IPR), а также какие-либо документы, подтверждающие лицензию и предназначенные для предоставления доступа к ним, либо результаты попыток получения генеральных лицензий или разрешений на пользование подобными правами собственности могут быть получены теми, кто занимается реализацией, или пользователями данной спецификации из он-лайн репозитория IPR IETF по адресу http://www.ietf.org/ipr.
IETF просит всех заинтересованных лиц довести до её сведения любые авторские права, патенты или патентные заявки, либо другие права собственности, которые могут касаться технологий данного стандарта и могут потребоваться для его реализации. Пожалуйста, направляйте информацию в IETF по адресу ietf-ipr@ietf.org.
Финансирование функций RFC Editor обеспечивается IETF Administrative Support Activity (IASA).