【发布时间】:2015-06-29 11:30:09
【问题描述】:
由 CA 签名的 X509 数字证书包含这两个字段以及其他字段。 1.签名算法 2.签名值 我了解“签名算法”字段包含 CA 用于签署证书的哈希算法。 “签名值”是在哈希上计算的签名。 我的问题是散列的数据是什么?是作为 CSR(证书签名请求)的一部分还是整个 CSR 的公钥?
【问题讨论】:
标签: digital-signature x509 digital-certificate
由 CA 签名的 X509 数字证书包含这两个字段以及其他字段。 1.签名算法 2.签名值 我了解“签名算法”字段包含 CA 用于签署证书的哈希算法。 “签名值”是在哈希上计算的签名。 我的问题是散列的数据是什么?是作为 CSR(证书签名请求)的一部分还是整个 CSR 的公钥?
【问题讨论】:
标签: digital-signature x509 digital-certificate
形成签名输入的既不是公钥本身,也不是用于请求证书的 CSR。 根据RFC 5280 - Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile:
signatureValue 字段包含根据计算得出的数字签名 ASN.1 DER 编码的 tbsCertificate。 ASN.1 DER 编码 tbsCertificate 用作签名函数的输入。
syntax of tbsCertificate (tbs = 待签名) 是:
TBSCertificate ::= SEQUENCE {
version [0] EXPLICIT Version DEFAULT v1,
serialNumber CertificateSerialNumber,
signature AlgorithmIdentifier,
issuer Name,
validity Validity,
subject Name,
subjectPublicKeyInfo SubjectPublicKeyInfo,
issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL,
-- If present, version MUST be v2 or v3
subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL,
-- If present, version MUST be v2 or v3
extensions [3] EXPLICIT Extensions OPTIONAL
-- If present, version MUST be v3
}
此结构的 DER 编码是计算签名的数据。
【讨论】: