天天看點

java加解密-數字證書

一、概述

  1、我們了解了對稱加密算法、非對稱加密算法、數字簽名算法應用,他們組合起來使用就是數字證書

  2、對稱加密算法用來加解密資料,非對稱加密算法常用來做密鑰交換、數字簽名算法主要用來驗證資料的不可否認性

  3、數字證書:對于我們來說最常見的就是銀行給我們提供的數字證書,以檔案下載下傳的方式儲存,或者以u盾的方式儲存

  4、數字證書其實就是我們非對稱加密算法中存放了相關算法的公鑰資訊

二、模型分析

    我們要制造數字證書。可以用openssl和java的keytools來獲得,openssl開源軟體這個比keytools功能強大。

  1、keytools生成數字證書,并建立本地密鑰庫。

  2、數字證書(用戶端)給客戶,本地密鑰庫配合tomcat這些應用伺服器使用。開放伺服器的安全端口,用https通路伺服器的時候,就是進行加密資料互動了。那些對稱加密、非對稱加密算法 都被隐藏在互動細節中了,對我們使用者來說是透明的

  3、客戶将數字證書導入自己的浏覽器,和tomcat進行資料傳送。通過他們内部實作的協定進行資料加密傳輸,同時通過簽名驗證資料的真實性

三、實作方式

  1、證書的産生必須用openssl或者keytools來完成

  2、放到外部使用需要用tomcat的ssl/tls配置作為支援

  3、如果需要第三方發放簽名證書,可以将證書的csr檔案給第三方公正,常見的國際公正三巨頭可以幫我們做這些。免費的第三方隻有cacert了。電子商務常用的就是verisign這個付費的第三方證書發放機構。如果不用第三方,就是自簽名的了。沒啥法律效力

四、總結

 1、上述模型隻是說了單向加密、如果需要雙向加密實作方式相同。隻不過需要建立用戶端證書、伺服器端證書等等...

 2、安全的終極裝備就是安全協定。這個tomcat的ssl/tls配置是最好的展現

 3、正常的加解密或者數字證書,核心還是用rsa之類的非對稱加密算法傳遞密鑰,然後通過對稱加密算法進行加密資料傳輸。用簽名算法進行資料校驗