X509證書結構

X.509證書結構算法

Certificate ::= SEQUENCE {編碼

      tbsCertificate TBSCertificate,          --證書主體    .net

      signatureAlgorithm AlgorithmIdentifier, --證書籤名算法標識  3d

      signatureValue BIT STRING               --證書籤名算法值blog

}get

TBSCertificate ::= SEQUENCE {博客

                version [0] EXPLICIT Version DEFAULT v1, --證書版本號it

               serialNumber CertificateSerialNumber, --證書序列號,對同一CA所頒發的證書,序列號惟一標識證書io

               signature AlgorithmIdentifier, --證書籤名算法標識table

               issuer Name, --證書發行者名稱

               validity Validity, --證書有效期

               subject Name, --證書主體名稱

               subjectPublicKeyInfo SubjectPublicKeyInfo, --證書公鑰

               issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL, -- 證書發 行者ID(可選),只在證書版本二、3中才有

               subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL, --證書主體ID(可選),只在證書版本二、3中才有

              extensions [3] EXPLICIT Extensions OPTIONAL --證書擴展段(可選),只在證書版本二、3中才有 }

 

Version ::= INTEGER { v1(0), v2(1), v3(2) }

CertificateSerialNumber ::= INTEGER

Validity ::= SEQUENCE { notBefore Time, -- 證書有效期起始時間 notAfter Time } -- 證書有效期終止時間

Time ::= CHOICE { utcTime UTCTime, generalTime GeneralizedTime }

UniqueIdentifier ::= BIT STRING

SubjectPublicKeyInfo ::= SEQUENCE { algorithm AlgorithmIdentifier, -- 公鑰算法 subjectPublicKey BIT STRING } -- 公鑰值

Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension

Extension ::= SEQUENCE {

extnID OBJECT IDENTIFIER,

critical BOOLEAN DEFAULT FALSE,

extnValue OCTET STRING

}

證書實例

        本部分包含一個699字節的證書實例。證書版本號爲3。該證書包含如下內容:

(a) 證書序列號是17 (0x11);

(b) 證書使用DSA和SHA-1哈希算法簽名;

(c) 證書發行者的名字是OU=nist; O=gov; C=US

(d) 證書主體的名字是OU=nist; O=gov; C=US

(e) 證書的有效期從1997-6-30 到 1997-12-31;

(f) 證書包含一個1024 bit DSA 公鑰及其參數;

(g) 證書包含一個主體鍵標識擴展項 (h) 證書是一個CA證書(經過一個基本擴展項標識)

字節 內容         註釋 偏移量 (十六進制)

0000 30 82 02 b7 --CERTIFICATE, 30(SEQUENCE類型,下同), 82 (長度字段佔兩個字節),  02 b7(長度值695)

0004 30 82 02 77 -- tbsCertificate , 30(SEQUENCE類型,下同), 82 (長度字段佔兩個字節), 02 77(長度值631)

0008 a0 03 -- version, a0(Version),03(長度值3)

0010 02 01 02 -- 02 (Integer) 01(長度值1) 02 (證書版本3)

0013 02 01 11 -- serialNumber, 02 (Integer) 01(長度值1) 11 (證書序列號17)

0016 30 09 -- AlgorithmIdentifier, 30(Sequence), 09(長度值9),

0018 06 07 -- algorithm,06(OBJECT IDENTIFIER),07(長度7)

0020 2a 86 48 ce 38 04 03 --OID 1.2.840.10040.4.3: dsa-with-sha (06-OID, 07-Number 7)

0027 30 2a -- issuer ,30(Sequence), 2a (長度42)

0029 31 0b -- 31(SET), 0b(長度值11)

0031 30 09 -- 30(SEQUENCE),09 (長度值9)

0033 06 03 -- 06(OBJECT IDENTIFIER),03(長度3)

0035 55 04 06 -- OID 2.5.4.6: C (06-OID, 03-Number 3)

0038 13 02 --13(PrintableString),02(長度2)

0040 55 53 -- C = US 0042 31 0c -- 31(SET), 0c長度值12)

0044 30 0a -- 30(SEQUENCE), 0a(長度值10)

0046 06 03 --06(OBJECT IDENTIFIER),03(長度3)

0048 55 04 0a --OID 2.5.4.10: O

0051 13 03 --13(PrintableString),02(長度值2)

0053 67 6f 76 --O = gov

0056 31 0d -- 31(SET), 0d長度值13)

0058 30 0b -- 30(SEQUENCE), 0b(長度值11)

0060 06 03 --06(OBJECT IDENTIFIER),03(長度3)

0062 55 04 0b -- OID 2.5.4.11: OU (06-OID, 03-Number 3)

0065 13 04 -- 13(PrintableString), 04(長度值4)

0067 6e 69 73 74 -- OU = nist 0071 30 1e -- validity, 30(SEQUENCE), 1e(長度值30) 0073 17 0d -- notBefor, 17(UTCTime), 0d(長度13)

0075 39 37 30 36 33 30 30 30 30 30 30 30 5a --'970630000000Z'

0088 17 0d -- notAfter, 17(UTCTime), 0d(長度13)

0090 39 37 31 32 33 31 30 30 30 30 30 30 5a --'971231000000Z'

0103 30 2a -- subject, 30(SEQUENCE), 2a(長度42)

0105 31 0b -- 31(Set), 0b (長度 11)

0107 30 09 --30(SEQUENCE), 09(長度9)

0109 06 03 --06(OID), 03(長度3)

0111 55 04 06 -- OID 2.5.4.6: C

0114 13 02 -- 13(PrintableString), 02(長度2)

0116 55 53 -- C = US

0118 31 0c -- 31(SET), 0c(長度12)

0120 30 0a --30(SEQUENCE), 0a(長度10)

0122 06 03 -- 06(OID, 03(長度 3)

0124 55 04 0a -- OID 2.5.4.10: O

0127 13 03 --13(PrintableString), 03(長度3)

0129 67 6f 76 -- O = gov

0132 31 0d --31(Set), 0d(長度13)

0134 30 0b --30(Sequence), 0b(長度11)

0136 06 03 --06(OID), 03(長度 3)

0138 55 04 0b -- OID 2.5.4.11,OU

0141 13 04 --13(PrintableString), 04(長度4)

 0143 6e 69 73 74 --OU = nist

0147 30 82 01 b4 -- sujectPublicKeyInfo, 30(Sequence), 82(長度字段2個字節), 01 b4(長度436)

0151 30 82 01 29 --30(Sequence), 82(長度字段2個字節), 01 29(長度297)

0155 06 07 --06(OID), 07(長度 7)

0157 2a 86 48 ce 38 04 01 -- OID 1.2.840.10040.4.1: dsa

0164 30 82 01 1c30 --(Sequence), 82(長度字段2個字節), 01 1c(長度284)

0168 02 81 80 -- 02(Integer), 81(長度字段佔一字節), 80(長度128)

d4 38 02 c5 35 7b d5 0b a1 7e 5d 72 59 63 55 d3 45 56 ea e2 25 1a 6b c5 a4 ab aa 0b d4 62 b4 d2 21 b1 95 a2 c6 01 c9 c3 fa 01 6f 79 86 83 3d 03 61 e1 f1 92 ac bc 03 4e 89 a3 c9 53 4a f7 e2 a6 48 cf 42 1e 21 b1 5c 2b 3a 7f ba be 6b 5a f7 0a 26 d8 8e 1b eb ec bf 1e 5a 3f 45 c0 bd 31 23 be 69 71 a7 c2 90 fe a5 d6 80 b5 24 dc 44 9c eb 4d f9 da f0 c8 e8 a2 4c 99 07 5c 8e 35 2b 7d 57 8d

0299 02 14 --02(Integer), 14(長度20) a7 83 9b f3 bd 2c 20 07 fc 4c e7 e8 9f f3 39 83 51 0d dc dd

0321 02 81 80 --02(Integer), 81(長度字段佔一字節), 80(長度128) 0e 3b 46 31 8a 0a 58 86 40 84 e3 a1 22 0d 88 ca 90 88 57 64 9f 01 21 e0 15 05 94 24 82 e2 10 90 d9 e1 4e 10 5c e7 54 6b d4 0c 2b 1b 59 0a a0 b5 a1 7d b5 07 e3 65 7c ea 90 d8 8e 30 42 e4 85 bb ac fa 4e 76 4b 78 0e df 6c e5 a6 e1 bd 59 77 7d a6 97 59 c5 29 a7 b3 3f 95 3e 9d f1 59 2d f7 42 87 62 3f f1 b8 6f c7 3d 4b b8 8d 74 c4 ca 44 90 cf 67 db de 14 60 97 4a d1 f7 6d 9e 09 94 c4 0d

0452 03 81 84 --03(BitString), 81(長度字段佔一字節), 84(長度132) 02 81 80 aa 98 ea 13 94 a2 db f1 5b 7f 98 2f 78 e7 d8 e3 b9 71 86 f6 80 2f 40 39 c3 da 3b 4b 13 46 26 ee 0d 56 c5 a3 3a 39 b7 7d 33 c2 6b 5c 77 92 f2 55 65 90 39 cd 1a 3c 86 e1 32 eb 25 bc 91 c4 ff 80 4f 36 61 bd cc e2 61 04 e0 7e 60 13 ca c0 9c dd e0 ea 41 de 33 c1 f1 44 a9 bc 71 de cf 59 d4 6e da 44 99 3c 21 64 e4 78 54 9d d0 7b ba 4e f5 18 4d 5e 39 30 bf e0 d1 f6 f4 83 25 4f 14 aa 71 e1

0587 a3 32 --a3(extentions), 32(長度50)

0589 30 30 --30(Sequence), 30(長度50)

0591 30 0f --30(Sequence), 0f(長度15)

0593 06 03 --06(OID), 03(長度3)

0595 55 1d 13 -- OID 2.5.29.19(basicConstraints)

0598 01 01 ff --01(BOOLEAN), 01(長度1), ff(True)

0601 04 05 --04(OctetString), 05(長度5)

0603 30 03 01 01 ff

0608 30 1d --30(Sequence), 1d(長度29)

0610 06 03 --06(OID), 03(長度3)

0612 55 1d 0e -- OID 2.5.29.14: subjectKeyIdentifier

0615 04 16 --04(OctetString), 16(長度22) 04 14 e7 26 c5 54 cd 5b a3 6f 35 68 95 aa d5 ff 1c 21 e4 22 75 d6 0639 30 09 --30(Sequence), 09(長度9)

0641 06 07 --06(OID), 07(長度7)

0643 2a 86 48 ce 38 04 03 -- OID 1.2.840.10040.4.3: dsa-with-sha

0650 03 2f -- signature,03(BitString), 2f(長度47) 30 2c 02 14 a0 66 c1 76 33 99 13 51 8d 93 64 2f ca 13 73 de 79 1a 7d 33 02 14 5d 90 f6 ce 92 4a bf 29 11 24 80 28 a6 5a 8e 73 b6 76 02 68

 

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/jiadelin/archive/2008/06/18/2559984.aspx

這個做者的博文裏有不少關於密碼學的介紹,好比Base64編碼介紹,Asn1結構介紹等等

相關文章
相關標籤/搜索