古詩詞大全網 - 個性簽名 - 對稱、非對稱加解密、SSL、HTTPS 詳細介紹

對稱、非對稱加解密、SSL、HTTPS 詳細介紹

對稱加密:加密和解密使用的是同壹個密鑰,信息接收雙方都需事先知道這個密鑰(最常見的對稱加密算法是DES、AES)。

溫馨提示:閱讀下面內容請對照此網站內的圖片,有助於理解。 /yxhxj2006/archive/2012/10/15/389547.html?

非對稱加密:加密和解密用的是不同的密鑰(最常用的非對稱加密算法是RSA)。是壹對密鑰,公鑰和私鑰,公鑰對外公開,私鑰由自己保存,公鑰可以有很多份拷貝,好比多客戶端和單壹服務器的網絡拓撲結構,每壹個客戶端上都有壹個公鑰,服務器有壹個私鑰,而這個公鑰,是服務器發給客戶端的。客戶端用公鑰解密接受來的密文,而這個密文是服務器用私鑰加密的。相反,如果客戶端向服務器發送請求,客戶端是用服務器發來的公鑰加密,服務器接收到密文後,用自己的私鑰去解密。

1.非對稱加密之數字摘要:是采用單向的(不可逆)Hash函數將需要加密的明文加密成壹串固定長度(128位)的密文,這壹串密文又稱為數字指紋,因為不同的明文形成的摘要不同,而相同的明文形成的摘要必定相同。所以叫數字指紋比較貼切。數字摘要是https確保數據完整性和防篡改的根本原因。(Hash函數包括MD5、SHA這些不屬於加密算法,因為是不可逆的,只能相當於指紋,而加密算法是可逆的。Base64也是可逆的。)

2.非對稱加密之數字簽名:做了非對稱加密和數字摘要後,用自己的私鑰對數字摘要加密後就是“數字簽名”,簡單的說就是,經過私鑰加密的數字摘要就是數字簽名。可以把數字簽名附到明文上。

這時候發送的密文中就有數字摘要和數字簽名,接受者只要用發送者的公鑰就能解密簽名,得到摘要信息,然後用Hash函數對收到的原文處理產生壹個摘要信息,與解密的摘要信息對比。如果相同,說明收到的信息是完整的,在傳輸的過程中沒有被修改。數字簽名只能夠驗證信息的完整性,數據本身是否加密不屬於數字簽名的控制範圍。

3.非對稱加密之數字證書:只從“明確發送者身份”和“確保數據完整性”,數字簽名就可以完全做到了,但是前提是數字簽名所依賴的密鑰是真是可靠的才可以。如果接受方所持有的公鑰來路有問題或是被替換了,那麽,持有對應私鑰的人就可以冒充發送方發送明文給接受方,但是接收方並不知道。這裏的問題就是:對於接受方來說,它怎麽能確定它所得到的公鑰壹定是從目標主機那裏發布的,而且沒有被篡改過呢?這時候,我們需要有壹個權威的值得信賴的第三方機構(壹般是由政府審核並授權的機構)來統壹對外發放機構公鑰,只要發送方有這種機構的公鑰,就避免了上述問題的發生。這種機構被稱為證書權威機構(Certificate Authority, CA),它們所發放的包含主機機構名稱、公鑰在內的文件就是人們所說的“數字證書”。

數字證書的頒發過程壹般為:用戶首先產生自己的密鑰對,並將公***密鑰及部分個人身份信息傳送給認證中心。認證中心在核實身份後,將執行壹些必要的步驟,以確信請求確實由用戶發送而來,然後,認證中心將發給用戶壹個數字證書,該證書內包含用戶的個人信息和他的公鑰信息,同時還附有認證中心的簽名信息。用戶就可以使用自己的數字證書進行相關的各種活動。數字證書由獨立的證書發行機構發布。數字證書各不相同,每種證書可提供不同級別的可信度。可以從證書發行機構獲得您自己的數字證書。

SSL:是安全協議,SSL建立通信的過程分為兩個階段:握手階段和傳輸階段。下圖為握手階段。

SSL協議在握手階段使用的是非對稱加密(上面介紹的很清楚),在傳輸階段使用的是對稱加密(簡單不多贅述),也就是說在SSL上傳送的數據是使用對稱密鑰加密的!這並不奇怪,因為非對稱加密的速度緩慢,耗費資源。其實當客戶端和主機使用非對稱加密方式建立連接後,客戶端和主機就已經決定好了在傳輸過程中使用的對稱加密算法和對稱加密密鑰,由於這個過程本身是安全可靠的,所以對稱加密密鑰是不可能被竊取的,因此,保證了在傳輸過程中對數據進行對稱加密也是安全可靠的,因為除了客戶端和主機之外,不可能有第三方竊取並解密出對稱加密密鑰!

HTTPS:HTTPS是由SSL+HTTP協議構建的可進行加密傳輸、身份認證(確認客戶端連接的主機是否是真實正確的主機)的網絡協議。HTTPS所能實現的安全保證,正式SSL的功勞。

HTTPS劣勢:

https的主要缺點就是性能問題。造成https性能低於http的原因有兩個:

1.對數據進行加解密決定了它比http慢。

2.另外壹個重要原因的是https禁用了緩存。

相關測試數據表明使用HTTPS協議傳輸數據的工作效率只有使用HTTP協議傳輸的十分之壹。因此對於壹個網站來說,只有那對那些安全要求極高的的數據才會選擇使用https進行傳輸。