1.HTTPS
HTTPS (Hyper Text Transfer Protocol over SecureSocket Layer),是以安全爲目標的 HTTP 通道
HTTPS 在HTTP 的基礎下加入 安全協議層 採用身份驗證和數據加密保證網絡通信的安全和數據的完整性
HTTPS 通過證書配合多種加密手段,採用身份驗證和數據加密保證網絡通信的安全和數據的完整性
2.加密算法
對稱加密:加密解密都用一個祕鑰
非對稱加密:加密的祕鑰和解密的祕鑰是不同的
哈希算法:將任意長度的信息進行計算,得到一個不可逆的固定值
數字證書:CA爲持有公鑰方簽發的證書,用於校驗身份
數字簽名:數字簽名技術是用哈希算法和非對稱加密算法來實現的
數字簽名過程
祕鑰生成:服務端生成兩個祕鑰,公鑰和私鑰,私鑰服務端自己保存,公鑰分發給客戶端
公私鑰加密:私鑰加密公鑰解密 或 公鑰加密私鑰解密
簽名: 把內容 "發送內容" 進行哈希計算得到一串不可逆的字符串 "不可逆字符串"
把密文 "發送內容" 和 "不可逆字符串" 放到一起,用祕鑰加密得到密文 "youcanyouup....."
將密文 "youcanyouup....." 發送給接收方
驗籤: 把密文 "youcanyouup....." 用公鑰解密得到 "發送內容" 和 "不可逆字符串"
將內容 "發送內容" 進行哈希計算得到一串不可逆的字符串 "不可逆字符串"
比較 收到的和計算得到的兩個 "不可逆字符串" 是否一致,即可驗證數據的合法性
發送和接收是相對的,即簽名可以是雙向的
服務端將數據用私鑰簽名後發送給客戶端 或 客戶端將數據用公鑰簽名後發送給服務端
3.傳輸流程
客戶端訪問服務器時,客戶端將自身支持的加密算法發送給服務器
服務器選擇一套加密算法,用證書的形式發給客戶端
證書中包含:CA證書頒發機構 , 證書有效期,公鑰,證書所有者等,可在瀏覽器中查看
瀏覽器會去查詢證書的可靠性,不合法時會給出提示
客戶端 校驗證書合法後,生成 對稱加密祕鑰,將祕鑰用公鑰簽名後發送給服務器
服務器 使用私鑰驗籤後,用私鑰簽名握手信息返回給客戶端
客戶端 使用公鑰驗籤後,雙方開始使用客戶端生成的 對稱加密祕鑰 進行數據的加密傳輸
4.HTTP與HTTPS
HTTP不需要證書,HTTPS需要CA機構頒發證書
HTTP數據明文傳輸,HTTPS數據密文傳輸(前提是不能同意抓包工具,在你電腦上安裝證書,否則看到的全是明文)
HTTP默認端口80,HTTPS默認端口443