天天看點

HTTPS

https(hyper text transfer protocol over secure socket layer),超文本傳輸安全協定。我的了解是安全的http。因為http是明文傳輸,在需要安全的場合下不夠安全。https基于http進行通信,但利用ssl/tls來加密資料包。

其作用有二:

1、建立一個資訊安全通道,來保證資料傳輸的安全; 2、确認網站的真實性

第一點通過加密實作,ssl/tls協定;第二點通過證書。

利用ssl/tls協定進行加密傳輸之前,用戶端與伺服器之間有一個握手過程。握手的目的是為了協商出一個雙方共同使用的秘鑰,好将傳輸内容進行對稱加密。而為了得到這個用于對稱加密的秘鑰,雙方協商過程又使用了非對稱加密,你來我往,煞費苦心。

所謂對稱加密,加密和解密時使用的是同一個秘鑰;而非對稱加密有公鑰和私鑰兩個秘鑰,用公鑰加密,則私鑰才能解密,反之亦然。非對稱加密安全性比對稱加密更好,但花費時間長、速度慢,隻适合對少量資料進行加密。

因為有公鑰、私鑰,非對稱加密用于握手過程中是最适合不過了。握手過程如下:

1、用戶端向伺服器傳送用戶端ssl 協定的版本号,加密算法的種類,産生的随機數,以及其他各種資訊。

2、伺服器向用戶端傳送ssl 協定的版本号,加密算法的種類,随機數以及其他相關資訊,同時伺服器還将向用戶端傳送自己的證書。

3、用戶端利用伺服器傳過來的資訊驗證伺服器的合法性,包括:證書是否過期,發行證書的ca 是否可靠,證書是否有效,證書上的域名是否和實際域名相比對。

4、用戶端随機産生一個新的随機數,然後用伺服器的公鑰(從伺服器的證書中獲得)對其加密,傳給伺服器。同時利用此随機數,經過運算,得到一把秘鑰。

5、伺服器用自己的私鑰解密,得到此随機數,經過運算,得到一把與用戶端相同的秘鑰。

6、握手過程結束,伺服器與用戶端用這把秘鑰進行愉快的加密傳輸。

HTTPS

在有些安全要求更嚴格的場合,用戶端也需要提供證書,比如網銀。這時用戶端的證書載體可能就是u盾之類。

用戶端,也就是浏覽器如何校驗伺服器的證書呢?浏覽器有一份權威ca的名單,凡大網站,用的理應是這些權威ca頒發的證書。其次,認證中心所發放的證書均遵循x.509 v3 标準,裡面除了伺服器的公鑰,還有域名之類的東東。假如浏覽器覺得證書有問題,反應如下:

HTTPS
HTTPS

http使用的端口為80,而https是443。

參考資料:

百度百科

也許,這樣了解https更容易

繼續閱讀