HTTPS
HTTPS是以安全為目標的http通道恩闻,即在http下加入SSL層(HTTP +SSL/ TLS)卫袒,SSL是HTTPS加密的基礎疯坤。SSL協(xié)議位于TCP/IP協(xié)議與各種應用層協(xié)議之間跛十,為數(shù)據(jù)通訊提供安全支持晕鹊。SSL協(xié)議可分為兩層:SSL記錄協(xié)議(SSL Record Protocol):它建立在可靠的傳輸協(xié)議(TCP)之上岛请,為高層協(xié)議提供數(shù)據(jù)封裝旭寿、壓縮、加密等基本功能的支持崇败。SSL握手協(xié)議(SSL Handshake Protocol):它建立在SSL記錄協(xié)議之上盅称,用于在實際的數(shù)據(jù)傳輸開始前肩祥,通訊雙方進行身份認證、協(xié)商加密算法缩膝、交換加密密鑰等混狠。
SSL協(xié)議的工作流程
1, 客戶端向服務器發(fā)送一個信息建立會話連接疾层;
2将饺,服務器根據(jù)客戶的信息確定是否需要生成新的密鑰(秘鑰和私鑰),如需要則服務器在響應客戶的信息時將包含生成密鑰所需的信息云芦;
3俯逾,客戶端根據(jù)收到的服務器響應信息,產(chǎn)生一個秘鑰(和服務端對稱加密用)舅逸,并用服務器的公鑰加密后傳給服務器桌肴;
4,服務器恢復該密鑰琉历,并返回給客戶端一個用密鑰認證的信息坠七,以此讓客戶認證服務器。
HTTPS的握手過程
理解了SSL加密流程旗笔,也就明白了HTTPS客戶端和服務端的握手過程
1彪置,客戶端發(fā)起HTTPS請求;
2蝇恶,服務端的配置HTTPS拳魁,采用HTTPS協(xié)議的服務器必須要有一套數(shù)字證書,這套證書其實就是一對公鑰和私鑰撮弧;
3潘懊,傳送配置的證書,這個證書是一個公鑰贿衍,包含了很多信息授舟,如證書的頒發(fā)機構,過期時間等贸辈,用于客戶端加密私鑰释树;
4,客戶端解析證書擎淤,客戶端利用服務器傳過來的證書驗證服務器的合法性奢啥,服務器的合法性包括:證書是否過期,發(fā)行服務器證書的CA 是否可靠嘴拢,服務器證書上的域名是否和服務器的實際域名相匹配等桩盲,如果發(fā)現(xiàn)異常,則彈出警告炊汤。如果證書沒有問題正驻,那么就生成一個對稱秘鑰,然后用服務器的公鑰對該秘鑰進行加密抢腐;
5姑曙,傳送加密信息,客戶端和服務端的通信就通過上面的秘鑰進行通信迈倍;
6伤靠,服務端用私鑰解密后,得到了客戶端傳過來的秘鑰啼染,然后把內容通過該秘鑰進行對稱加密宴合;
7,服務段用秘鑰加密后的信息打包返回給客戶端迹鹅,客戶端在用秘鑰進行對稱解密卦洽。這樣就實現(xiàn)了數(shù)據(jù)通信的安全。