2015-04-22 229 views
4

由CA簽名的X509數字證書包含這兩個字段。 1.簽名算法 2.簽名值 我瞭解「簽名算法」字段包含CA用來簽署證書的哈希算法。而「簽名值」是在哈希上計算的簽名。 我的問題是什麼是散列數據?它是CSR(證書籤名請求)的一部分還是整個CSR的公鑰?解釋X509數字證書的證書籤名值字段

回答

5

它既不是公鑰,也不是用於請求證書的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 tbsCertificateTBS = 要簽名)是:

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編碼是在其上簽名計算的數據。