兩周前,蘋果在發布會上宣布蘋果持續將 iOS 9 的文件發送給開發者,確保 iOS 9 推出時相關 App 都已準備就緒。這些文件的資訊,包括一個叫做 App Transport Security (ATS) 的安全功能。 它要求所有進入到 iOS 9 裝置的資訊,都必須經過 HTTPS 加密設定。這樣可以防止黑客窺探用戶進行網路傳輸的資料。
![網絡安全: iOS提高安全“門檻”HTTPS該升了嗎?](http://big5.thethirdmedia.com/g2b.aspx/www.thethirdmedia.com/null.gif)
此消息一出,引發了網友與業界的熱烈討論, Google 發文表示:“雖然 Google 認同產業采用 HTTPS ,但對于經過我們系統的第三方廣告網絡和創新程式碼而言,卻不見得完全認同此想法。”無論如何,蘋果此舉多少都算是為移動端數據安全設立了一個更高的新“門檻”。
因此,除了廣告商,一大批依舊采用 HTTP 的移動互聯網企業都需要加快步伐,在近期作出是否要切換成 HTTPS 的抉擇。那對于企業來說,選擇 HTTPS 在當下來說是否值得?它的利弊何在?下面我們就將從不同角度入手,為大家進行分析。
升級 HTTPS,價值何在?
HTTPS 實質上是一種面向安全信息通信的協議。從最終的數據解析的角度上看,HTTPS 與 HTTP 沒有本質上的區別。對于接收端而言,SSL/TSL 將接收的數據包解密,將數據傳給 HTTP 協議層,就形成了 HTTP 數據。而 HTTPS 則是將 HTTP 數據包通過 SSL/TSL 層加密, 從而保證傳輸數據的安全性。
SSL/TSL 是一個分層協議,共有兩層組成,其中 SSL/TSL 握手協議允許服務方與客戶方互相認證,并在應用層協議傳送數據之前協商出一個加密算法和會話密鑰。SSL/TSL的握手協議主要交換數字證書、隨機數、機密通信協議這三個信息,以保證訪問的安全。
借此,HTTPS 可完成以下目標,這也是它基于安全性的主要價值:
l 數據保密性。保證內容在傳輸過程中不會被第三方查看到,通過非對稱加密及密鑰交換來實現。
l 數據完整性。可及時發現被第三方篡改的傳輸內容,以確保數據的完整性得到及時維護。
l 身份校驗。保證數據到達用戶期望的目的地,即PKI和數字證書。
這樣就可以明白為什么 Google 廣告沒法投放了:當用戶使用 Safari 瀏覽網頁,若廣告內容不是透過 HTTPS 連線(對絕大多數廣告來說并不需要進行加密),在 iOS 9 將無法順利執行,也就遭到了屏蔽。
難掩之瑕:HTTPS 兩大弊端
對于企業來說,切換成 HTTPS 的成本并不高,還可以大幅提升安全性。可還是有部分互聯網企業不愿意使用它,為什么?這是因為 HTTPS 也有一些不容忽視的弊端存在。
首先,HTTPS 會拖慢訪問速度。由上文可見,要做到從 HTTP 到 HTTPS 的轉變,需要多次計算和交互,SSL 完全握手導致的延時,證書的狀態檢查等。這些自然影響了 HTTPS 的訪問速度。這是 HTTPS 不被很多公司選擇的主要原因。
其次,HTTPS 消耗 CPU 的計算能力。這主要發生在握手階段的大數運算,其中密鑰交換時的私鑰解密階段的性能消耗可以高達整個 SSL 握手性能消耗的 95% 。完全握手時, web server 的處理能力會降低至 HTTP 的 10% 甚至以下。
以上兩點是 HTTPS 的主要劣勢所在。因此即便它在安全性上具有得天獨厚的價值,很多互聯網企業基于用戶體驗和產品性能的考慮,還是選擇不用 HTTPS。
選擇 HTTPS,值還是不值?
因此,說 HTTPS “瑕不掩瑜”顯然不太公允,因為我們可以看到,它的這些弊端很容易“戳中”不少產品的性能側重點。但同時也要看到,針對它的這些劣勢,尤其是造成訪問延時這方面,已經存在很成熟的優化方法。
百度從 2014 年開始對外開放了 HTTPS 的訪問,之后進行監測分析,發現如果網站什么優化都不做,HTTPS 明顯慢很多。而如果站點本身已經做過常規優化,但是不針對 HTTPS 做優化,百度實測的結果是 0.2 - 0.4 秒耗時的增加。
因此,企業可以針對網站做部分優化,具體可分為以下幾個方面:
首先,我們可以在服務器端配置 HSTS ,減少 302 跳轉;設置 ssl session 的共享內存 cache ;配置相同的 session ticket key ,部署在多個服務器上,這樣多個不同的服務器也能產生相同的 session ticket;設置 ocsp stapling file,這樣 ocsp 的請求就不會發往 ca 提供的 ocsp 站點,而是發往網站的 webserver。
我們還可以優先使用 ecdhe 密鑰交換算法,因為它支持 PFS( perfect forward secrecy ),能夠實現 false start;設置 tls record size ,最好是能動態調整 record size ,即連接剛建立時 record size 設置成 msg ,連接穩定之后可以將 record size 動態增加。
如果有條件的話,還可以啟用 tcp fast open。或者啟用 SPDY,這樣會明顯提升 HTTPS 速度,甚至比 HTTP 還要快。在無線 WIFI 環境下, SPDY 比 HTTP 要快 50ms 左右,3G 環境下比 HTTP 要快 250ms。
這些方法,可以從 HTTPS 運作的各個方面入手來優化訪問速度,降低延遲。當然,這些優化做起來并不是一件簡單的事情,但企業大可以不必親自操刀來搞 —— 你可以選擇接入提供充分優化過的 HTTPS 服務的云平臺。以 UPYUN 為例,作為國內首家提供全節點 HTTPS 訪問(自定義 SSL 服務)的云 CDN 廠商,UPYUN 支持客戶自主上傳 SSL 證書,開啟完全自定義的 HTTPS 訪問。
借此,接入該服務的客戶將享受完全自主、全網的 HTTPS 加密功能,并與 UPYUN 云CDN 加速服務相結合,將流經用戶和服務器之間數據進行加密。同時,UPYUN 將支持默認域名 HTTPS 服務和自主域名 HTTPS 服務兩種方式選擇使用,結合客戶實際需求,將“HTTPS + CDN” 整合到客戶產品體系中,實現終端訪問“加密+加速”的服務。
關鍵的一點,UPYUN 自定義 SSL 支持 TLS 協議支持的版本就有蘋果指定的 TLS v 1.2,這讓使用 UPYUN HTTPS 服務的用戶可以與 iOS 9 系統下的蘋果設備無縫對接。
這樣一來,以 UPYUN 為代表的提供 HTTPS 服務的云平臺,讓企業得以一站式地享受 HTTPS 的安全性價值、規避它的性能劣勢。效果等同于用戶自主切換并構建 HTTPS 優化系統,還幫助用戶節省了這兩項工作的成本花費。
無論選擇哪種途徑,針對性的優化都會最大限度地消除 HTTPS 兩大弊端對用戶體驗及產品性能的消極影響,從而凸顯它杰出的安全性價值。在這個前提下,結合數據安全對于企業發展的重要性,以及快速搶占 iOS 新市場的意義,我們可以得出這樣一個結論:選擇 HTTPS ,絕對是值得的。
蘋果又一次引領了行業的潮流,適時跟上不失為明智之舉。你的選擇,又是什么呢?
(新聞稿 2015-09-25)