上回我們已經講過了HTTP,下面我們不再詳述了,主要講講HTTPS、HTTP和HTTPS之間的區別。HTTPS(全稱:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全為目標的HTTP通道,簡單說就是HTTP安全版。
首先我們來看看下面這張圖:
HTTP通訊埠號是80埠,而HTTPS是443埠,並且HTTPS位於SSL/TLS之上,而SSL/TLS是什麼呢?SSL(Secure Sockets Layer安全套接層),及其繼任者TLS(Transport Layer Security傳輸層安全)是為網路通訊提供安全及資料完整性的一種安全協議。TLS與SSL在傳輸層對網路連線進行加密。這樣也就確保了資料傳遞的安全,防止HTTP明文資料傳遞的不可靠性,減低資料洩露的風險。
儘管HTTPS並非絕對安全,掌握根證書的機構、掌握加密演算法的組織同樣可以進行中間人形式的攻擊,但HTTPS仍是現行架構下最安全的解決方案,主要有以下幾個好處:
- 使用HTTPS協議可認證使用者和伺服器,確保資料傳送到正確的客戶機和伺服器。
- HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網路協議,要比HTTP協議安全,可防止資料在傳輸過程中不被竊取、改變,確保資料的完整性。
- HTTPS是現行架構下最安全的解決方案,雖然不是絕對安全,但它大幅增加了中間人攻擊的成本。
- 谷歌曾在2014年8月份調整搜尋引擎演算法,並稱“比起同等HTTP網站,採用HTTPS加密的網站在搜尋結果中的排名將會更高”。而且現在谷歌對不是HTTPS的網站顯示為不安全連線。
雖說HTTPS優勢眾多,但是我們還是需要按照自身的需求來決定是否換為HTTPS。下面我們就來說說它的一些不足:
- HTTPS協議握手階段比較漫長,會增加頁面載入的時長,大約延遲近50%,且增加10%到20%的耗電量;
- HTTPS連線快取不如HTTP高效,會增加資料開銷和功耗,甚至已有的安全措施也會因此而受到影響。
- SSL證書需要錢,功能越強大的證書費用越高;
- SSL證書通常需要繫結IP,不能在同一個IP上繫結多個域名,IPv4資源不可能支撐這個消耗;
- HTTPS協議的加密範圍也比較有限,在黑客攻擊、拒絕服務攻擊、伺服器挾持等方面幾乎起不到什麼作用。最關鍵的,SSL證書的信用鏈體系並不安全,特別是在某些國家可以控制CA根證書的情況下,中間人攻擊一樣可行。