被問到了,複習一下HTTPS的工做流程算法
提到https,不得不提SSL瀏覽器
1. 安全套接字(Secure Socket Layer,SSL)協議是Web瀏覽器與Web服務器之間安全交換信息的協議。安全
2. SSL協議的三個特性服務器
Ø 保密:在握手協議中定義了會話密鑰後,全部的消息都被加密。網絡
Ø 鑑別:可選的客戶端認證,和強制的服務器端認證。網站
Ø 完整性:傳送的消息包括消息完整性檢查(使用MAC)。加密
3. SSL的位置blog
客戶端在使用HTTPS方式與Web服務器通訊時有如下幾個步驟,如圖所示。工作流
1) 客戶端請求創建SSL鏈接,並將本身支持的一套加密規則發送給網站。隨機數
2) 網站從中選出一組加密算法與HASH算法,並將本身的身份信息以證書的形式發回給瀏覽器。證書裏面包含了網站地址,加密公鑰,以及證書的頒發機構等信息
3) 得到網站證書以後瀏覽器要作如下工做:
Ø 驗證證書的合法性
Ø 若是證書受信任,瀏覽器會生成一串隨機數的密碼,並用證書中提供的公鑰加密。
Ø 使用約定好的HASH計算握手消息,
Ø 使用生成的隨機數對消息進行加密,最後將以前生成的全部信息發送給網站。
4) 網站接收瀏覽器發來的數據以後要作如下的操做:
Ø 使用本身的私鑰將信息解密取出密碼
Ø 使用密碼解密瀏覽器發來的握手消息,並驗證HASH是否與瀏覽器發來的一致。
Ø 使用密碼加密一段握手消息,發送給瀏覽器
5) 瀏覽器解密並計算握手消息的HASH,若是與服務端發來的HASH一致,此時握手結束。
6) 使用隨機密碼和對稱加密算法對傳輸的數據加密,傳輸。
4. 密與HASH算法以下:
1) 非對稱加密算法:RSA,DSA/DSS,用於在握手過程當中加密生成的密碼。
2) 對稱加密算法:AES,RC4,3DES,用於對真正傳輸的數據進行加密。
3) HASH算法:MD5,SHA1,SHA256,驗證數據的完整性。
5. HTTP與HTTPS的區別:
1) https協議須要申請證書。
2) http是超文本傳輸協議,明文傳輸;https使用的是具備安全性的SSL加密傳輸協議。
3) http端口80,;https端口443。
4) http鏈接簡單無狀態;https由SSL+HTTP協議構件的可進行加密傳輸、身份驗證的網絡協議