ООО Топ Кросс


 
 Структура сертификата

  1. Общие положения.

    Выбор способа представления тех или иных данных и дополнительных ограничений на состав полей сертификата основан на следующих принципах:

    • представление данных в сертификате должно быть предельно простым и однозначным, чтобы исключить различные варианты трактовки документа уже на этапе разработки приложений;

    • составленная таким образом спецификация должна оставлять необходимую свободу для включения в сертификат дополнительных данных произвольного вида, характерных для конкретной области применения сертификатов ключей ЭЦП;

    • состав полей и форматы представления данных в сертификате должны соответствовать международным рекомендациям (см.п.2) там, где это не противоречит требованиям Закона об ЭЦ;

    • выпускаемые сертификаты используются в интернет PKI и период действия открытого и закрытого ключей для такого рода систем счтается одинаковым согласно RFC 3280 (4.2.1.4) и атрибут Private Key Usage Period не должен входить в состав сертификата.

  2. Международные рекомендации. Настоящий документ разработан с учетом международных рекомендаций:
    • RFC 3280 (в обновление к RFC 2459) Internet X.509 Public Key Infrastructure. Certificate and Certificate Revocation List (CRL) Profile.
    • RFC 3039 Internet X.509 Public Key Infrastructure. Qualified Certificate Profile - в данном RFC предлагаются общие требования к синтаксису (составу) сертификатов, использование которых юридически значимо.
  3. Состав и назначение полей сертификата.

    В данном разделе приводится описание основных полей сертификата открытого ключа, соответствующего Закону "Об электронной цифровой подписи" от 10.01.2002.

    Используемые в разделе понятия, обозначения и терминология основаны на RFC 3280 и RFC 3039, которые, в свою очередь, базируются на Рекомендации ITU-T X.509 версии 3. Содержание раздела не копирует содержание указанных документов, а лишь обозначает отличия и особенности использования полей сертификата, реализующие требования к составу сертификата ЭЦП, изложенные в статье 6 Закона об ЭЦП.

    Для всех полей сертификата, которые подразумевают русскоязычные строковые значения, предпочтительнее использовать универсальную кодировку UTF-8 (тип UTF8String).

    Целью раздела является определение состава и назначения полей сертификата без учета требований конкретного удостоверяющего центра. Документы, регламентирующие работу удостоверяющего центра, могут ограничивать состав полей сертификата и набор атрибутов, используемых для идентификации УЦ и владельцев сертификатов ключей подписи.

    1. Version
      Все выпускаемые сертификаты должны иметь версию 3.

    2. SerialNumber
      Поле serialNumber должно содержать "... уникальный регистрационный номер сертификата ключа подписи" (ст.6, п.1, абз.1). Уникальность номера сертификата должна соблюдаться в рамках данного удостоверяющего центра (УЦ).

    3. Validity
      Поле validity должно содержать "... даты начала и окончания срока действия сертификата ключа подписи, находящегося в реестре удостоверяющего центра" (ст.6, п.1, абз.1).

    4. SubjectPublicKeyInfo
      Поле subjectPublicKeyInfo должно содержать "... открытый ключ электронной цифровой подписи" (ст.6, п.1, абз.3).

    5. Issuer
      ФЗ "Об ЭЦП" предполагает выдачу сертификатов только физическим лицам, это положение касается и сертификатов самих УЦ и сертификатов ресурсов. Для соблюдения формальных требований ФЗ предлагается в сертификатах УЦ и ресурсов в атрибутах указывать реальную информацию организации считая, что такой сертификат выдан уполномоченному физическому лицу УЦ или Ресурса и указанная информация должна трактоваться и регистрироваться как сертификат на псевдоним, что допускает ФЗ "Об ЭЦП".
      Поле issuer должно однозначно идентифицировать организацию, выпустившую сертификат, и содержать официально зарегистрированное наименование организации.
      Для идентификации могут использоваться следующие атрибуты:

      • countryName
      • {id-at 6}
      • stateOrProvinceName
      • {id-at 8}
      • localityName
      • {id-at 7}
      • organizationName
      • {id-at 10}
      • organizationalUnitName
      • {id-at 11}
      • postalAddress
      • {id-at 16}
      • serialNumber
      • {id-at 5}

      Поле issuer должно обязательно включать атрибуты, описывающие "наименование и место нахождения удостоверяющего центра, выдавшего сертификат ключа подписи" (ст.6, п.1, абз.5).

      Наименование должно указываться в атрибуте organizationName. При использовании атрибута organizationName может также использоваться атрибут organizationalUnitName.

      Местонахождение удостоверяющего центра может указываться с помощью набора атрибутов countryName, stateOrProvinceName, localityName (каждый из которых является необязательным) либо с помощью единственного атрибута postalAddress. Любым из указанных способов местонахождение УЦ должно обязательно присутствовать в сертификате.

      Атрибут postalAddress, в случае его использования, должен содержать юридический адрес удостоверяющего центра. Пробел (символ '0x20') должен использоваться в качестве разделителя.

      Атрибут поля subject serialNumber должен использоваться при коллизии имен.

    6. Subject
      Для представления DN (Distinguished Name - отличительное имя) владельца сертификата могут использоваться следующие атрибуты:

      • countryName
      • {id-at 6}
      • stateOrProvinceName
      • {id-at 8}
      • localityName
      • {id-at 7}
      • organizationName
      • {id-at 10}
      • organizationalUnitName
      • {id-at 11}
      • title
      • {id-at 12}
      • commonName
      • {id-at 3}
      • pseudonym
      • {id-at 65}
      • serialNumber
      • {id-at 5}
      • postalAddress
      • {id-at 16}

      Для соблюдения формальных требований ФЗ предлагается в сертификатах УЦ и ресурсов в атрибутах указывать реальную информацию организации считая, что такой сертификат выдан уполномоченному физическому лицу УЦ или Ресурса и указанная информация должна трактоваться и регистрироваться как сертификат на псевдоним, что допускает ФЗ "Об ЭЦП".

      Поле subject должно обязательно содержать следующие сведения: "фамилия, имя и отчество владельца сертификата ключа подписи или псевдоним владельца" (ст.6, п.1, абз.2).

      Фамилия, имя и отчество владельца должны содержаться в атрибуте commonName и совпадать с указанными в паспорте. Пробел (символ '0x20') должен использоваться в качестве разделителя.

      Псевдоним владельца должен содержаться в атрибуте pseudonym.

      Использование одного из этих атрибутов исключает использование другого.

      Остальные атрибуты являются необязательными.

      "В случае необходимости в сертификате ключа подписи на основании подтверждающих документов указываются должность (с указанием наименования и места нахождения организации, в которой установлена эта должность)..." (ст.6, п.2).

      Должность владельца сертификата должна указываться в атрибуте title. Значение атрибута должно соответствовать записи в документах, подтверждающих установленную для владельца сертификата должность.

      Атрибут title, согласно RFC 3039, должен включаться в расширение subjectDirectoryAttributes. Однако настоящим документом (и RFC 3280) допускается его включение в поле subject.

      При использовании атрибута title обязательно должны включаться атрибуты, описывающие наименование и место нахождения организации, в которой установлена данная должность.

      Наименование организации должно указываться в атрибуте organizationName. Значение атрибута должно совпадать с записью наименования организации в учредительных либо иных равнозначных документах. При использовании атрибута organizationName может также использоваться атрибут organizationalUnitName.

      Местонахождение организации может указываться с помощью набора атрибутов countryName, stateOrProvinceName, localityName (каждый из которых является необязательным) либо с помощью единственного атрибута postalAddress.

      Атрибут postalAddress, в случае его использования, должен содержать юридический адрес организации либо адрес прописки владельца сертификата ключа подписи (для физического лица).

      При наличии атрибута organizationName атрибуты countryName, stateOrProvinceName, localityName и postalAddress должны интерпретироваться как местонахождение организации.

      Необязательные атрибуты поля subject (countryName, stateOrProvinceName, localityName, organizationName, organizationalUnitName, title, postalAddress) могут быть включены, если это определено регламентом работы УЦ, вместо поля subject в расширение subjectDirectoryAttributes (см. п 3.8.1). В этом случае они не должны включаться в subject и не могут быть использованы для различения владельцев сертификатов ключей подписи.

      Атрибут serialNumber должен включаться в поле subject сертификата при коллизии имен. Он также может включаться, если это определено регламентом работы удостоверяющего центра.

      Атрибут serialNumber может:

      • быть произвольным (присваиваться самим удостоверяющим центром);
      • содержать идентификатор (номер), присвоенный государственной (или иной) организацией (например, ИНН, серия и номер паспорта, номер удостоверения личности и т.д).

    7. Обязательные расширения
      В состав сертификата ключа подписи должны входить следующие расширения:

      • KeyUsage {id-ce 15}
      • CertificatePolicies {id-ce 32}

      1. KeyUsage
        Для того чтобы сертификат мог быть использован для проверки цифровой подписи, в расширении keyUsage должны быть установлены биты digitalSignature(0) и nonRepuduation(1).

      2. CertificatePolicies
        Расширение certificatePolicies предназначено для определения области юридически значимого применения сертификата.
        "... наименование средств ЭЦП, с которыми используется данный открытый ключ..." (ст.6, п.1, абз.4), "... сведения об отношениях, при осуществлении которых электронный документ с электронной цифровой подписью будет иметь юридическое значение ..." (ст.6, п.1, абз.6) и другие данные, регламентирующие порядок получения и использования сертификатов ключей подписи, могут быть доступны по указанному в данном расширении CPSuri (Certificate Practice Statement URI).

    8. Необязательные расширения
      В состав сертификата ключа подписи могут входить любые другие расширения. При включении в сертификат ключа ЭЦП расширений необходимо обеспечивать непротиворечивость и однозначность представленной в сертификате информации.
      Настоящий документ не регламентирует использование расширений, за исключением расширения subjectDirectoryAttributes {id-ce 9}.

      1. SubjectDirectoryAttributes
        Расширение subjectDirectoryAttributes может содержать атрибуты, дополняющие информацию, представленную в поле subject.
        В дополнение к атрибутам, перечисленным в RFC 3039, рекомендуется поддерживать в расширении subjectDirectoryAttributes следующие атрибуты:

        • qualification
        • {-}
        • countryName
        • {id-at 6}
        • stateOrProvinceName
        • {id-at 8}
        • localityName
        • {id-at 7}
        • organizationName
        • {id-at 10}
        • organizationalUnitName
        • {id-at 11}
        • title
        • {id-at 12}
        • postalAddress
        • {id-at 16}

        "В случае необходимости в сертификате ключа подписи на основании подтверждающих документов указываются ... квалификация владельца сертификата ключа подписи" (ст.6, п.2).

        Данные о квалификации владельца сертификата ключа ЭЦП должны указываться в атрибуте qualification. Данный атрибут не определен в международных рекомендациях (см.п.2) и подлежит регистрации.

        Если атрибуты countryName, stateOrProvinceName, localityName, organizationName, organizationalUnitName, title, postalAddress включены в расширение subjectDirectoryAttributes, они не должны включаться в поле subject.

        Для хранения иных сведений о владельце сертификата ключа подписи могут использоваться другие (уже зарегистрированные или подлежащие регистрации) атрибуты, не противоречащие ограничениям, накладываемым расширением certificatePolicies и другими документами, регламентирующими работу УЦ.

Приложение ASN1

id-at: OID value: 2.5.4
OID description: X.500 attribute types.
id-ce: OID value: 2.5.29
OID description: Object Identifier for Version 3 certificate extensions.

2.5.4.5 id-at-serialNumber
serialNumber ATTRIBUTE ::= {
  WITH SYNTAX               PrintableString(SIZE (1..64))
  EQUALITY MATCHING RULE    caseIgnoreMatch
  SUBSTRINGS MATCHING RULE  caseIgnoreSubstringsMatch
  ID                        id-at-serialNumber
}

(RFC 3039)
The serialNumber attribute type SHALL, when present, be used to differentiate between names where the subject field would otherwise be identical. This attribute has no defined semantics beyond ensuring uniqueness of subject names. It MAY contain a number or code assigned by the CA or an identifier assigned by a government or civil authority. It is the CA's responsibility to ensure that the serialNumber is sufficient to resolve any subject name collisions.

2.5.4.3 - id-at-commonName

OID value: 2.5.4.3

OID description: The common name attribute type specifies an identifier of an object. A common name is not a directory name; it is a (possibly ambiguous) name by which the object is commonly know in some limited scope (such as an organization) and conforms to the naming conventions of the country or culture with which it is associated.

commonName ATTRIBUTE ::= {
        SUBTYPE OF name
        WITH SYNTAX DirectoryString {ub-common-name}
        ID {id-at-commonName}
}

(RFC 3039: Qualified Certificate Profile)
OID value: 2.5.4.65

pseudonym ATTRIBUTE ::= {
        SUBTYPE OF name
        WITH SYNTAX DirectoryString
        ID {id-at-pseudonym}
}

OID value: 2.5.29.17

OID description: id-ce-subjectAltName This extension contains one or more alternative names, using any of a variety of name forms, for the entity that is bound by the CA to the certified public key.

subjectAltName EXTENSION ::= {
        SYNTAX GeneralNames
        IDENTIFIED BY id-ce-subjectAltName
}

GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName

GeneralName ::= CHOICE {
        otherName       [0] INSTANCE OF OTHER-NAME,
        rfc822Name      [1] IA5String,
        dNSName         [2] IA5String,
        (*) x400Address     [3] ORAddress,
        directoryName   [4] Name,
        ediPartyName    [5] EDIPartyName,
        uniformResourceIdentifier [6] IA5String,
        IPAddress       [7] OCTET STRING,
        registeredID    [8] OBJECT IDENTIFIER
}
(*) – произвольная строка.
OTHER-NAME ::= SEQUENCE {
        type-id OBJECT IDENTIFIER
        value   [0] EXPLICIT ANY DEFINED BY type-id
}

OID value: 2.5.4.16

OID description: The Postal Address attribute type specifies the address information for the physical delivery of postal messages by the postal authority to the named object. An attribute value for Postal Address will be typically composed of selected attributes from the MHS Unformatted Postal O/R Address version 1 according to CCITT Rec F.401 and limited to 6 lines of 30 characters each, including a Postal Country Name. Normally the information contained in such an address could include an addressee's name, street address, city, state or province, postal code and possibly a Post Office Box number depending on the specific requirements of the named object.

postalAddress ATTRIBUTE ::= {
        WITH SYNTAX PostalAddress
        EQUALITY MATCHING RULE caseIgnoreListMatch
        SUBSTRINGS MATCHING RULE caseIgnoreListSubstringsMatch
        ID id-at-postalAddress
}

PostalAddress ::= SEQUENCE SIZE (1..ub-postal-address)
        OF DirectoryString {ub-postal-string}

OID value: 2.5.4.12

OID description: The Title attribute type specifies the designated position or function of the object within an organzation. An attribute value for Title is string.

title ATTRIBUTE ::= {
        SUBTYPE OF name
        WITH SYNTAX DirectoryString {ub-title}
        ID id-at-title
}


id-ce-certificatePolicies OBJECT IDENTIFIER ::=  { id-ce 32 }

   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 for Internet policy qualifiers

   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 {
        visibleString    VisibleString  (SIZE (1..200)),
        bmpString        BMPString      (SIZE (1..200)),
        utf8String       UTF8String     (SIZE (1..200)) }


Состав сертификата ключа подписи © 2005-2012
LLC Top Cross
All Rights Reserved
 
 поиск
Google

 Цифровой Секретарь
клиентское программное обеспечение

на технологиях открытых ключей