SSL、數字簽名、CA 工做原理通俗描述

SSL(Secure Socket Layer) 是一種加密技術,能夠提供對稱加密和非對稱加密。因爲它在協議層里正好是在傳輸層與應用層之間,這就決定了上層應用必須通過它,這就是它普遍流行和易於實現的緣由。


對稱加密有md5,sha1。因爲md5已被學者證實能夠計算出加密衝突,即它有必定的不安全性,因此建議用sha1加密。


非對稱性加密有RSA,即密碼有一對,一個私鑰,一個公鑰,公鑰可讓全部人知道,私鑰只有本身知道。


這樣理解,服務器產生一對密鑰,公鑰給別人即客戶端,客戶端用它來加密,加密後發給服務端,服務端用本身的私鑰解密後獲得數據。


數字簽名就和上面的過程相反,即數據由服務端用私鑰加密,客戶端用服務端的公鑰解密,解得出來就說明這數據包的確是出服務端發過來的。


數字簽名是由服務端本身籤的,但沒人去驗證這個服務端是否是你所要訪問的真實的,因此須要第三方來幫忙檢驗,就和支付寶處於第三方來協調的位置同樣。這個第三方就叫CA。


因此服務器產生的公鑰就交給CA,CA用CA本身的私鑰加密,即數字簽名,加密生會生成證書,證書仍是要交給服務端,放在服務端那邊。當客戶端訪問服務端時,服務端就會把這個證書安裝到客戶端上。


客戶端就會用CA提供的CA本身的公鑰來解密這個證書,(固然這個CA是瀏覽器預裝時嵌入的可信的CA,若是不是預裝時嵌入的CA,此時就沒有CA的公鑰,就解不了,就會彈出告警。)解得開就說明這個證書是某個CA認證過了的,是可信的,解開後就會獲得數據,而這個數據就是服務端的公鑰,此時用這個公鑰與服務端進行數據傳輸。


數據傳輸過程當中,因爲RSA方式加解密速度很是慢,因此會把對稱與非對稱二者結合起來用,即用RSA把對稱加密的密碼進行加密傳輸,再用對稱密碼進行加解密,這樣就能夠提升效率,且是安全的。瀏覽器

相關文章
相關標籤/搜索