新聞中心
數(shù)字證書(CA證書)是由可信任的第三方權(quán)威機(jī)構(gòu)(CA中心)頒發(fā)給個(gè)人或企業(yè)用戶,用來(lái)驗(yàn)證身份、數(shù)據(jù)簽名、數(shù)據(jù)加密等操作。CA證書是整個(gè)公鑰基礎(chǔ)設(shè)施(PKI,Public Key Infrastructure)體系的核心,目前國(guó)內(nèi)CA中心由國(guó)家密碼管理局管理,基本上每個(gè)省都有一個(gè)CA中心,用來(lái)簽發(fā)省內(nèi)CA證書和提供相關(guān)應(yīng)用。

數(shù)字證書是一個(gè)經(jīng)證書授權(quán)中心數(shù)字簽名的包含公開(kāi)密鑰擁有者信息以及公開(kāi)密鑰的文件。最簡(jiǎn)單的證書包含一個(gè)公開(kāi)密鑰、名稱以及證書授權(quán)中心的數(shù)字簽名。目前,數(shù)字證書均采用X.509國(guó)際標(biāo)準(zhǔn)。數(shù)字證書的結(jié)構(gòu)包含如下信息。
版本號(hào):書所遵循的X.509標(biāo)準(zhǔn)的版本。
序列號(hào):唯一標(biāo)識(shí)證書且由證書頒發(fā)機(jī)構(gòu)頒發(fā)的編號(hào)。
證書算法標(biāo)識(shí):證書頒發(fā)機(jī)構(gòu)用來(lái)對(duì)數(shù)字證書進(jìn)行簽名的特定公鑰算法的名稱。
頒發(fā)者名稱:實(shí)際頒發(fā)該證書的證書頒發(fā)機(jī)構(gòu)的標(biāo)識(shí)。
有效期:數(shù)字證書保持有效的時(shí)間段,并包含起始日期和過(guò)期日期。
使用者名稱:數(shù)字證書所有者的姓名。
使用者公鑰信息:與數(shù)字證書所有者關(guān)聯(lián)的公鑰以及與該公鑰關(guān)聯(lián)的特定公鑰算法。
頒發(fā)者唯一標(biāo)識(shí)符:可以用來(lái)唯一標(biāo)識(shí)數(shù)字證書頒發(fā)者的信息。
使用者唯一標(biāo)識(shí)符:可以用來(lái)唯一標(biāo)識(shí)數(shù)字證書所有者的信息。
擴(kuò)充信息:與證書的使用和處理有關(guān)的其他信息。
證書頒發(fā)機(jī)構(gòu)的數(shù)字簽名:使用證書算法標(biāo)識(shí)符字段中指定的算法以及證書頒發(fā)機(jī)構(gòu)的私鑰進(jìn)行的實(shí)際數(shù)字簽名。
數(shù)字證書就是對(duì)公鑰加上認(rèn)證機(jī)構(gòu)的數(shù)字簽名所構(gòu)成的。要驗(yàn)證公鑰的數(shù)字簽名,需要通過(guò)某種途徑獲取認(rèn)證機(jī)構(gòu)自身的合法公鑰。下面以數(shù)字簽名和散列算法的實(shí)際應(yīng)用例,來(lái)說(shuō)明數(shù)字證書的基本用途。
(1)Bob有兩把鑰匙,一把是公鑰,另一把是私鑰。
(2)Bob把公鑰送給他的朋友們Craol、Alice每人一把。
(3)Alice要給Bob寫一封保密的信。她寫完后用Bob的公鑰加密,就可以達(dá)到保密的效果,如圖1所示。
圖1 Alice信件加密
(4)Bob收信后,用私鑰解密,就看到了信件內(nèi)容。這里要強(qiáng)調(diào)的是,只要Bob的私鑰不泄露,這封信就是安全的,即使落在別人手里,也無(wú)法解密,如圖2所示。
圖2 信件解密
(5)Bob給Alice回信,決定采用“簽名”寫完后先用散列函數(shù),生成信件的摘要(Digest),如圖3所示。
圖3 生成信件摘要
(6)然后,Bob使用私鑰,對(duì)這個(gè)摘要加密,生成“數(shù)字簽名”(Signature),如圖4所示。
圖4 生成數(shù)字簽名
(7)Bob將這個(gè)簽名,附在信件下面,一起發(fā)給Susan,如圖5所示。
圖5 附簽名信件
(8)Alice 收信后,取下數(shù)字簽名,用 Bob 的公鑰解密,得到信件的摘要。由此證明,這封信確實(shí)是Bob發(fā)出的,如圖6所示。
圖6 公鑰解密
(9)Alice再對(duì)信件本身使用散列函數(shù),將得到的結(jié)果,與上一步得到的摘要進(jìn)行對(duì)比。如果兩者一致,就證明這封信未被修改過(guò),如圖7所示。
圖7 修改驗(yàn)證
(10)復(fù)雜的情況出現(xiàn)了。Craol想欺騙Alice,他偷偷使用了Susan的電腦,用自己的公鑰換走了Bob的公鑰。此時(shí),Alice實(shí)際擁有的是Craol的公鑰,但是還以為這是Bob的公鑰。因此,Craol 就可以冒充 Bob,用自己的私鑰做成“數(shù)字簽名”寫信給 Alice,讓 Alice用假的Bob公鑰進(jìn)行解密。
(11)后來(lái),Alice感覺(jué)不對(duì)勁,發(fā)現(xiàn)自己無(wú)法確定公鑰是否真的屬于Bob。她想到了一個(gè)辦法,要求Bob去找“證書中心”(CA,Certificate Authority),為公鑰做認(rèn)證。證書中心用自己的私鑰,對(duì)Bob的公鑰和一些相關(guān)信息一起加密,生成“數(shù)字證書”(Digital Certificate),如圖8所示。
圖8 生成數(shù)字證書
(12)Bob拿到數(shù)字證書以后,就可以放心了。以后再給Alice寫信,只要在簽名的同時(shí),再附上數(shù)字證書就可以了,如圖9所示。
圖9 附證書信件
(13)Alice收信后,用CA的公鑰解開(kāi)數(shù)字證書,就可以拿到Bob真實(shí)的公鑰了,然后就能證明“數(shù)字簽名”是否真的是Bob簽的,如圖10所示。
圖10 確認(rèn)簽名
基于數(shù)字證書的安全認(rèn)證如下。
認(rèn)證是安全通信的前提,如果認(rèn)證出問(wèn)題,A不是和A想要聊天的人B在聊天,而是和一個(gè)C(假冒B)在聊天,則接下來(lái)所有的安全措施都是白搭。以目前常用的數(shù)字證書(Digital Certificate)認(rèn)證為例。
CA(Certificate Agent)存放A、B數(shù)字證書,在數(shù)字證書里包含有各自的RSA公鑰與加密算法。
A、B各自保管自己的RSA私鑰與加密算法,RSA公鑰與私鑰類似鎖與鑰匙的關(guān)系,即RSA私鑰加密,可以用RSA公鑰解密,反過(guò)來(lái)亦是如此。
A與B安全通信認(rèn)證過(guò)程如下。
(1)A向CA請(qǐng)求B的數(shù)字證書。
(2)CA把B的數(shù)字證書做輸入?yún)?shù),生成一個(gè)散列。
(3)CA用自己的私鑰加密散列,生成一個(gè)數(shù)字簽名(Digital Signature)
(4)CA把數(shù)字簽名附在B的數(shù)字證書之后,即B的數(shù)字證書+CA數(shù)字簽名,發(fā)送給A。
(5)A擁有CA的公鑰(預(yù)裝或離線方式獲得),可以解密CA的數(shù)字簽名(CA私鑰加密),得到散列,同時(shí)對(duì)接收到的 B 的數(shù)字證書做散列運(yùn)算,也得到一個(gè)散列,如果兩個(gè)散列相等,則認(rèn)為此證書安全可靠,在傳輸途中沒(méi)有被篡改,稱這個(gè)過(guò)程為數(shù)據(jù)完整性(Data Integrity)保護(hù)。
(6)A請(qǐng)求認(rèn)證B,B用自己的私鑰加密自己的身份信息,發(fā)送給A,由于A已經(jīng)從CA處獲得B的公鑰,所以可以解密B的加密報(bào)文。既然公鑰與私鑰是一對(duì)一的關(guān)系,由于只有B自己知道私鑰,以此邏輯推斷,A通信的對(duì)象為真實(shí)的B。
(7)B認(rèn)證A的過(guò)程類似。
新聞名稱:網(wǎng)絡(luò)安全攻防:密碼技術(shù)之?dāng)?shù)字證書
當(dāng)前鏈接:http://fisionsoft.com.cn/article/ccehegg.html


咨詢
建站咨詢
