古詩詞大全網 - 藝術簽名 - x509證書格式

x509證書格式

x509證書格式?壹、 X.509證書結構

x.509標準規定了證書可以包含什麽信息,並說明了記錄信息的方法。

X.509結構中包括版本號(integer)、序列號(integer)、簽名算法(object)、頒布者(set)、有效期(utc_time)、主體(set)、主體公鑰(bit_string)、主體公鑰算法(object)、簽名值(bit_string)。

使用ASN.1描述,我們可以將其抽象為以下結構

Certificate::=SEQUENCE{

tbsCertificate TBSCertificate,

signatureAlgorithm AlgorithmIdentifier,

signatureValue BIT STRING

}

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,

subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL,

extensions [3] EXPLICIT Extensions OPTIONAL

}

`

而本次實驗,我選擇使用從chrome上直接下載證書,此時我們可以看到,證書結構如下:

類 結構 信息 備註

TBSCertificate 版本信息 證書的使用版本 整數格式,0-V1,1-V2,2-V3

TBSCertificate 序列號 每個證書都有壹個唯壹的證書序列號 整數格式

TBSCertificate 簽名算法 得到簽名時使用的算法 有OID與之對應

TBSCertificate 頒發者 命名命規則壹般采用X.500格式 Name

TBSCertificate 有效期 通用的證書壹般采用UTC時間格式,計時範圍為1950-2049 Format:yymmddhhmssZ

TBSCertificate 使用者 使用證書的主體 Name

TBSCertificate 主體密鑰 證書所有人的公開密鑰 ?

Certificate 公鑰簽名算法 證書公鑰的加密算法 有OID與之對應

Certificate 簽名值 得到的簽名結果 ?

二、 數據結構

編碼方法

X509的編碼方法為TLV結構,使用T記錄當前數據的類型(type),使用L記錄當前數據的長度(length),使用V記錄當前數據的取值(value),其中,不同的type值對應不同的數據類型

Type 數據類型 編碼格式

01 Boolean 01;01;FF/00

02 Integer 長度大於7f時,長度n與0x80進行“位或”運算的結果賦給length的第壹個字節

03 Bit string 填充0成為8的倍數,Value的第壹個字節記錄填充數

04 Ectet string 04;len;val

05 Null value部分為空,壹***兩字節

06 Object Identifier V1.V2.V3.V4.V5....Vn (1)計算40*V1+V2作為第壹字節;(2)將Vi(i>=3)表示為128進制,每壹個128進制位作為壹個字節,再將除最後壹個字節外的所有字節的最高位置1;(3)依次排列,就得到了value部分

19 ASCII string 13;len;val

23 UTCtime yymmddhhmssZ

24 Generalize time yyyymmddhhmssZ

48 Sequence constructer 序列內所有項目的編碼的依次排列

49 Set constructer 集合內所有項目的編碼

160 Tag 對於簡單類型,type=80+tag序號;對於構造類型,type=A0+tag序號。length和value不變

數據結構

類的聲明:均使用string類型記錄數據,數據具體的內容已經在註釋中標出