HTTPS 學(xué)習(xí)筆記

在WWDC 2016上,蘋果在發(fā)布iOS 9的同時(shí)也向開發(fā)者傳遞了一個(gè)消息,那就是到2017年1月1日時(shí)App Store中所有應(yīng)用都必須啟用 App Transport Security應(yīng)用程序安全傳輸協(xié)議(簡稱ATS),從而提升應(yīng)用和系統(tǒng)安全性。不過今天蘋果在其開發(fā)者網(wǎng)站上表示將延長該規(guī)定的截止日期,以便給開發(fā)者更多的時(shí)間做好切換工作,我們都知道https 能夠加密信息,以免敏感信息被第三方獲取,所以很多銀行網(wǎng)站或電子郵箱等等安全級別較高的服務(wù)都會采用HTTPS協(xié)議

一、什么是 HTTPS
HTTP+加密+認(rèn)證+完整性包含=HTTPS,HTTP加上加密處理和認(rèn)證以及完整性保護(hù)后即是HTTPS
HTTPS并非是應(yīng)用層的一種新協(xié)議,只是HTTP通信接口部分使用SSL(Secure Socket Layer)和TLS(Transport Layer Security)協(xié)議替代而已。而SSL是采用一種公鑰加密的加密處理方式
二、 HTTPS 的缺點(diǎn)
1、SEO方面
使用HTTPS協(xié)議會使頁面的加載時(shí)間延長近50%,增加10%到20%的耗電,此外,HTTPS協(xié)議還會影響緩存,增加數(shù)據(jù)開銷和功耗,甚至已有安全措施也會受到影響也會因此而受到影響。
而且HTTPS協(xié)議的加密范圍也比較有限,在黑客攻擊、拒絕服務(wù)攻擊、服務(wù)器劫持等方面幾乎起不到什么作用。
最關(guān)鍵的,SSL證書的信用鏈體系并不安全,特別是在某些國家可以控制CA根證書的情況下,中間人攻擊一樣可行
2、經(jīng)濟(jì)方面
(1)、SSL證書需要錢,功能越強(qiáng)大的證書費(fèi)用越高,個(gè)人網(wǎng)站、小網(wǎng)站沒有必要一般不會用。
(2)、SSL證書通常需要綁定IP,不能在同一IP上綁定多個(gè)域名,IPv4資源不可能支撐這個(gè)消耗(SSL有擴(kuò)展可以部分解決這個(gè)問題,但是比較麻煩,而且要求瀏覽器、操作系統(tǒng)支持,Windows XP就不支持這個(gè)擴(kuò)展,考慮到XP的裝機(jī)量,這個(gè)特性幾乎沒用)。
(3)、HTTPS連接緩存不如HTTP高效,大流量網(wǎng)站如非必要也不會采用,流量成本太高。
(4)、HTTPS連接服務(wù)器端資源占用高很多,支持訪客稍多的網(wǎng)站需要投入更大的成本,如果全部采用HTTPS,基于大部分計(jì)算資源閑置的假設(shè)的VPS的平均成本會上去。
(5)、HTTPS協(xié)議握手階段比較費(fèi)時(shí),對網(wǎng)站的相應(yīng)速度有負(fù)面影響,如非必要,沒有理由犧牲用戶體驗(yàn)。
三、HTTPS 的優(yōu)點(diǎn)
1、安全性
盡管HTTPS并非絕對安全,掌握根證書的機(jī)構(gòu)、掌握加密算法的組織同樣可以進(jìn)行中間人形式的攻擊,但HTTPS仍是現(xiàn)行架構(gòu)下最安全的解決方案,主要有以下幾個(gè)好處:
(1)、使用HTTPS協(xié)議可認(rèn)證用戶和服務(wù)器,確保數(shù)據(jù)發(fā)送到正確的客戶機(jī)和服務(wù)器;
(2)、HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議,要比http協(xié)議安全,可防止數(shù)據(jù)在傳輸過程中不被竊取、改變,確保數(shù)據(jù)的完整性。
(3)、HTTPS是現(xiàn)行架構(gòu)下最安全的解決方案,雖然不是絕對安全,但它大幅增加了中間人攻擊的成本。
四、HTTPS簡介
  HTTPS其實(shí)是有兩部分組成:HTTP + SSL / TLS,也就是在HTTP上又加了一層處理加密信息的模塊。服務(wù)端和客戶端的信息傳輸都會通過TLS進(jìn)行加密,所以傳輸?shù)臄?shù)據(jù)都是加密后的數(shù)據(jù)。具體是如何進(jìn)行加密,解密,驗(yàn)證的,且看下圖。


  1. 客戶端發(fā)起HTTPS請求
  這個(gè)沒什么好說的,就是用戶在瀏覽器里輸入一個(gè)https網(wǎng)址,然后連接到server的443端口。
  2. 服務(wù)端的配置
  采用HTTPS協(xié)議的服務(wù)器必須要有一套數(shù)字證書,可以自己制作,也可以向組織申請。區(qū)別就是自己頒發(fā)的證書需要客戶端驗(yàn)證通過,才可以繼續(xù)訪問,而使用受信任的公司申請的證書則不會彈出提示頁面(startssl就是個(gè)不錯的選擇,有1年的免費(fèi)服務(wù))。這套證書其實(shí)就是一對公鑰和私鑰。如果對公鑰和私鑰不太理解,可以想象成一把鑰匙和一個(gè)鎖頭,只是全世界只有你一個(gè)人有這把鑰匙,你可以把鎖頭給別人,別人可以用這個(gè)鎖把重要的東西鎖起來,然后發(fā)給你,因?yàn)橹挥心阋粋€(gè)人有這把鑰匙,所以只有你才能看到被這把鎖鎖起來的東西。
  3. 傳送證書
  這個(gè)證書其實(shí)就是公鑰,只是包含了很多信息,如證書的頒發(fā)機(jī)構(gòu),過期時(shí)間等等。
  4. 客戶端解析證書
  這部分工作是有客戶端的TLS來完成的,首先會驗(yàn)證公鑰是否有效,比如頒發(fā)機(jī)構(gòu),過期時(shí)間等等,如果發(fā)現(xiàn)異常,則會彈出一個(gè)警告框,提示證書存在問題。如果證書沒有問題,那么就生成一個(gè)隨即值。然后用證書對該隨機(jī)值進(jìn)行加密。就好像上面說的,把隨機(jī)值用鎖頭鎖起來,這樣除非有鑰匙,不然看不到被鎖住的內(nèi)容。
  5. 傳送加密信息
  這部分傳送的是用證書加密后的隨機(jī)值,目的就是讓服務(wù)端得到這個(gè)隨機(jī)值,以后客戶端和服務(wù)端的通信就可以通過這個(gè)隨機(jī)值來進(jìn)行加密解密了。
  6. 服務(wù)段解密信息
  服務(wù)端用私鑰解密后,得到了客戶端傳過來的隨機(jī)值(私鑰),然后把內(nèi)容通過該值進(jìn)行對稱加密。所謂對稱加密就是,將信息和私鑰通過某種算法混合在一起,這樣除非知道私鑰,不然無法獲取內(nèi)容,而正好客戶端和服務(wù)端都知道這個(gè)私鑰,所以只要加密算法夠彪悍,私鑰夠復(fù)雜,數(shù)據(jù)就夠安全。
  7. 傳輸加密后的信息
  這部分信息是服務(wù)段用私鑰加密后的信息,可以在客戶端被還原
  8. 客戶端解密信息
  客戶端用之前生成的私鑰解密服務(wù)段傳過來的信息,于是獲取了解密后的內(nèi)容。整個(gè)過程第三方即使監(jiān)聽到了數(shù)據(jù),也束手無策。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容