android 加密 數字證書

2021-07-10 16:50:01 字數 1863 閱讀 1242

1 數字證書就是一種特殊格式的檔案,x509就是乙個數字證書,公玥作為乙個特殊的字段儲存在證書之中,傳遞證書的時候就是在互動公玥,比如老王發資料給小李

不清楚的檢視:

證書的電子簽名:能夠保證證書的可靠性

有幾點一點要分析清楚的:

(1)證書中只儲存傳送者的公玥,證書不能保證私玥,傳送者自己儲存私玥。

(2)證書頒發中心ca具有自己的公玥和私玥,一定要區分ca的公玥和私玥和證書申請者的公玥和私玥區分開。

我們來分析下證書的電子簽名,保證證書在傳輸過程中的可靠性

證書的簽名有兩種:上面是非根證書的簽名

非根證書的簽名

第一步,證書請求者到證書頒發證書請求證書,證書頒發機構驗明身份之後會頒發證書,證書中的某個字段儲存著請求者的公玥,注意請求者的私玥自己儲存,不好儲存在證書中,證書中除了儲存公玥之外,還有其他欄位的資訊。

第二步:證書頒發者會使用某個簽名演算法例如md5演算法,對證書進行簽名,得到簽名值a,然後證書頒發中心會使用自己的ca私玥對簽名值a進行加密,然後將加密後的值依附在證書的後面傳送給接受者

第三步:接收方收到證書之後,會到證書的頒發**上得到ca的公玥,使用ca的公玥進行解密,得到解密之後的簽名值a,然後對接受到的證書進行hash計算得到簽名值b,如果簽名值b和簽名值a一樣,說明證書在傳遞過程中沒有被修改。

上面是使用ca的私玥對證書進行簽名,傳送者使用ca的公玥對證書進行驗證簽名

還有一種情況是:

傳送者自己自定義證書,自己生成證書,自簽名證書,這種證書叫做根證書

證書中存放著自己的公玥,傳送者把證書傳送給對方的時候,使用自己的私玥對證書使用某個簽名演算法例如md5演算法,得到簽名值a,然後傳送者會使用自己的私玥對簽名值a進行加密,然後將加密後的值依附在證書的後面傳送給接受者

第三步:接收方收到證書之後,只能使用證書中的公玥才能進行解密,認證了傳送者的身份,得到解密之後的簽名值a,然後對接受到的證書進行hash計算得到簽名值b,如果簽名值b和簽名值a一樣,說明證書在傳遞過程中沒有被修改,保證了證書在傳遞過程中的有效性。

這就是電子簽名,不清楚的可以看部落格android加密:電子簽名

所以證書的簽名:分為根證書的簽名和非根證書的簽名,根證書的簽名採用自己的私玥簽名,非根證書的簽名使用頒發證書的ca的私玥進行簽名

這裡有幾點需要說明:

數字簽名簽發和校驗使用的金鑰對是ca自己的公私金鑰,跟證書申請者提交的公鑰沒有關係。

數字簽名的簽發過程跟公鑰加密的過程剛好相反,即是用私鑰加密,公鑰解密。

現在大的ca都會有證書鏈,證書鏈的好處一是安全,保持根ca的私鑰離線使用。第二個好處是方便部署和撤銷,即如何證書出現問題,只需要撤銷相應級別的證書,根證書依然安全。

根ca證書都是自簽名,即用自己的公鑰和私鑰完成了簽名的製作和驗證。而證書鏈上的證書簽名都是使用上一級證書的金鑰對完成簽名和驗證的。

怎樣獲取根ca和多級ca的金鑰對?它們是否可信?當然可信,因為這些廠商跟瀏覽器和作業系統都有合作,它們的公鑰都預設裝到了瀏覽器或者作業系統環境裡。比如firefox就自己維護了乙個可信任的ca列表,而chrome和ie使用的是作業系統的ca列表。

數字證書加密原理

數字證書採用 公鑰體制,即利用一對互相匹配的 金鑰進行 加密 解密。每個使用者自己設定一把特定的僅為本人所知的私有金鑰 私鑰 用它進行解密和簽名 同時設定一把公共金鑰 公鑰 並由本人公開,為一組使用者所共享,用於加密和驗證簽名。當傳送乙份保密檔案時,傳送方使用接收方的公鑰對 資料加密,而接收方則使用...

數字證書 Tomcat加密配置

1 雜湊加密就是無論輸入的字串是什麼,有多大,加密後都將變成唯一的定長的加密串。比如md5,sha1,不過現在都已經被破解了。2 對稱加密 也叫私鑰加密 指加密和解密使用相同金鑰的加密演算法,如des和idea rc5,優點在於加解密的高速度和使用長金鑰時的難破解性。3 非對稱 公鑰和私鑰 為伺服器...

數字證書的工作原理(加密原理)

數字證書工作原理 數字證書採用公鑰體制,就是加密和解密所使用的不是同乙個金鑰,通常有兩個金鑰,稱為 公鑰 和 私鑰 它們兩個必需配對使用,否則不能開啟加密檔案。這裡的 公鑰 是指可以對外公布的,私鑰 則不能,只能由持有人乙個人知道。當傳送乙份保密檔案時,傳送方使用接收方的公鑰對資料加密,而接收方則使...