數(shù)字證書介紹
數(shù)字證書簡(jiǎn)稱證書,它是一個(gè)經(jīng)證書授權(quán)中心(即在PKI中的證書認(rèn)證機(jī)構(gòu)CA)數(shù)字 簽名的文件,包含擁有者的公鑰及相關(guān)身份信息。 數(shù)字證書可以說是Internet上的安全護(hù)照或身份證。當(dāng)人們到其他國(guó)家旅行時(shí),用護(hù)照可以證實(shí)其身份,并被獲準(zhǔn)進(jìn)入這個(gè)國(guó)家。數(shù)字證書提供的是網(wǎng)絡(luò)上的身份證明。
數(shù)字證書技術(shù)解決了數(shù)字簽名技術(shù)中無法確定公鑰是指定擁有者的問題
證書結(jié)構(gòu)

證書結(jié)構(gòu).png
簡(jiǎn)單的證書包含一個(gè)公鑰、名稱以及證書授權(quán)中心的數(shù)字簽名。一般情況下證書中 還包括密鑰的有效期,頒發(fā)者(證書授權(quán)中心)的名稱,該證書的序列號(hào)等信息,證書的結(jié)構(gòu)遵循X.509 v3版本的規(guī)范。
書接上文,數(shù)字證書就是解決了數(shù)字簽名存在的問題進(jìn)而引入的,在數(shù)字簽名中,對(duì)方無法知道公鑰就是你的,因此在數(shù)字證書中,加上了一個(gè)可信的第三方——CA,由CA來給一個(gè)設(shè)備頒發(fā)證書,證書中包含以下的這些信息:
- 版本:即使用X.509的版本,目前普遍使用的是v3版本(0x2)。
- 序列號(hào):頒發(fā)者分配給證書的一個(gè)正整數(shù),同一頒發(fā)者頒發(fā)的證書序列號(hào)各不相同,可用與頒發(fā)者名稱一起作為證書唯一標(biāo)識(shí)。
- 簽名算法:頒發(fā)者頒發(fā)證書使用的簽名算法。
- 頒發(fā)者:頒發(fā)該證書的設(shè)備名稱,必須與頒發(fā)者證書中的主體名一致。通常為CA服務(wù)器的名稱。
- 有效期:包含有效的起、止日期,不在有效期范圍的證書為無效證書。
- 主體名:證書擁有者的名稱,如果與頒發(fā)者相同則說明該證書是一個(gè)自簽名證書。
- 公鑰信息:用戶對(duì)外公開的公鑰以及公鑰算法信息。
- 擴(kuò)展信息:通常包含了證書的用法、CRL的發(fā)布地址等可選字段。
- 簽名:頒發(fā)者用私鑰對(duì)證書信息的簽名。
版本和序列號(hào)無需解釋,就是CA設(shè)備用來管理證書使用的ID,簽名算法告訴用戶你該怎么驗(yàn)證這個(gè)簽名信息,頒發(fā)者就是由哪個(gè)CA頒發(fā)的,有效期也不用多說,用來控制證書的時(shí)效性,注意,這個(gè)一般是根據(jù)客戶端時(shí)間進(jìn)行判斷。主體名,這個(gè)項(xiàng)很重要,是告訴別人這個(gè)是頒發(fā)給誰的,在HTTPS應(yīng)用中,通常是域名或者域名的通配符。公鑰信息即為用戶的對(duì)外的公鑰,如果需要進(jìn)行數(shù)字加密傳輸時(shí),可以使用的。擴(kuò)展項(xiàng)一般用來添加一些補(bǔ)充信息,類似于備注。簽名,這也是整個(gè)證書的有效性的保證,算是身份證的防偽標(biāo)識(shí),當(dāng)對(duì)方校驗(yàn)?zāi)愕淖C書是否為真的時(shí)候,就是去用頒發(fā)者CA的公鑰進(jìn)行解密,和簽名數(shù)據(jù)的HASH摘要進(jìn)行對(duì)比。