Я думаю, что вы уже правильно поняли, но я думаю, что могу кратко подытожить.
Центры сертификации, будь то корневой центр сертификации или любые суб-ЦС, используются для подписи других сертификатов. Таким образом, для проверки доверительного пути к доверенному сертификату — обычно корневому — им необходимо иметь открытый ключ, который можно использовать для проверки имеющихся у них сертификатов. изданный. Это соответствует расширение использования ключа что указывает на такое использование:
keyCertSign
бит устанавливается, когда открытый ключ субъекта
используется для проверки подписей на сертификатах открытых ключей. Если
keyCertSign
установлен, то бит cA в базовом
ограничения (раздел 4.2.1.9) также ДОЛЖНЫ быть утверждены.
cRLSign
бит устанавливается, когда используется открытый ключ субъекта
для проверки подписей в списках отозванных сертификатов (например,
CRL, дельта CRL или ARL).
Обычно оба этих использования ключей активируются одновременно, поскольку центр сертификации обычно отвечает за выдачу сертификатов, а также за их отзыв. Это соответствует использованию открытого ключа для проверки подписи сертификатов, выданных центром сертификации.
Конечные сертификаты можно использовать для чего угодно, кроме сертификатов подписи (по определению) и CRL (по общепринятой практике). Это означает, что использование ключа может указывать на что-то еще. Конечно, тип пары ключей и открытого ключа должны быть такими, чтобы использование ключа могло быть выполнено:
Использование ключа |
Кусочек |
Открытый ключ должен выполнять |
цифровая подпись |
0 |
Проверка подписи |
неотказуемость |
1 |
Проверка подписи |
ключШифрование |
2 |
Шифрование (инкапсуляция или упаковка ключа) |
шифрование данных |
3 |
Шифрование (обычно все еще инкапсуляция ключей для гибридных криптосистем) |
ключСоглашение |
4 |
Ключевое соглашение (например, Диффи-Хеллман) |
keyCertSign |
5 |
Проверка подписи |
cRLSign |
6 |
Проверка подписи |
encipherOnly |
7 |
Шифрование (инкапсуляция или упаковка ключа) |
decipherOnly |
8 |
Шифрование (инкапсуляция или упаковка ключа) |
Примечание:
- В TLS 1.3 листовой ключ используется исключительно для аутентификации объекта, что соответствует
цифровая подпись
.
Вот таблица, в которой показано, как можно использовать определенные типы ключей.
Тип ключа |
Подпись |
Инкапсуляция |
Ключевое соглашение |
RSA-ключи |
Да |
Да |
Нет |
ключи DH |
Нет |
Нет |
Да |
ключи DSA |
Да |
Нет |
Нет |
Ключи EC (кривые Koblitz и Prime) |
Да |
Нет |
Да |
Эд25519 и Эд448 |
Да |
Нет |
Нет |
X25519 и X448 |
Нет |
Нет |
Да |
В случае с открытыми ключами действия будут заключаться в подписи. проверка и шифрование для первых двух использований.
Для установления ключа можно использовать как согласование ключей, так и инкапсуляцию ключей. Однако, если ключи являются частью постоянного сертификата, их нельзя использовать для прямой секретности, поэтому соглашение о ключах, например, TLS 1.3 выполняется с использованием эфемерные ключи, а ключи подписи используются для требуемой аутентификации объекта.
Алгоритмы согласования ключей можно использовать для реализации интегрированной схемы шифрования или IES. Таким образом, любая пара ключей согласования ключей также может косвенно использоваться для шифрования.
Эти таблицы являются оригинальным содержанием; в X.509 RFC прямо не упоминается, что открытый ключ должен быть совместим с целью, указанной в использовании ключа - похоже, подразумевается, что они должны быть совместимы.