SSL协议、HTTP和HTTPS和区别
SSL協議
SLL協議的握手過程
開始加密通信之前,客戶端和服務器首先必須建立連接和交換參數,這個過程叫做握手(handshake)。
第一步,客戶端給出協議版本號、一個客戶端生成的隨機數(Client random),以及客戶端支持的加密方法。
?
第二步,服務器確認雙方使用的加密方法,并給出數字證書、以及一個服務器生成的隨機數(Server random)。
?
第三步,客戶端確認數字證書有效,然后生成一個新的隨機數(Premaster secret),并使用數字證書中的公鑰,加密這個隨機數,發(fā)給服務器。
?
第四步,服務器使用自己的私鑰,獲取客戶端絲發(fā)來的隨機數(即Premaster secret)。
?
第五步,客戶端和服務器根據約定的加密方法,使用前面的三個隨機數,生成"對話密鑰"(session key),用來加密接下來的整個對話過程。
私鑰的作用
?
1)生成對話密鑰一共需要三個隨機數。
?
(2)握手之后的對話使用"對話密鑰"加密(對稱加密),服務器的公鑰和私鑰只用于加密和解密"對話密鑰"(非對稱加密),無其他作用。
?
(3)服務器公鑰放在服務器的數字證書之中。
DH算法的握手階段
?
整個握手階段都不加密(也沒法加密),都是明文的。因此,如果有人竊聽通信,他可以知道雙方選擇的加密方法,以及三個隨機數中的兩個。整個通話的安全,只取決于第三個隨機數(Premaster secret)能不能被破解。
?
雖然理論上,只要服務器的公鑰足夠長(比如2048位),那么Premaster secret可以保證不被破解。但是為了足夠安全,我們可以考慮把握手階段的算法從默認的RSA算法,改為?Diffie-Hellman算法(簡稱DH算法)。
?
采用DH算法后,Premaster secret不需要傳遞,雙方只要交換各自的參數,就可以算出這個隨機數。
session的恢復
握手階段用來建立SSL連接。如果出于某種原因,對話中斷,就需要重新握手。
這時有兩種方法可以恢復原來的session:一種叫做session ID,另一種叫做session ticket。
session ID的思想很簡單,就是每一次對話都有一個編號(session ID)。如果對話中斷,下次重連的時候,只要客戶端給出這個編號,且服務器有這個編號的記錄,雙方就可以重新使用已有的"對話密鑰",而不必重新生成一把。
session ID是目前所有瀏覽器都支持的方法,但是它的缺點在于session ID往往只保留在一臺服務器上。所以,如果客戶端的請求發(fā)到另一臺服務器,就無法恢復對話。session ticket就是為了解決這個問題而誕生的,目前只有Firefox和Chrome瀏覽器支持。
HTTPS和HTTP的區(qū)別 超文本傳輸協議HTTP協議被用于在Web瀏覽器和網站服務器之間傳遞信息。HTTP協議以明文方式發(fā)送內容,不提供任何方式的數據加密,如果攻擊者截取了Web瀏覽器和網站服務器之間的傳輸報文,就可以直接讀懂其中的信息,因此HTTP協議不適合傳輸一些敏感信息,比如信用卡號、密碼等。 為了解決HTTP協議的這一缺陷,需要使用另一種協議:安全套接字層超文本傳輸協議HTTPS。為了數據傳輸的安全,HTTPS在HTTP的基礎上加入了SSL協議,SSL依靠證書來驗證服務器的身份,并為瀏覽器和服務器之間的通信加密。 HTTPS和HTTP的區(qū)別主要為以下四點: 一、https協議需要到ca申請證書,一般免費證書很少,需要交費。 二、http是超文本傳輸協議,信息是明文傳輸,https 則是具有安全性的ssl加密傳輸協議。 三、http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443。 四、http的連接很簡單,是無狀態(tài)的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,比http協議安全。
?
轉載于:https://www.cnblogs.com/liucaodan/p/7384184.html
總結
以上是生活随笔為你收集整理的SSL协议、HTTP和HTTPS和区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于UC、火狐、谷歌浏览器屏蔽布局中广告
- 下一篇: http://offlineinstal