回覆列表
-
1 # java老菜鳥
-
2 # 深入淺出話圍棋
服了樓上,幾句話能說清楚的問題扯了個長篇大論,還沒說清楚。
簡單點說,非對稱金鑰的加解密開銷比對稱金鑰大的多。所以在涉及大段文字的網路傳輸時,我們通常採用對稱金鑰。
https作為一個通用的安全協議,既考慮了訊息的保密性,完整性,不可抵賴性,又保證了傳輸效率,是一個經受住考研的安全協議。並不是簡單的改成非對稱加密可以替換的
單純使用非對稱加密演算法加密敏感資料,並不能代替HTTPS
眾所周知,HTTPS讓網站更加安全,那麼它的安全性提現在哪些方面呢?主要有三個方面:內容加密,身份確認和資料完整性。
內容加密HTTPS內容加密並不是直接使用非對稱加密演算法,對所有資料進行加密。在傳輸資料之前,會有一個握手流程,這個握手流程使用了非對稱加密演算法,目的是要安全的生成並交換資料加密金鑰。在完成這一步之後,資料使用這個金鑰進行對稱加密。這樣做,既能實現加密,也比完全使用非對稱加密更加高效。
HTTPS握手流程
身份確認身份確認透過數字證書來實現,數字證書包括以下內容:
證書頒發機構的名稱證書本身的數字簽名證書持有者公鑰證書籤名用到的Hash演算法證書的頒發機構,都是權威機構,每個瀏覽器都有自己信任的CA名單,透過證書,瀏覽器可以判斷網站是否是持有經信任的CA機構頒發的數字證書,以此來提醒使用者,網站是否安全。
資料完整性HTTP使用數字簽名技術來保證資料完整性。由於證書公鑰是公開的,攻擊者也可以使用這個公鑰來加密資料,進行傳輸,為了解決這個問題,HTTPS通訊過程中會將摘要資訊用傳送者的私鑰加密,與原文一起傳送給接收者。接收者只有用傳送者的公鑰才能解密被加密的摘要資訊,然後用HASH函式對收到的原文產生一個摘要資訊,與解密的摘要資訊對比。