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

Большинство подписанных сертификатов имеют длину 20 байт (поле "Footprint" в диспетчере сертификатов Windows).

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

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

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

1 ответ

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

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

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

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

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

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

Другие вопросы по тегам