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

Длина большинства подписанных сертификатов составляет 20 байт (поле «отпечаток» в диспетчере сертификатов Windows).

Как это может быть значение, подписанное органом по выдаче (сертификации)? Конкретно, подпись сертификата должна быть хешированным значением полей сертификата, подписанным закрытым ключом, и, таким образом, иметь по крайней мере длину модуля RSA (в случае подписи RSA) закрытого ключа эмитента и, таким образом... быть не менее 512 бит (64 байта).

Я должен что-то упустить... Если этот отпечаток — всего лишь хэш, то он не может быть подписанным сертификатом. Где на самом деле подпись сертификата? невозможно проверить, что сертификат действителен из простого хэша.

С уважением, Apple92.


person user255607    schedule 14.03.2011    source источник


Ответы (2)


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

Сам сертификат состоит из идентифицирующей информации и открытого ключа в структуре, называемой TBSCertificate (TBS — это сокращение от To Be Signed), плюс алгоритм подписи и сама подпись. Подробности смотрите в RFC5280.

person President James K. Polk    schedule 14.03.2011

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

Сертификат состоит из трех частей. (Подробности в https://tools.ietf.org/html/rfc5280#section- 4.1)

  • tbsCertificate: содержит имена субъекта и издателя, открытый ключ, связанный с субъектом, срок действия и т. д. Этот tbsCertificate (он же сертификат, который необходимо подписать) проверяет и подписывает эмитент (CA).
  • signalAlgorithm: идентификатор криптографического алгоритма, используемого эмитентом (CA) для подписи tbsCertificate выше. Алгоритм варьируется. Одним из наиболее распространенных алгоритмов является хеширование tbsCertificate (в формате DER) для создания дайджеста, который затем кодируется закрытым ключом эмитента (CA). Результат сохраняется в следующем поле, signatureValue.
  • signalValue: это поле заполняется результирующим значением, созданным эмитентом (CA) с использованием signatureAlgorithm выше.

Поведение составления структуры сертификата выше эмитентом (CA) называется signing.

person z3moon    schedule 08.08.2020