почему openssl отправляет сертификат CA в протоколе OCSP - PullRequest
3 голосов
/ 06 июля 2011
Программа

openssl ocsp, задокументированная на http://www.openssl.org/docs/apps/ocsp.html, требует, чтобы клиент отправил сертификат И сертификат CA в ocsp resopnder. Однако RFC 2560 для OCSP этого не требует. Разве ответчик OCSP не должен быть предварительно настроен с сертификатом CA и иметь возможность определить местонахождение конкретного CA из сертификата, который ему отправляет клиент? Спасибо за любые ответы

1 Ответ

7 голосов
/ 06 июля 2011

Приложение openssl ocsp на самом деле не отправляет полный сертификат эмитента респонденту. Если вы посмотрите на определение CertID (RFC 2560)

CertID          ::=     SEQUENCE {
       hashAlgorithm       AlgorithmIdentifier,
       issuerNameHash      OCTET STRING, -- Hash of Issuer's DN
       issuerKeyHash       OCTET STRING, -- Hash of Issuers public key
       serialNumber        CertificateSerialNumber }

есть два поля, связанных с эмитентом, IssueNameHash и isserKeyHash. Команда openssl ocsp для удобства берет весь сертификат эмитента и использует этот сертификат для создания этих двух полей для окончательного запроса.

Ответчик OCSP не может быть предварительно сконфигурирован для одного сертификата ЦС в целом, так как большинство ЦС выпускают несколько сертификатов суб-ЦС для своего «корневого сертификата» - т.е. ЦС обычно имеет один корневой сертификат ЦС, выданный в его имени и проблемах несколько сертификатов под-CA под этим корневым сертификатом самостоятельно, например sub 1, sub 2 и так далее. Помимо административных или семантических последствий это дает дополнительное преимущество, заключающееся в том, что компрометация ключа для одного из подчиненных центров сертификации менее серьезна, чем для корневого сертификата. Повседневная работа выполняется от имени подчиненных ЦС, тогда как корневой ключ время от времени используется только для обновления сертификатов вспомогательных ЦС и может оставаться максимально безопасным в течение всего остального времени.

Из-за этих подчиненных CA ответчик OCSP не может легко различить, какой подчиненный CA выдал сертификат, который должен быть проверен, и ему понадобится эта информация, чтобы определить, для какого отзыва сертификата клиента необходимо проверить.

Можно утверждать, что респондент мог определить это только по серийному номеру, но именно поэтому только комбинация серийного номера эмитента и может однозначно идентифицировать сертификат: возможно, что два CA (в наши сценарии (дополнительные CA) выдают сертификаты с одинаковым серийным номером. Вот почему протокол требует, чтобы клиенты также отправляли информацию об эмитенте.

...