HTTP + 加密 + 身份認證 + 完整性保護 = HTTPS
http 不足之處
- 通信使用明文(不加密),請求與響應內容隨時有可能被竊?。?/li>
- 請求與響應過程不會驗證通信雙方的身份,同樣不安全;
- 無法保證報文的完整性,很有可能遭到篡改
針對以上 http 的缺點進行改進
通信加密
- SSL 建立安全通信線路
- http 可以通過和 SSL / TLS 的組合使用,加密 http 通信內容;
用 SSL 建立安全通信線路,就可以在這條線路上進行 http 通信了,這種結合就叫 https(超文本傳輸安全協(xié)議)
- 通信內容加密
- 要求通信雙方都同時具備加密與解密機制,但是通信線路仍然不安全,所以仍有被篡改報文的風險;
驗證通信雙方身份
SSL 證書
- SSL 同樣提供了一種證書手段,來驗證通信雙方身份
- 證書由值得信任第三方機構頒發(fā),需要花錢
確保報文完整性
- 常用的是 MD5 和 SHA-1 等散列值進行校驗,以及用數字簽名來確認文件
HTTPS
- HTTPS 并不是一種新的協(xié)議,只是 HTTP 通信接口部分用 SSL 和 TLS 協(xié)議代替而已;
- HTTP 會先與 SSL 通信,再由 SSL 與 TCP 通信;
SSL加密方式
- 公開密鑰加密:公開加密算法,將密鑰進行保密;
- 共享密鑰加密:使用同一個密鑰進行加密和解密,又叫對稱密鑰加密;
公開密鑰也需要進行證書認證,證明其真實性
共享密鑰加密的密鑰在傳輸過程中可能會被竊取,公開密鑰加密通信速度比較慢
HTTPS 采用的是混合加密機制
SSL 與 TLS
- TSL是以SSL為原型開發(fā)的協(xié)議,有時會統(tǒng)一稱該協(xié)議為SSL。
使用 SSL 會變慢
HTTPS 也存在一些問題,那就是當使用 SSL 時,它的處理速度會變慢;
- 通信慢:通信過程需要處理,時間延長
- 處理速度慢:大量消耗網絡資源,CPU及內存等資源
可以使用 SSL 加速器這種(專用服務器)硬件來改善該問題。
在進行加密處理時,并非對所有內容都進行加密處理,而是僅在那些需要信息隱藏時才會加密,以節(jié)約資源。