一纷捞、 什么是數(shù)字證書
數(shù)字安全證書是一個(gè)經(jīng)證書授權(quán)中心數(shù)字簽名的包含公開密鑰擁有者信息以及公開密鑰的文件痢虹。是由證書簽證機(jī)關(guān)(CA)簽發(fā)的對(duì)用戶的公鑰的認(rèn)證。
最簡單的證書包含一個(gè)公開密鑰主儡、名稱以及證書授權(quán)中心的數(shù)字簽名奖唯。一般情況下證書中還包括密鑰的有效時(shí)間,發(fā)證機(jī)關(guān)(證書授權(quán)中心)的名稱糜值,該證書的序列號(hào)等信息丰捷,證書的格式遵循ITU x.509國際標(biāo)準(zhǔn)。
數(shù)字證書就好比我們生活中的身份證臀玄,現(xiàn)實(shí)中瓢阴,身份證由公安機(jī)關(guān)簽發(fā),而網(wǎng)絡(luò)用戶的身份憑證由數(shù)字證書頒發(fā)認(rèn)證機(jī)構(gòu)—CA簽發(fā)健无,只有經(jīng)過CA簽發(fā)的證書在網(wǎng)絡(luò)中才具備可認(rèn)證性荣恐。
二、X.509證書包含了什么
版本號(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)用來對(duì)數(shù)字證書進(jìn)行簽名的特定公鑰算法的名稱少漆。
頒發(fā)者名稱:實(shí)際頒發(fā)該證書的證書頒發(fā)機(jī)構(gòu)的標(biāo)識(shí)。
有效期:數(shù)字證書保持有效的時(shí)間段硼被,并包含起始日期和過期日期示损。
使用者名稱:數(shù)字證書所有者的姓名。
使用者公鑰信息:與數(shù)字證書所有者關(guān)聯(lián)的公鑰以及與該公鑰關(guān)聯(lián)的特定公鑰算法嚷硫。
頒發(fā)者唯一標(biāo)識(shí)符:可以用來唯一標(biāo)識(shí)數(shù)字證書頒發(fā)者的信息检访。
使用者唯一標(biāo)識(shí)符:可以用來唯一標(biāo)識(shí)數(shù)字證書所有者的信息。
擴(kuò)充信息:與證書的使用和處理有關(guān)的其他信息仔掸。
證書頒發(fā)機(jī)構(gòu)的數(shù)字簽名:使用證書算法標(biāo)識(shí)符字段中指定的算法以及證書頒發(fā)機(jī)構(gòu)的私鑰進(jìn)行的實(shí)際數(shù)字簽名脆贵。
三、數(shù)字證書頒發(fā)過程
數(shù)字證書頒發(fā)過程如下:用戶產(chǎn)生了自己的密鑰對(duì)起暮,并將公共密鑰及部分個(gè)人身份信息傳送給一家認(rèn)證中心卖氨。認(rèn)證中心在核實(shí)身份后,將執(zhí)行一些必要的步驟负懦,以確信請(qǐng)求確實(shí)由用戶發(fā)送而來筒捺,然后,認(rèn)證中心將發(fā)給用戶一個(gè)數(shù)字證書纸厉,該證書內(nèi)附了用戶和他的密鑰等信息系吭,同時(shí)還附有對(duì)認(rèn)證中心公共密鑰加以確認(rèn)的數(shù)字證書。當(dāng)用戶想證明其公開密鑰的合法性時(shí)颗品,就可以提供這一數(shù)字證書村斟。
數(shù)字證書的產(chǎn)生:認(rèn)證中心把用戶證書的基本信息做哈希算法,然后用自己的私鑰對(duì)哈希值進(jìn)行加密抛猫。
數(shù)字證書依賴公鑰加密來證明證書自己的身份。當(dāng)頒發(fā)數(shù)字證書時(shí)孩灯,證書頒發(fā)機(jī)構(gòu)使用它自己的私鑰對(duì)證書進(jìn)行簽名闺金。若要驗(yàn)證數(shù)字證書的真實(shí)性,用戶可以獲取該證書頒發(fā)機(jī)構(gòu)的公鑰峰档,并對(duì)證書使用該公鑰败匹,以確定它是否是由該證書頒發(fā)機(jī)構(gòu)簽名的。
四讥巡、數(shù)字證書可以用在什么地方
隨著Internet的普及掀亩、各種電子商務(wù)活動(dòng)和電子政務(wù)活動(dòng)的飛速發(fā)展,數(shù)字證書開始廣泛地應(yīng)用到各個(gè)領(lǐng)域之中欢顷,目前主要包括:發(fā)送安全電子郵件槽棍、訪問安全站點(diǎn)、網(wǎng)上招標(biāo)投標(biāo)、網(wǎng)上簽約炼七、網(wǎng)上訂購缆巧、安全網(wǎng)上公文傳送、網(wǎng)上繳費(fèi)豌拙、網(wǎng)上繳稅陕悬、網(wǎng)上炒股、網(wǎng)上購物和網(wǎng)上報(bào)關(guān)等按傅。
五捉超、數(shù)字證書和公鑰基礎(chǔ)結(jié)構(gòu)
公鑰加密的優(yōu)勢之一是,由于用一個(gè)密鑰對(duì)取代了大量的對(duì)稱密鑰唯绍,因此減少了密鑰管理的工作量拼岳。數(shù)字證書進(jìn)一步增強(qiáng)了這一優(yōu)勢,它解決了公鑰的分發(fā)和管理問題推捐。但是裂问,數(shù)字證書無法進(jìn)行自我管理。由于數(shù)字證書固有的廣為分發(fā)的特點(diǎn)牛柒,因此堪簿,設(shè)計(jì)這些證書的管理方案時(shí),必須考慮到數(shù)字證書的分發(fā)性這一特點(diǎn)皮壁。數(shù)字證書需要一種有效的基礎(chǔ)結(jié)構(gòu)椭更,以便在證書的使用環(huán)境中管理證書。公鑰基礎(chǔ)結(jié)構(gòu)(PKI)與數(shù)字證書是不可分割的蛾魄。PKI負(fù)責(zé)頒發(fā)證書虑瀑,它通過目錄確保這些證書的分發(fā),并驗(yàn)證證書滴须。PKI負(fù)責(zé)基礎(chǔ)工作廉赔,其中包括支持?jǐn)?shù)字證書帝簇,并使它們可以提供S/MIME等服務(wù)所依賴的功能。
六、X.509證書實(shí)現(xiàn)過程
使用X.509铁孵、SSL協(xié)議缸逃、OPSSL庫實(shí)現(xiàn)身份認(rèn)證
首先使用OPSSL產(chǎn)生X.509數(shù)字證書督禽,編寫簡單的Client程序和Server程序讲婚,實(shí)現(xiàn)Client程序與Server程序之間基于X509證書和SSL協(xié)議身份認(rèn)證和通信加密,服務(wù)器能夠接收并且顯示客戶端發(fā)送來的文字消息待德。
總結(jié):
1君丁、用socket建立鏈接;
2将宪、鏈接成功后绘闷,進(jìn)行SSL握手過程(主要為了安全通信)利用SSL握手協(xié)議的時(shí)候涉及到X.509證書的驗(yàn)證橡庞,只有當(dāng)證書驗(yàn)證成功以后,客戶端和服務(wù)器端才能進(jìn)行安全通信簸喂;
3毙死、雙方互相通信。
參考網(wǎng)址:
2.http://blog.51cto.com/h2appy/1181234
3.http://yale.iteye.com/blog/1675344