HTTPS
HTTPS (全稱:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全為目標的HTTP通道,在HTTP的基礎上通過傳輸加密和身份認證保證了傳輸程序的安全性,HTTPS在HTTP的基礎上加入了SSL,來保證資料的安全性,但是性能方面會比HTTP傳輸資料效率會低,
HTTPS設計主要目標是為了防止:
- 資料保密性:資料防止別人偷窺,不讓第三方看到,就像這是只屬于我們兩個的小秘密,不讓別人發現,
- 資料完整性:就是資料防篡改,傳輸的資料不能讓第三方可以修改,就比如一年前你和女朋友分手了,然后今年她又來找你了,和好了,但是你不知道這一年的時間里面她經歷過什么,是不是還是原來的那個她,有沒有被別人改過,
- 身份認證:客戶端和瀏覽器傳輸資料,期望只是我們兩個人,防止第三方竊入進來,就比如你晚上和你另一半睡覺的時候,你得確認一下到底是不是真的是你老公or老婆,
HTTPS保證資料傳輸的安全是通過:
- 數字證書
- 加密演算法
- 對稱加密
- 非對稱加密
HTTPS 我下面就分為幾個方面來講
- HTTPS實作原理對稱加密和非對稱加密
- HTTPS申請證書簽名程序
- HTTPS四次握手
1. HTTPS實作原理對稱加密和非對稱加密
1. 對稱加密
用指定的密鑰對資料進行加密和解密,客戶端用密鑰進行加密,服務端也需要用相同的密鑰進行解密,服務端和客戶端使用的是同一個密鑰,這種演算法叫做對稱加密演算法,
2. 非對稱加密
使用不同的密鑰進行加密解密,它是有一對密鑰,分別成稱為:私有密鑰和公開密鑰;如果用私鑰對資料進行加密,只有用對應的公鑰才能解開;如果用公鑰對資料進行加密,只有用對應的私鑰才能解開,公鑰加密的資料公鑰解不開;私鑰加密的資料,私鑰也解不開;這種加密和解密使用的是兩個不同的密鑰的就叫非對稱加密演算法,
2. HTTPS申請證書簽名程序
HTTPS在進行非對稱加密傳輸資料的時候需要攜帶證書證明自己的身份,但是這個證書需要我們自己去申請,流程如下:
1. 用工具(OpenSSL)來生成一個私鑰,然后用剛生成的私鑰,在提供你自己的域名、公司名稱、部門、省份、城市等資訊來生成一個待簽名證書(即CSR檔案,也叫公鑰),然后我們拿著這個代簽名證書,去CA機構申請證書,CA會根據你提交的資訊進行審核,審核通過(就相當于讓別人簽個名,防偽造)后會下發證書給你(CRT檔案,里面包含了公鑰,CA的簽名,過期時間,申請人提交的資訊),當你拿到簽名好的證書以后,把它和剛開始的私鑰一起部署在服務器里面,這樣網站就是HTTPS的了,
3. HTTPS四次握手
客戶端和瀏覽器建立連接的程序中需要進行先四次握手,然后在進行資料的傳輸,我們上面講過了,服務器申請證書以后,服務器端需要配置一個證書和私鑰
1. (第一次握手)客戶端請求瀏覽器的時候,會攜帶客戶端支持的加密演算法,給服務器端,
2. (第二次握手)服務器端收到客戶端的請求以后,會把當前服務端的證書(證書里面包含服務端公鑰,CA的簽名,過期時間,申請人提交的資訊)下發給客戶端;
假如有以下幾個場景:
1. 如果服務器的證書在下發客戶端的程序中被第三方攔截到了,因為公鑰是公開的,所以被第三方獲取到證書中的公鑰有沒有安全隱患?
因為公鑰是公開的,所以被別人獲取到也沒關系,私鑰傳遞的資料公鑰能解,公鑰傳遞的資料,公鑰解不開,所以說當客戶端用公鑰加密的時候,第三方的公鑰是解不開的,
2. 如果第三方服務器攔截到了你的證書,能不能自己偽造一個證書,然后自己去跟客戶端通信?
證書偽造不了,正規機構頒發的證書都是內嵌在作業系統中的,服務端下發證書以后,在客戶端的機器上會根據它內嵌的證書根據一些演算法來判斷你證書的真偽和有沒有被篡改,如果篡改了,瀏覽器是不認的,一搬瀏覽器都會提示你當前證書不安全,

3. (第三次握手)客戶端收到服務端下發的證書,并驗證這個證書是合法的證書,那就會根據前面約定的加密演算法,生成一個隨機的密鑰,然后把這個密鑰,在用服務端發過來的公鑰進行加密,在把加密好的密文,發送給服務端,(公鑰加密,公鑰解不開,第三方拿到公鑰,也解不開公鑰加密的資料)
4. (第四次握手)服務端拿到客戶端發過來的密文,因為服務端它有私鑰,所以說它能解開密文,并拿到里面的密鑰,(服務端的私鑰是一定不能丟的)
HTTPS經過4次握手以后,客戶端和服務端雙方都約定好了一個密鑰,然后就可以用這個密鑰進行對稱加密演算法來傳輸資料了,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/287662.html
標籤:區塊鏈
上一篇:紅外遙控學習,萬能遙控解決方案
