Опубликован: 26.01.2005 | Уровень: специалист | Доступ: платный | ВУЗ: Московский государственный университет имени М.В.Ломоносова
Лекция 4:

Инфраструктура Открытого Ключа (часть 4)

Расширенное использование ключа

Данное расширение определяет одну или более целей, для которых может использоваться сертифицированный открытый ключ, в дополнение к основным целям, указанным в расширении 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
Точки распространения CRL

Расширение для точек распространения CRL определяет, как может быть получена информация CRL. Расширение должно быть некритичным, но рекомендуется, чтобы оно поддерживалось как САs, так и приложениями. Далее мы подробно рассмотрим управление CRL.

Расширение cRLDistributionPoints является последовательностью DistributionPoint. DistributionPoint состоит из трех полей, каждое из которых является необязательным: distributionPoint, reasons и cRLIssuer. Хотя каждое из этих полей является необязательным, DistributionPoint не должно состоять только из поля reasons ; либо distributionPoint, либо cRLIssuer должно присутствовать. Если выпускающий сертификата не является выпускающим CRL, то поле cRLIssuer должно присутствовать и содержать имя выпускающего CRL. Если выпускающий сертификата является также и выпускающим CRL, то поле cRLIssuer должно быть опущено, и поле distributionPoint должно присутствовать. Если поле distributionPoint опущено, cRLIssuer должно присутствовать и включать имя, соответствующее записи Каталога Х.500 или LDAP, в которой размещен CRL.

Когда поле distributionPoint присутствует, оно содержит либо последовательность общих имен, либо единственное значение nameRelativeToCRLIssuer. Если расширение cRLDistributionPoints содержит общее имя типа URI, предполагается следующая семантика: URI является указателем на текущий CRL для соответствующих кодов причин и выпускается соответствующим cRLIssuer.

Если DistributionPointName содержит несколько значений, каждое имя описывает определенный механизм получения одного и того же CRL. Например, один и тот же CRL может быть доступен как по LDAP, так и по HTTP.

Если DistributionPointName содержит единственное значение nameRelativeToCRLIssuer, значение представляет собой фрагмент уникального имени. Фрагмент присоединяется к уникальному имени Х.500 выпускающего CRL для получения уникального указателя имени. Если поле cRLIssuer в DistributionPoint присутствует, то фрагмент имени присоединяется к уникальному имени выпускающего сертификат. DistributionPointName не должно использовать альтернативное nameRelativeToCRLIssuer, когда cRLIssuer содержит более одного уникального имени.

Если в DistributionPoint поле reasons опущено, CRL должен включать информацию об отмене для всех кодов причин.

Поле сRLIssuer определяет участника, который подписал и выпустил CRL. Если оно присутствует, cRLIssuer должно содержать, по крайней мере, одно уникальное имя (DN) X.500 и может включать другие формы имени. Так как cRLIssuer сравнивается с именем выпускающего CRL,

id-ce-cRLDistributionPoints OBJECT 
    IDENTIFIER ::= { id-ce 31 }
CRLDistributionPoints ::= 
  SEQUENCE SIZE (1..MAX) OF DistributionPoint
DistributionPoint ::= SEQUENCE {
  distributionPoint [0] DistributionPointName
      OPTIONAL,
  reasons   [1] ReasonFlags OPTIONAL,
  cRLIssuer [2] GeneralNames OPTIONAL 
}
DistributionPointName ::= CHOICE {
  fullName  [0]   GeneralNames,
  nameRelativeToCRLIssuer [1]   
      RelativeDistinguishedName 
}
ReasonFlags ::= BIT STRING {
  unused               (0),
  keyCompromise        (1),
  cACompromise         (2),
  affiliationChanged   (3),
  superseded           (4),
  cessationOfOperation (5),
  certificateHold      (6),
  privilegeWithdrawn   (7),
  aACompromise         (8) 
}
Предотвращение anyPolicy

Расширение предотвращения anyPolicy может быть использовано в сертификатах, выпущенных САs. Предотвращение any-policy указывает, что конкретный anyPolicy OID со значениями { 2 5 29 32 0 } не считается явно соответствующим остальным политикам сертификата. Значение определяет количество дополнительных сертификатов, которые могут появиться в пути до того как anyPolicy будет запрещена. Например, значение, равное единице, указывает, что anyPolicy может быть обработана в сертификатах, выпущенных субъектом данного сертификата, но не в дополнительных сертификатах в пути.

Данное расширение должно быть критическим.

id-ce-inhibitAnyPolicy OBJECT IDENTIFIER ::=
    { id-ce 54 }
InhibitAnyPolicy ::= SkipCerts
SkipCerts ::= INTEGER (0..MAX)

Самый свежий CRL (точка распространения Delta CRL)

Расширение с информацией о самом свежем CRL указывает, как должна быть получена информация о дельта CRL. Расширение должно быть некритичным.

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

id-ce-freshestCRL OBJECT IDENTIFIER ::=
    { id-ce 46 }
FreshestCRL ::= CRLDistributionPoints
Илья Сидоркин
Илья Сидоркин

Добрый день! Подскажите пожалуйста как и когда получить диплом, после сдичи и оплаты?????

Наталья Шульга
Наталья Шульга

Курс "информационная безопасность" .

Можно ли на него записаться на ПЕРЕПОДГОТОВКУ по данному курсу? Выдается ли диплом в бумажном варианте и высылается ли он по почте?

Р Алоев
Р Алоев
Россия
Татьяна Тренина
Татьяна Тренина
Россия, Челябинск