上回說到了 HTTP 與 TCP/IP、常見的 HTTP 方法矫夯、HTTP 狀態(tài)碼與HTTP 報文首部字段丈氓。這回主要講講 HTTP 與 HTTPS贰军。
HTTP 存在的缺點
在安全方面,HTTP 存在以下幾種缺點份帐。
- 竊聽風險:由于通訊使用明文傳輸璃吧,內(nèi)容可能會泄露。
- 篡改風險:第三方對傳輸?shù)臄?shù)據(jù)進行篡改废境,影響與服務端之間的正確通信畜挨。
- 冒充風險:可能會出現(xiàn)中間人攻擊,第三方冒充服務器噩凹。
其實上面三種問題可以總結(jié)為通信未加密巴元,而 HTTPS 的出現(xiàn)則很好的解決了以上問題。
什么是 HTTPS
與 HTTP 協(xié)議的明文傳輸相比驮宴,HTTPS 是將這些內(nèi)容加密逮刨,確保信息傳輸安全。最后一個字母 S 指的是 SSL(Secure Socket Layer堵泽,安全套接層)/TLS(Transport Layer Security禀忆,安全傳輸層協(xié)議) 協(xié)議臊旭,它位于 HTTP 協(xié)議與 TCP/IP 協(xié)議之間。
HTTPS 使用了非對稱加密箩退。
私鑰只存在于服務器上离熏,服務器下發(fā)的內(nèi)容不可能被偽造,因為別人都沒有私鑰戴涝,所以無法加密滋戳。
所有人都有公鑰,但私鑰只有服務器有啥刻,所以服務器才能看到被加密的內(nèi)容奸鸯。
HTTPS 的工作過程
針對上面的三個缺點,說一下 HTTPS 是如何應對的可帽。
- HTTPS 使用非對稱加密傳輸密碼娄涩,使用這個密碼加密數(shù)據(jù),避免第三方獲取內(nèi)容映跟。
- 發(fā)送方將信息的
哈希值
一起發(fā)送過去蓄拣,接收方會把解密后的數(shù)據(jù)與哈希值進行對比,避免被篡改努隙。 - HTTPS 由權(quán)威機構(gòu)頒布 CA(Certificate Authority球恤,電子商務認證授權(quán)機構(gòu)) 證書,使用證書校驗機制防止第三方的偽裝荸镊。
什么是哈希值咽斧?
哈希值是通過哈希算法壓縮后得到的數(shù)據(jù)值,理論上來說不管多復雜的數(shù)據(jù)都可以通過哈希算法求得哈希值躬存。比如我們下載的 Android SDK 就會提供一個 SHA-256 校驗和张惹,這個就屬于哈希算法的一種。
如何使用 HTTPS
現(xiàn)在有很多網(wǎng)站都已經(jīng)廣泛使用 HTTPS岭洲,比如 www.baidu.com
宛逗。
而且現(xiàn)在 iOS 提交至 App Store 的應用都必須使用 HTTPS 進行網(wǎng)絡請求。所以了解如何使用 HTTPS 還是很有必要的钦椭。
申請方式很簡單了拧额,拿阿里云舉例,打開官網(wǎng)選擇安全 -> CA 證書服務彪腔,填寫信息購買即可侥锦。
為什么不一直使用 HTTPS
在上一會我們講過 HTTP 有三次握手,在加入 HTTPS 之后就變成了四次握手德挣,所以效率會降低一些恭垦,不過還是能接受的。
由于 HTTPS 會降低一定的速度,還有一些額外的成本番挺。所以對于一些不太需要加密的信息唠帝,還是有很多企業(yè)傾向于選擇 HTTP。
最后
這個第二篇和第一篇的間隔有點長玄柏,自己最近還是有點懶襟衰,各位多多包涵。
寫博客這種東西粪摘,感覺對自己還是有不少幫助的瀑晒,雖然自己水平不高,但是本來一些比較模糊的知識點徘意,經(jīng)過查資料苔悦、寫博客慢慢也有一些進步了。所以呢椎咧,這里還是推薦大家嘗試一下通過寫博客進行知識總結(jié)和學習玖详,有的時候只是看還是容易忘的??。