一篇文章讀透CDN HTTPS安全加速基本概念、解決方案及最佳化實踐

小資一夏發表於2017-11-01
大家都知道,HTTP 本身是明文傳輸的,沒有經過任何安全處理,網站HTTPS解決方案透過在HTTP協議之上引入證書服務,完美解決網站的安全問題。本文將為大家介紹阿里雲CDN HTTPS安全加速傳輸的基礎概念、解決方案、技術優勢和最佳化實踐。

關於HTTPS的那些基本概念

需求推進技術革命,網際網路是如此誕生,HTTPS也是這樣。人們有在網際網路上分享和瀏覽資訊的需求,所以資訊的傳輸技術由此誕生並不斷升級。後來,人們位網際網路上的資訊傳輸制定了一些準則,也就是網路協議HTTP。從最早1991年釋出的HTTP/0.9版本,直到最新的HTTP/2,傳輸速度也在不斷升級。下面,我們來看下關於HTTP都有哪些基本的概念。


HTTP是什麼?
HTTP是網際網路上應用最為廣泛的一種網路協議,是一個客戶端和伺服器端請求和應答的標準(TCP),用於從WWW伺服器傳輸超文字到本地瀏覽器的傳輸協議,它可以使瀏覽器更加高效,使網路傳輸減少。

HTTPS是什麼?
HTTPS是安全超文字傳輸協議,英文全稱:Hyper Text Transfer Protocol over Secure Socket Layer,它是以安全為目標的HTTP通道,簡單講是HTTP的安全版。它的工作原理是將HTTP用SSL/TLS協議進行封裝,主要作用可以分為兩種:一種是建立一個資訊保安通道,來保證資料傳輸的安全;另一種就是確認網站的真實性。

SSL是什麼?
SSL是Secure Sockets Layer的縮寫,它是一個安全套接層。架構於TCP之上的安全通訊協定,它可以有效協助Internet應用軟體提升通訊時的資料完整性以及安全性。後來,標準化之後的SSL名稱改為 TLS(是“Transport Layer Security”的縮寫),中文叫做“傳輸層安全協議”。很多相關的文章都把這兩者並列稱呼(SSL/TLS),因為這兩者可以視作同一個東西的不同階段。

什麼是握手?
在加密傳輸之前,客戶端和伺服器首先必須建立連線和交換引數,校驗透過之後進行協商金鑰和傳輸資料,這個過程叫做握手(handshake)。

什麼是加密和解密?
“加密”的過程,就是把“明文”變成“密文”的過程;反之,“解密”的過程,就是把“密文”變為“明文”。在這兩個過程中,都需要一個關鍵的東西——叫做“金鑰”——來參與數學運算。

總結:簡單來說,HTTPS就是HTTP的安全增強版本,是HTTP協議與SSL加密協議的結合,所以也被稱為HTTP over SSL。


為什麼要使用HTTPS

HTTPS概念其實已經提出來好多年了,但直到近兩年,才開始被主流應用。所以,我們在給大家介紹CDN HTTPS解決方案之前,要先搞清楚,為什麼要選擇使用HTTPS來替換掉HTTP。

第一, HTTPS是更具安全性的傳輸協議,可以防止網站被篡改和劫持,這是最基本的功能。Chrome和Firefox未來將HTTP標記為不安全的協議。
第二, Apple ATS,要求IOS的 9.0或10.0的版本的APP使用HTTPS傳輸。
第三, 主流的瀏覽器已經支援基於TLS的HTTP/2。
第四, Google會給使用了HTTPS的網站進行搜尋排名的加權,在鼓勵大家使用。
第五, 美英政府的網站官網都已經轉向HTTPS。

我們可以看到,從使用者需求到整個行業大趨勢,都是在推送HTTPS的應用。那麼阿里雲CDN HTTPS的解決方案是怎樣的呢?


CDN HTTPS解決方案

HTTPS能夠有效的防止網站內容被篡改被劫持,加強了網站的安全性。所以在阿里雲CDN內容分發網路中,我們已經引入HTTPS安全加速解決方案。

舉個例子,在一個具有兩級節點的CDN分發架構中,從Client到L1節點再到L2,再回源到源站,一共具有三段TCP連線,每一段都支援了HTTPS。在這中間,在第一段Client到L1節點的時候,需要使用者自己的證書。L1到L2節點的時候使用的是我們的證書,保證了資料加密。回到源站的時候,如果使用者也希望用HTTPS,我們也可以透過配置實現整個鏈路的HTTPS,充分保證了網站內容的防篡改、防劫持。

以上方案,使用者需要將證書和私鑰傳輸到CDN的證書管理中心來去處理HTTPS的請求。同時,我們還有更進一步的方案。對於對自己的證書和私鑰敏感性很高的使用者,希望將私鑰儲存在自己的伺服器上,減少洩露的風險。針對這種情況,我們推出了無私鑰解決方案。首先,使用者搭建私鑰伺服器,當CDN和Client之間產生了HTTPS握手的時候,CDN處理的時候會提取SNI,域名配置拿到後,向私鑰伺服器(KeyServer)請求籤名或者解密預主金鑰。這個方案,我們其實是把私鑰的部分剝離出來,透過KeyServer來實現。目前,阿里雲已經實現了自己的KeyServer,使用者只需要在自己的私鑰伺服器上安裝一下KeyServer的rpm和配置一下即可。

阿里雲CDN 提供HTTPS安全加速方案,僅需開啟安全加速模式後上傳加速域名證書/私鑰,實現全網資料加密傳輸功能。


CDN HTTPS的技術優勢

? 支援HTTP/2功能
HTTP/2是對HTTP/1.x進行加強,阿里雲CDN 現已全平臺支援 HTTP/2,使用阿里雲 HTTPS 加速服務的域名,即可免費享受 HTTP/2服務。HTTP/2是一個二進位制的協議,支援頭部壓縮的功能,多路複用以及伺服器推送,能夠有效提升傳輸效率。

? 豐富的HTTPS配置項
阿里雲CDN  HTTPS可以以實現動態設定。舉個例子,在實踐中發現有些使用者的APP對HTTP/2協議實現的不夠完美,一種解法就是使用者修改自己的APP,把問題修復。另一種解法就是CDN透過配置把APP的HTTP/2協議給關掉,走HTTP/1.1協議,給使用者足夠的選擇。

? KeyServer無私鑰解決方案
前文提到,對於對自己證書和私鑰敏感度很高的使用者,可保障證書和私鑰安全性,支援自建KeyServer,提供KeyServer解決方案和原始碼。 

? 安全功能
HTTPS協議是由HTTP+SSL協議組合構建的需身份認證的加密傳輸網路協議,可全方位保障安全性,防止敏感資訊洩露,防止傳輸過程中流量被劫持,篡改,確保資料的完整性。

? 動態證書
支援動態證書,一個使用者,如果想使用HTTPS,在上傳完證書和私鑰之後,全網1分鐘就可以生效了。提供多規格證書,支援免費證書、證書過期提醒、證書屬性預覽。並且與阿里雲證書中心CAS聯動,可以申請免費證書。

? 靈活付費方式
有後付費和預付費兩種形式,後付費HTTPS 0.05元/萬次請求,預付費請求包也有450元,4000元,35000元各種規格,規格為1億次、10億次、100億次(雙十一折扣)。

HTTPS相對於HTTP傳輸具有如此多的優勢,那HTTPS在效能方面是否也同樣超越HTTP呢?我們知道,阿里雲CDN HTTPS可以減少回源率,提升通訊效率,提高驗證效率,減少跳轉耗時,這些是透過哪些技術來實現最佳化的呢?下面我們來看看CDN HTTPS的最佳化實踐。

CDN HTTPS最佳化實踐


首先,我們知道,阻礙HTTPS的效能提升的關鍵因素是傳輸變慢,因為TCP連線握手了之後,還要進行SSL的握手,多層的資料加解密以及證書傳輸。

那麼HTTPS一定會變慢嗎?
下圖,是淘寶和天貓使用了HTTPS後的一些效能提升資料。其實我們可以看到,淘寶首頁和搜尋、聚划算、天貓等頁面中,效能都是正向提升的。所以接下來,我們看看CDN HTTPS在效能方面到底做了哪些最佳化?


第一, 我們知道,SSL在握手階段是非常消耗資源的,SSL本身也支援了session ID和session ticket這兩種方式,第一種session ID是在sever端儲存會話ID,client端下次請求時候如果攜帶了同樣的ID,就可以恢復以前的會話,省去了大量的握手環節。但是一個client訪問不同sever的時候,存在ID共享的問題,實現起來比較複雜。第二種session ticket可以把會話的資訊發給client,client去儲存資訊,不會依賴於某個sever了。
第二, 我們需要把HTTP/2協議用起來,多路複用和頭部壓縮都是可以提升傳輸效率的。
第三, 域名合併,對於主站和使用者域名比較多的情況,我們就傾向於把域名做合併,合併成一個泛域名中做處理。這樣可以減少SSL握手,提升重用,進而提升效率。
第四, 協議棧最佳化,這是各大CDN公司都在做的功能。傳統協議棧是逐漸的試探並且越來越多傳送資料的過程,初始化視窗會比較小。我們現在會針對性進行調整,並且提升快速重傳的效率。
第五, 優先演算法,優先預製ECDSA的演算法,在產生相同加密強度的時候,資料量更少。

以上,都是為了更高效的傳輸和減少資料量,CDN HTTPS所進行的一些最佳化實踐。

另外,在峰值的應對上,除了自身的HTTPS最佳化,我們還需要在Cache系統上進行預熱,全部都載入到一級節點,就不存在回源的問題了。另外,排程系統中,我們業務系統要給出預判峰值,同時CDN需要做熱點地區的統計,與臨近非熱點地區分攤,依據節點能力按比例進行分配。當然,針對峰值情況,我們也需要做限流。

如何更好的使用HTTPS

說了這麼多HTTPS的好處,那使用者可以如何更好的使用HTTPS呢?
第一, 證書的申請,根據域名的型別來申請,阿里雲也提供證書服務,可簽發Symantec、CFCA、GeoTrust證書。證書的分類有三種:DV、OV和EV。DV是指基於域名級別的證書,機構只需要驗證域名的所有者,安全級別比較低。OV和EV是企業級別證書,除了驗證域名所有者還要驗證企業資訊。EV的證書,在訪問時能夠顯示公司名字。
第二, 源站改造,包括頁面資源的改造,TLS版本選擇1.0以上,關於session ID和session ticket的最佳化配置,證書上支援SHA256等工作。另外,實際應用中,有一個問題,當使用者輸入域名,我們可以透過配置強制HTTPS訪問。



以上就是關於HTTPS的介紹,在使用者訪問安全、內容傳輸安全等使用場景中,阿里雲CDN都可以提供相應的HTTPS安全加速解決方案,降低使用者成本,實現加速與安全的雙重效果。目前,阿里雲CDN HTTPS已經全面降價,後付費HTTPS 0.05元/萬次請求。為了迎接雙11,預付費資源包也推出新購特惠:雙十一當天30元購買1千萬次HTTPS請求數資源包。歡迎大家登入雙11會場進行選購。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29779867/viewspace-2146692/,如需轉載,請註明出處,否則將追究法律責任。

相關文章