當 「HTTP」 先生遇上「S」小姐

2021-09-10 22:58:19 字數 2604 閱讀 4652

情人節的晚上,天空中淅淅瀝瀝的下著帶有些寒意的小雨。http 先生孤零零的坐在咖啡廳中,對著面前的電腦發呆。他有意的遮蔽掉了周邊情侶們的竊竊私語,這對單身的他來說是**,也是一陣陣傷害。這時,咖啡廳的門被開啟了,風姿綽約的「s」小姐出現在 http 先生的眼中。當 http 先生遇見 s 小姐,會產生怎樣的化學反應呢?

http (超文字傳輸協議)是目前網際網路應用最廣泛的協議,伴隨著人們網路安全意識的加強,http「s」 被越來越多地採納。不論是訪問一些購物**,或是登入一些部落格、論壇等,我們都被 https 保護著,甚至 google chrome、firefox 等主流瀏覽器已經將所有基於 http 的站點都標記為不安全。

為什麼 http 是不安全的?我們先來簡單看下 http 訪問過程。

抓包如下:

如上圖所示,http 請求過程中,客戶端與伺服器之間沒有任何身份確認的過程,資料全部明文傳輸,「裸奔」在網際網路上,所以很容易遭到黑客的攻擊,如下:

可以看到,客戶端發出的請求很容易被黑客截獲,如果此時黑客冒充伺服器,則其可返回任意資訊給客戶端,而不被客戶端察覺,所以我們經常會聽到一詞「劫持」。

因此,可以說是 https 的使用是網際網路發展的必然趨勢,我們需要這樣一種手段來保障我們個人的財產安全,隱私安全。不論是在上網做什麼,我們都希望我們的足跡能夠被保護起來,不輕易地被不懷好意的人感知到。因此 https 應該應用在全部的上網場景之中,https everywhere!

通過上圖我們就可以了解到,相比 http,https 傳輸更加安全。

按說上網更加安全,這並沒有什麼不好的,然而 https 的推廣卻存在著一些障礙,比如 ssl 證書的**問題、建立安全通訊鏈路所帶來的額外開銷等。

證書開銷

首先是證書**問題,不少個人使用者在看到**之後,會產生「配置 https 是否值得」,「證書之間的**相差如此之大我該如何選擇」等疑問。這可能會使客戶在了解 https 帶來的好處之前,就直接打消配置 https 的念頭。其實針對個人部落格或者小**,又拍雲就提供 let』s encrypt 和 symantec 的兩款免費證書。 ov、ev 證書更建議企業採用,為**提供更全面的安全保障。

伺服器資源消耗

https,即 http over tls,建立一條安全通訊鏈路,需要經歷一次 ssl/tls 握手,在握手階段,雙方(客戶端和伺服器)會採用非對稱加密的方式進行金鑰協商,例如現在最流行的 rsa 演算法和臨時橢圓曲線演算法,金鑰協商的目的是計算出乙個稱為 「pre master」 的串,用以構建出最終的加密金鑰,這個加密金鑰用於對稱加密,即雙方進行資料傳輸時使用。非對稱加密最大的缺陷是其計算的複雜度,這些複雜的數學計算,往往會消耗一定的 cpu 資源。不過不用擔心,這消耗主要體現在服務端,例如又拍雲 cdn 邊緣的伺服器每秒需要處理數以萬計的 https 請求,這對伺服器的硬體資源是乙個極大的考驗。

另外,這裡的消耗主要來自於握手時候的消耗,建好連線之後就不太耗了。

那麼採用 https 後,到底會多用多少伺服器資源?

訪問速度

繁重的計算和多次互動天然的影響了 https 的訪問速度。如果什麼優化都不做,https 會明顯慢很多。如果做過常規優化,但是不針對 https 做優化,這種情況下測試的結果是 0.2-0.4 秒耗時的增加。如果是沒有優化過的站點,慢 1 秒都不是夢。

所以,不是慢,是沒有優化。

說到優化,為了能夠讓https更好更快的普及,工程師們設計出了不少針對性的優化點。

例如針對 ssl/tls 握手的開銷,引入了 ssl session 和 tls session tickets 的機制,用以復用會話,減少握手帶來的開銷;又拍雲 cdn 全網支援 http/2 和 tls 1.3 特性,http/2 帶來了巨大的速度提公升,具有諸如伺服器推送,標頭壓縮和並行請求等功能。而 tls 1.3 通過移除有安全隱患的加密演算法來提高安全性,通過簡化握手,減少延遲並提高效能。

針對 ssl/tls 握手會消耗大量的 cpu 資源,各廠商都在探索利用硬體(例如 intel 提供的 quick assistant technology)進行加速的道路;

針對證書昂貴的問題,又拍雲聯合 symantec、geotrust、trustasia、let』s encrypt 推出付費和免費 ssl 證書申請與管理一站式服務,無需繁雜流程,一鍵申請,自主部署,輕鬆實現**與 web 應用的 https 加密部署。

推薦閱讀:

不是 https 拖慢**速度,而是優化做的不夠優秀

https 到底加密了什麼?

《當阿呆遇上阿瓜》 當鐵鍬遇上石頭

該片是金 凱瑞成名之前在1994年給影迷奉獻的搞怪喜劇片 阿呆與阿瓜 的續集,說是續集,其實是前傳。新線公司讓我們足足等了10年才看到續集,然而此時影片的主創人員全部更換。少了金 凱瑞,似乎再沒有理由讓我們更期待看到這部影片。可別說筆者心態不正,筆者之所以看此片僅僅因為想看看新線公司是如何挖這塊金礦...

當技術遇上管理

哈佛商學院教授戴維 蓋兒文總結說過 我們的時間應該花在設計和除bug上,而不是不停地與上司打交道,或者監督別人的工作。作為乙個技術人員管理者,要麼你的技術能力徹底讓人信服,要麼你的想法與綜合能力高人一籌,而且還得顯得比手下的人要忙,不然誰心甘情願服從你的安排。很不巧,國內大多數公司裡,有些人的存在,...

當敏捷遇上銷售

在文章 敏捷與銷售 我的第一支scrum銷售團隊 中,對於大家經常關心的問題 是否能將銷售團隊做成敏捷的以及如何推動變革?銷售經理 eric krisfelt給出了自己的解答。他詳細描述了如何在銷售組織中實現scrum的步驟,並展示給大家非工程師團隊如何變成有自組織意識的敏捷團隊。在開始過渡之前,e...