В чем разница между основными ограничениями расширений x.509 V3 и использованием ключа для создания сертификата CA? - PullRequest
15 голосов
/ 26 апреля 2011

Эти два действия, кажется, делают одно и то же:

  • с использованием расширения Basic Constraints в сертификате X.509 для обозначения того, что это сертификат CA и
  • с использованием расширения Key Usage , например, для обозначения того, что открытый ключ можно использовать для подписи сертификата.

В чем разница между этими расширениями?
Есть ли у нихслужить одной цели или дополнять друг друга?

Ответы [ 2 ]

16 голосов
/ 27 апреля 2011

«Использование ключа» определяет, что можно сделать с ключом, содержащимся в сертификате.Примеры использования: шифрование, подпись, подписывание сертификатов, подписывание CRL.

«Основные ограничения» определяет, является ли субъект сертификатов центром сертификации, которому разрешено выдавать дочерние сертификаты.

Для сертификата, который может использоваться для подписи сертификатов, информация в некотором смысле дублируется:

  • X509v3 Основные ограничения: CA: TRUE --- Может подписывать сертификаты
  • Ключ X509v3Использование: Key Cert Sign --- Может подписывать сертификаты

Но «Основные ограничения» также будут указывать максимальную глубину действительной цепочки сертификации.

Хотя она дублируется, вам необходимоукажите оба, в соответствии с RFC 3280 --- X.509 .Это соответствующий параграф из RFC (стр. 29):

Бит keyCertSign устанавливается, когда предметный открытый ключ используется для проверки подписи на сертификатах открытого ключа.Если бит keyCertSign установлен, то ДОЛЖЕН также быть установлен бит cA в расширении базовых ограничений (раздел 4.2.1.10).

1 голос
/ 26 апреля 2011

Использование ключа описывает предполагаемые цели сертификата.

Расширение Basic Constraints описывает, насколько глубокой может быть цепочка сертификатов, имеющая сертификат.Другими словами, это расширение используется СА для ограничения активности их подчиненных СА при выдаче сертификата подчиненного СА.Если CA верхнего уровня получает под-CA, это позволяет под-CA выдавать сертификаты конечного пользователя, но не позволяет под-CA иметь свои собственные под-CA.

...