轉自:https://blog.csdn.net/dfsaggsd/article/details/50910999
SSL
1. 安全套接字(Secure Socket Layer,SSL)協議是Web瀏覽器與Web服務器之間安全交換信息的協議。
2. SSL協議的三個特性
Ø 保密:在握手協議中定義了會話密鑰后,所有的消息都被加密。
Ø 鑒別:可選的客戶端認證,和強制的服務器端認證。
Ø 完整性:傳送的消息包括消息完整性檢查(使用MAC)。
3. SSL的位置
HTTPS
1. HTTPS基於SSL的HTTP協議。
2. HTTPS使用與HTTP不同的端口(,一個加密、身份驗證層(HTTP與TCP之間))。
3. 提供了身份驗證與加密通信方法,被廣泛用於互聯網上安全敏感的通信。
交互過程
客戶端在使用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協議構件的可進行加密傳輸、身份驗證的網絡協議。