https中的對稱加密和非對稱加密

大家都知道:HTTPS = HTTP + SSL/TSL 也就是,https是在http基礎上加了一層加密。 這也由此衍生出一個問題 —— https的加密用的是對稱加密還是非對稱加密,是否全程都是用的一種加密方式? 這個問題引起了我的興趣,去查閱了下資料,瞭解了一下,這裏做個簡單的總結備忘。

1. 什麼是對稱加密和非對稱加密?

這個詳細來說有點複雜,這裏簡單的說下:

對稱加密就是加密和解密用的是同一個密鑰k。 非對稱加密是發送端使用公開的公鑰a加密,然後接收端使用私密的私鑰b解密。

對稱加密快,非對稱加密安全。對稱加密如DES,非對稱加密如RSA。

2. 那https的加密是用的對稱加密還是非對稱加密呢?

答案是——兩者都用了

這裏讓我們先看看一個完整的https請求的過程:

  1. 首先,瀏覽器請求一個url,找到服務器,向服務器發起一個請求。服務器將自己的證書(包含服務器公鑰S_PuKey)、對稱加密算法種類及其他相關信息返回客戶端。
  2. 瀏覽器檢查CA證書是不是由可以信賴的CA機構頒發的,確認證書有效和此證書是此網站的。如果不是,給客戶端發一個警告,詢問是否繼續訪問。
  3. 如果是,客戶端使用公鑰加密了一個隨機對稱密鑰,包括加密的URL一起發送到服務器
  4. 服務器用自己的私匙解密了你發送的鑰匙。然後用這把對稱加密的鑰匙給你請求的URL鏈接解密。
  5. 服務器用你發的對稱鑰匙給你請求的網頁加密。你也有相同的鑰匙就可以解密發回來的網頁了。

說起來複雜,簡單總結起來就是:

使用非對稱加密傳輸一個對稱密鑰K,讓服務器和客戶端都得知。然後兩邊都使用這個對稱密鑰K來加密解密收發數據。因爲傳輸密鑰K是用非對稱加密方式,很難破解比較安全。而具體傳輸數據則是用對稱加密方式,加快傳輸速度。兩全其美。

這麼想來,https的設計真的是一個非常棒的設計,同時兼顧了安全和速度,可以說是比較完善了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章