https是最流行的http安全形式。
https方案的url以<code>https://</code>開頭
使用https時,所有的http請求和響應資料在發送到網絡之前,都要進行加密。https在http傳輸層下面提供了一個傳輸級的密碼安全層(可使用ssl或tls)
編碼和解碼使用的密鑰值一樣(密鑰k)
發送端和接收端共享相同的密鑰k才能進行通信。
缺點:發送者和接收者在互相對話前,一定要有一個共享的保密密鑰。
使用兩個非對稱密鑰:一個對主機封包編碼,另一個對主機封包解碼。
編碼密鑰是公開的(是以叫公開密鑰加密),解碼密鑰是保密的,隻有接收端才能對封包進行解碼。
公開密鑰非對稱加密系統的關鍵:
確定有人擁有下面所有的線索,也無法計算出保密的私有密鑰
公開密鑰(公開的,所有人都可獲得)
一小片攔截下來的密文
一條封包和與之相關的密文
rsa算法就是一個滿足所有這些條件的流行的公開密鑰加密系統。
數字簽名(digital signing):用加密系統對封包進行簽名,說明是誰編寫的封包,以證明封包未被篡改過。
數字簽名是附加在封包上的特殊加密校驗碼。
好處:
證明是作者編寫了這條封包
防止封包被篡改
通過非對稱公開密鑰技術産生。隻有所有者知道其私有密鑰,可将私有密鑰作為指紋使用。
數字證書(certs)中包含由某個受信任組織擔保的使用者或公司的相關資訊。
上圖就是由digicert組織簽發給github的數字證書
上圖是12306在chrome浏覽器上浏覽,可看出雖然使用了https,但是是由不受信任的簽發者簽名的數字證書
通過https建立一個安全web事務之後,浏覽器自動擷取所連接配接伺服器的數字證書。
https就是安全的傳輸層上發送的http。在安全層對封包進行加密。
http安全層是通過<code>ssl或tls</code>實作的。
http的url由<code>http://</code>起始,預設端口80,https的預設端口是443。
http:用戶端建立到伺服器80端口的tcp連接配接,發送一條請求封包,接收一條響應封包,關閉連接配接。
https:用戶端打開一條道伺服器443端口的連接配接,建立tcp連接配接,用戶端和伺服器初始化ssl層,溝通加密參數,交換密鑰。ssl初始化完成後,用戶端就可将請求封包加密後發送給安全層。
發送加密的http封包之前,用戶端和伺服器要進行一次ssl握手。
運作結果:
原文位址:http://www.cnblogs.com/johntsai/p/5209953.html