一、 HTTP安全漏洞
a) 通信使用明文,内容可能被竊取
b) 通信不對對方身份進行驗證,通信對象可能是僞裝的虛假對象。
c) 通信不驗證資訊的完整性,資訊可能被篡改。
二、 加密處理,防止竊聽
a) 對通信線路進行加密:通過SSL(SecureSocket Layer安全套接字層)和TLS(Transport Layer Security)加密HTTP的通信内容。
b) 對内容進行加密:即對封包内容進行加密處理如圖。
封包首部(head不加密) |
封包實體(body加密) |
三、 檢視證書,驗證對方身份
a) SSL不僅對通信線路進行加密,還提供證書技術,證書是由可信賴的第三方機構頒發,通過對證書的查驗,判斷對方身份。
b) 證書的申請與頒發需要大量的資金支援,是以個人使用者一般不用申請并使用證書。
四、 查驗散列值,驗證内容的完整性
a) 散列值:根據封包内容,利用相關的算法計算出來的一組散列數值,如果内容一旦更改,散列數值也會相應的改動。
b) MD5算法
i. MD5:是通過單向函數,以封包内容為參量而産生的一組數值。
ii. MD5長度固定,不會随着封包内容改變而改變。
iii. MD5通過原資料很容易計算,并且,一旦原文内容改變,即便是1位元組,MD5值也會有很大的改變.
五、 HTTP+SSL(通信線路加密和證書認證機制)+散列值校驗=HTTPS
深入淺出的講解SSL/TLS:阮一峰日志