1. 程式人生 > >公私鑰,數字證書,https

公私鑰,數字證書,https

非對稱加密 結合 接收 很多 sha2 客戶端 完整 機構 驗證

1、密鑰對,在非對稱加密技術中,有兩種密鑰,分為私鑰和公鑰,私鑰是密鑰對所有者持有,不可公布,公鑰是密鑰對持有者公布給他人的。

2、公鑰,公鑰用來給數據加密,用公鑰加密的數據只能使用私鑰解密。

3、私鑰,如上,用來解密公鑰加密的數據。

4、摘要,對需要傳輸的文本,做一個HASH計算,一般采用SHA1,SHA2來獲得。

5、簽名,使用私鑰對需要傳輸的文本的摘要進行加密,得到的密文即被稱為該次傳輸過程的簽名。

6、 簽名驗證,數據接收端,拿到傳輸文本,但是需要確認該文本是否就是發送發出的內容,中途是否曾經被篡改。因此拿自己持有的公鑰對簽名進行解密(密鑰對中的 一種密鑰加密的數據必定能使用另一種密鑰解密。),得到了文本的摘要,然後使用與發送方同樣的HASH算法計算摘要值,再與解密得到的摘要做對比,發現二 者完全一致,則說明文本沒有被篡改過。

上面實際上介紹了加密解密和數字簽名兩個概念和實現過程,二者的過程正好是相反的。

在 簽名的過程中,有一點很關鍵,收到數據的一方,需要自己保管好公鑰,但是要知道每一個發送方都有一個公鑰,那麽接收數據的人需要保存非常多的公鑰,這根本 就管理不過來。並且本地保存的公鑰有可能被篡改替換,無從發現。怎麽解決這一問題了?由一個統一的證書管理機構來管理所有需要發送數據方的公鑰,對公鑰進 行認證和加密。這個機構也就是我們常說的CA。認證加密後的公鑰,即是證書,又稱為CA證書,證書中包含了很多信息,最重要的是申請者的公鑰。

CA 機構在給公鑰加密時,用的是一個統一的密鑰對,在加密公鑰時,用的是其中的私鑰。這樣,申請者拿到證書後,在發送數據時,用自己的私鑰生成簽名,將簽名、 證書和發送內容一起發給對方,對方拿到了證書後,需要對證書解密以獲取到證書中的公鑰,解密需要用到CA機構的”統一密鑰對“中的公鑰,這個公鑰也就是我 們常說的CA根證書,通常需要我們到證書頒發機構去下載並安裝到相應的收取數據的客戶端,如瀏覽器上面。這個公鑰只需要安裝一次。有了這個公鑰之後,就可 以解密證書,拿到發送方的公鑰,然後解密發送方發過來的簽名,獲取摘要,重新計算摘要,作對比,以驗證數據內容的完整性。

HTTPS是綜合用了加密解密和數字簽名的實例,理解了上述概念和過程,結合密鑰對交換的過程就不難理解HTTPS。

ca機構在公私鑰體系中承擔了公鑰合法性的檢驗工作。

公私鑰,數字證書,https