1.HTTP的缺點
- 通信使用明文(不加密),內容可能被竊聽。
- 不驗證通信方的身份,因此可能遭遇僞裝
- 無法證明報文的完整性,所以可能已經被篡改
2.HTTP+加密+認證+完整性保護 = HTTPS
- HTTPS是身披SSL外殼的HTTP
HTTPS並不是一種應用層新的協議,只是HTTP通信接口部分用SSL(Secure Socket Layer)和TLS(Transport Layer Security)協議代替而已。
在通常情況下,HTTP直接和TCP協議進行通信。當使用SSL的時候,就演變成先和SSL通信,再由SSL和TCP進行通信。
SSL是獨立於HTTP的協議
- 相互交換密鑰的公開密鑰加密技術
SSL採用的一種叫做公開密鑰加密方式,加密的算法是公開的,但是密鑰確是保密的,通過這種方式得以保持加密方法的安全性。
加密和解密都要用到密鑰,但是密鑰如果遭受到惡意攻擊,那麼加密就失去了意義。
1. 共享密鑰加密的困境
加密和解密使用同一個密鑰的方式叫做共享密鑰加密方式也叫對稱加密方式。
在這種方式下,如果 通信被監聽的話就會被攻擊者得到密鑰,那麼加密就失去了意義。除此之外,還得設法保管好接收到的密鑰。
2. 使用兩把密鑰的公開密鑰加密
公開密鑰加密使用一對非對稱的密鑰。一把叫做私有密鑰,另一把是公開密鑰。顧名思義,公開密鑰就是每個人都可以獲得,而私有密鑰不會讓其他人知道。
使用公開密鑰的加密方式,發送密文的一方使用對方的公開密鑰進行加密處理,對方收到被加密的信息後進行解密,利用這種方式就可以完成安全傳輸。
但是要想將加密後的信息恢復成原文是一件異常困難的事情,目前還是難以實現的。
3. HTTPS採用混合加密機制
採用兩者各自的優勢,將多種方法組合起來用於通信。在交換密鑰的環節使用公開密鑰加密方式,之後建立通信交換報文階段則使用共享密鑰交換方式。
- 證明公開密鑰正確性的證書
由專業的機構進行認證的數字證書。
- HTTPS的安全通信機制
我們先來看看HTTPS的通信步驟
圖解說明: