Java加密与解密的艺术~数字证书详解
????????數(shù)字證書具備常規(guī)加密/解密必要的信息,包含簽名算法,可用于網(wǎng)絡(luò)數(shù)據(jù)加密/解密交互,標(biāo)識網(wǎng)絡(luò)用戶(計(jì)算機(jī))身份。數(shù)字證書為發(fā)布公鑰提供了一種簡便的途徑,其數(shù)字證書則成為加密算法以及公鑰的載體。依靠數(shù)字證書,我們可以構(gòu)建一個簡單的加密網(wǎng)絡(luò)應(yīng)用平臺。
?? ?數(shù)字證書(Digital Certificate)也稱為電子證書,類似于我們生活中的身份證,用于標(biāo)識網(wǎng)絡(luò)中的用戶(計(jì)算機(jī))身份。在現(xiàn)實(shí)生活中,我們的身份證需要由公安機(jī)關(guān)的簽發(fā),而網(wǎng)絡(luò)用戶(計(jì)算機(jī))的身份憑證則需由數(shù)字證書頒發(fā)認(rèn)證機(jī)構(gòu)(Certificate Authority,CA)簽發(fā),只有經(jīng)過CA簽發(fā)的證書在網(wǎng)絡(luò)中才具備可認(rèn)證性。
????????VeriSign(http://www.verisign.com)、GeoTrust(http://www.geotrust.com)和Thawte(http://www.thawte.com)是國際權(quán)威數(shù)字證書頒發(fā)認(rèn)證機(jī)構(gòu)的“三巨頭”。其中,應(yīng)用最為廣泛的是VeriSign簽發(fā)的電子商務(wù)數(shù)字證書。
????????通常,這種由國際權(quán)威數(shù)字證書頒發(fā)認(rèn)證機(jī)構(gòu)頒發(fā)的數(shù)字證書需要向用戶收取昂貴的申請和維護(hù)費(fèi)用。但并不是所有的國際權(quán)威數(shù)字證書頒發(fā)認(rèn)證機(jī)構(gòu)都收費(fèi),CAcert(http://www.cacert.org)就是一個免費(fèi)的數(shù)字證書頒發(fā)國際組織。隨著用戶群的增大和頒發(fā)手段
的可信性,這種免費(fèi)的數(shù)字證書可信度也越來越高。
????????證書的簽發(fā)過程實(shí)際上是對申請數(shù)字證書的公鑰做數(shù)字簽名,證書的驗(yàn)證過程實(shí)際上是對數(shù)字證書的公鑰做驗(yàn)證簽名,其中還包括證書有效期驗(yàn)證。
????????通過使用由CA頒發(fā)的數(shù)字證書,我們可以對網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)進(jìn)行加密/解密和簽名/驗(yàn)證操作,確保數(shù)據(jù)的機(jī)密性、完整性和抗否認(rèn)性。同時數(shù)字證書中包含的用戶信息可以明確地標(biāo)識交易實(shí)體身份,具有認(rèn)證性,保證交易實(shí)體身份的真實(shí)性,從而保障網(wǎng)絡(luò)應(yīng)用的安全性。
實(shí)際上,數(shù)字證書是采用了公鑰基礎(chǔ)設(shè)施(Public Key Infrastructure,PKI),使用了相應(yīng)的加密算法確保網(wǎng)絡(luò)應(yīng)用的安全性:
1、非對稱加密算法用于對數(shù)字進(jìn)行加密/解密操作,確保數(shù)據(jù)的機(jī)密性。
2、數(shù)字簽名算法用于對數(shù)據(jù)進(jìn)行簽名/驗(yàn)證操作,確保數(shù)據(jù)的完整性和抗否認(rèn)性。
3、消息摘要算法用于對數(shù)字證書本身做摘要處理,確保數(shù)字證書完整性。
目前,數(shù)字證書中最為常用的非對稱加密算法時RSA算法,與之配套使用的簽名算法時SHA1withRSA算法,而最為常用的消息摘要算法是SHA1算法。
除了使用RSA算法外,我們還可以使用DSA算法。只是使用DSA算法無法完成加密/解密實(shí)現(xiàn),即這樣的數(shù)字證書不包括數(shù)據(jù)加密/解密功能。
數(shù)字證書有多種文件編碼格式,主要包含CER編碼、DER編碼等:
1、CER(Canonical Encoding Rules,規(guī)范編碼格式)是數(shù)字證書的一種編碼格式,它是BER(Basic Encoding Rules,基本編碼格式)的一個變種,比BER規(guī)定得更嚴(yán)格。
2、DER(Distinguished Encoding Rule,卓越編碼格式)同樣是BER的一個變種,與CER的不同之處在于:DER使用定長模式,而CER使用變長模式。
所有證書都符合公鑰基礎(chǔ)設(shè)施(PKI)制定的ITU-T X509國際標(biāo)準(zhǔn)(X.509標(biāo)準(zhǔn)),目前共包含3個版本。
3、PKCS(Public-Key Cryptography Standards,公鑰加密標(biāo)準(zhǔn))由RSA實(shí)驗(yàn)室和其他安全系統(tǒng)開發(fā)商為促進(jìn)公鑰密碼的發(fā)展而制定的一系列標(biāo)準(zhǔn)。PKCS至今共發(fā)布過15個標(biāo)準(zhǔn),常用標(biāo)準(zhǔn)主要包括PKCS#7、PKCS#10和PKCS#12。
?
?在獲得數(shù)字證書后,可以將其保存在電腦里,也可以保存在IC卡或USB Key中。
總結(jié)
以上是生活随笔為你收集整理的Java加密与解密的艺术~数字证书详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows平台下GO语言编译器(GO
- 下一篇: Effective Java~45. 谨