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