在HTTP協議中可能存在信息竊聽或身份僞裝等安全問題,使用HTTPS通信機制可以有效的防止這些問題。
1、HTTP的缺點
- 通信使用明文(不加密),內容可能會被竊聽。
- 不驗證對方身份,可能會遭遇僞裝。
- 無法驗證報文完整行,所以可能內容被篡改。
1.1、通信使用明文(不加密),內容可能會被竊聽
TCP/IP是可能被竊聽的網絡
由於TCP/IP協議族工作機制,通信內容在所有的通信線路上都可能遭到窺視。即使經過加密,情況和未加密是一樣的,都可能在通信線路上被窺視,只是經過加密就有可能使窺視者無法獲取通信內容的含義。
加密處理防止被監聽
加密的對象有:
通信加密
內容加密
通信加密
HTTP協議沒有加密機制但是可以和SSL、TSL組合使用,將通信加密。
用SSL建立起安全通信通道之後就可以在這條通道中進行HTTP通信了。與SSL組合使用的HTTP被稱爲HTTPS。
內容加密
將HTTP傳輸的內容進行加密,即將HTTP報文主體進行加密。
這種情況下,客戶端需要將傳輸內容進行加密操作再發送請求。
1.2、不驗證通信方的身份就可能遭遇僞裝
HTTP協議中請求和響應都不會和通信對方進行身份驗證。
任何人都可以發送請求
由於HTTP協議中不存在驗證通信對方身份的步驟,所以所有的請求都會反正正常的響應。所以會產生如下的安全隱患:
無法確認Web服務器是否爲目標服務器。
無法確認客戶端是否爲真正的客戶端。
無法確認請求者具備應有的權限。(某些敏感文件,Web服務器不希望所有人都可以訪問)。
即使無意義的請求也會照單全收(Dos攻擊)
查明對手的證書
SSL不僅提供通信通道的加密,還使用了一種被稱爲證書的手段。
證書由可靠的第三方機構頒發,用以證明客戶端和服務端是客觀存在的。這樣就可以確認客戶端/服務端沒有經過僞裝。
1.3、無法驗證報文的完整性,可能被篡改
完整性是指信息的準確度。無法確認信息的準確度意味着無法判斷消息的準確性。
在報文的傳輸過程中可能被竊取、篡改。
這種在傳輸過程的中,報文被篡改的行爲被稱爲中間人攻擊。