你注意到了嗎?百度已經(jīng)全站實現(xiàn)https了!
百度從14年開始對外開放了https的訪問,并于3月初正式對全網(wǎng)用戶進行了https跳轉。
你也許會說,切換就切換唄,和我有啥關系?https對于互聯(lián)網(wǎng)安全的重要性,和空氣對于人類的重要性一樣。百度全站切換到https之后,我們才可以愉快地搜索。
https究竟是如何實現(xiàn)讓我們更加安全的呢?讓百度技術宅來個深度揭秘:
問題1:https是什么?我有沒有用到https?
https是http over ssl(Secure Socket Layer),簡單講就是http的安全版本,在http的基礎上通過傳輸加密和身份認證保證了傳輸過程中的安全性。
你通常訪問的網(wǎng)站大部分都是http的,最簡單的方法可以看網(wǎng)址是以http://開頭還是https://開頭。
以上是chrome,firefox,IE10使用https時的效果。注意圖中綠色的部分,后面會詳細說。
想進一步了解HTTPS,可以閱讀《大型網(wǎng)站的HTTPS實踐(一)-- HTTPS協(xié)議和原理》。
問題2:https為什么比http安全?https加密是不是需要我在電腦上安裝證書/保存密碼?
不帶“s”的http不安全,主要是因為它傳輸?shù)氖敲魑膬热?也不對傳輸雙方進行身份驗證。只要在數(shù)據(jù)傳輸路徑的任何一個環(huán)節(jié)上,都能看到傳輸?shù)膬热,甚至對其進行修改。例如文章“攻下隔壁女生路由器后,我都做了些什么”中,很多攻擊的環(huán)節(jié),都是通過分析http的內容來進行。而在現(xiàn)實生活中,你很有可能泄露你的論壇高級會員賬號/密碼,游戲vip賬號/密碼,隱私的聊天內容,郵件,在線購物信息……實在是太可怕的有木有!
https之所以安全,是因為它利用ssl/tls協(xié)議傳輸。那么你的電腦上需要安裝什么密鑰或者證書嗎?一般情況作為普通用戶是不用考慮這些的,我們有操作系統(tǒng),瀏覽器,數(shù)學家,安全和網(wǎng)絡工程師等等, 幫你都做好了, 放心的打開瀏覽器用就好啦!
如果你實在好奇,想知道雙方不用相同的密鑰如何進行加密的,可以搜索下“公鑰加密”(非對稱加密),“RSA”,“ DH 密鑰交換”,“ssl 原理”,“數(shù)字證書”等關鍵詞。
你也許會說,不就是加密嘛,我wifi密碼都能破,找個工具分分鐘就破解了!這個想法是錯的, 雖然沒有絕對的安全,但是可以極大增加破解所需要的成本,https目前使用的加密方式是需要巨大的計算量(按照目前計算機的計算能力)才能破解的,你會用世界上最強的超級計算機花費100年解密,看看100年前隔壁老王在百度什么嗎?
問題3:百度為什么要上https?
我們每天會處理用戶投訴,比如:頁面出現(xiàn)白頁/出現(xiàn)某些奇怪的東西,返回了403的頁面,搜索不了東西,搜索url帶了小尾巴,頁面總要閃幾次,頁面彈窗廣告,搜索個汽車就有人給我打電話推銷4s店和保險什么的……各種千奇百怪的情況碰到過的請舉手。
查來查去,很大一部分原因是有些壞人在數(shù)據(jù)的傳輸過程中修改百度的頁面內容,竊聽用戶的搜索內容。https就是能解決這樣問題的技術,趕緊把瀏覽器首頁改成https://www.baidu.com吧!
從方向上來說,HTTPS也是未來的趨勢,目前大家使用的HTTP還是1.1/1.0版本的,新的HTTP2.0版本的標準已經(jīng)發(fā)布了。標準中涉及了加密的規(guī)范,雖然標準中沒有強制使用,但已有很多瀏覽器實現(xiàn)聲稱只支持基于加密連接的HTTP2.0(https://http2.github.io/faq/#does-http2-require-encryption)。
問題4:https不就是在http后面加個s,很難么? 難,又不難。
它包含證書,卸載,流量轉發(fā),負載均衡,頁面適配,瀏覽器適配,refer傳遞……手指肯定不夠數(shù)。
對于一個超小型個人站點來說,技術宅1天就能搞定從申請證書到改造完成。如果是從零開始建設,會更容易。
但是對于百度搜索這種大胖紙來說,可就難了——
①它一開始并不是為https設計的;
②內容豐富(內容本身的表現(xiàn)形式很多:圖片,視頻,flash,form等等),種類豐富(頁面上除了自然結果,有視頻,圖片,地圖,貼吧,百科 ,第三方的內容, app等等);
③數(shù)據(jù)來源復雜,有幾十個內部產品線的內容,幾百個域名,成千上萬個開發(fā)者的內容;
④百度在全國,甚至世界范圍都有很多idc和cdn節(jié)點,都得覆蓋到;
⑤還不能因此拖慢了百度的速度(國內使用https的銀行,在線交易的站點,有沒有覺得很慢?);
⑥上https本來就是為了更好的體驗,可不能導致大家使用不穩(wěn)定。
……
想了解詳細內容,可以閱讀《大型網(wǎng)站的HTTPS實踐(四)-- 協(xié)議層以外的實踐[1]》。
Google部署https花費了1-2年,13年將證書從1024位升級到2048位花了3個月。百度也是去年就開放了入口和小流量,但是今年3月才進行全量上線,可以想像整體的復雜性。
問題5:如何看待百度搜索支持全站https?
國外的幾個大型站點都https化了,這是未來互聯(lián)網(wǎng)的趨勢(有興趣的同學可以搜索下“http/2”)。
對百度自身來說,https能夠保護用戶體驗,減少劫持/隱私泄露對用戶的傷害。
有人會說,我沒有被劫持,百度上https沒什么作用,反而讓我變慢了一些。從我們的第一手數(shù)據(jù)可以看到,劫持的影響正越來越大,在法制不健全的環(huán)境下,它被當成一個產業(yè),很多公司以它為生,不少以此創(chuàng)業(yè)的團隊還拿到了風投。等它真正傷害到你的時候,你可能又會問我們?yōu)槭裁床蛔鲂┦裁。所以,我們寧愿早一些去面對它?/p>
https在國內的大型站點目前還只用在部分賬戶的登陸和支付等環(huán)節(jié)。百度也是國內第一個全站https的大型站點,它的用戶非常多,流量也很大。百度能夠上線https會打消大家的疑慮,對其他國內的站點是很好的示范,這個帶頭作用會顯著加速國內互聯(lián)網(wǎng)https的進程,有助于中國互聯(lián)網(wǎng)的網(wǎng)絡安全建設。百度作為搜索引擎,是流量的入口和分發(fā)的渠道,后續(xù)如果對https的站點內容的抓取,標記,權值傾斜,那么更能引導互聯(lián)網(wǎng)的網(wǎng)站向https進行遷移。
問題6:https慢不慢?
繁重的計算和多次交互天然的影響了https的訪問速度。如果什么優(yōu)化都不做,https會明顯慢很多。在百度已經(jīng)進行過很多速度優(yōu)化的條件下,如果站點本身已經(jīng)做過常規(guī)優(yōu)化,但是不針對https做優(yōu)化,這種情況下我們實測的結果是0.2-0.4秒耗時的增加。如果是沒有優(yōu)化過的站點,慢1秒都不是夢。至于現(xiàn)在慢不慢呢,大家已經(jīng)體驗了這么多天了,有感覺嗎?
A.慢死了,你們在做啥?
B.有些慢啊
C.基本無感
D.啥,我已經(jīng)用了https了?
是不是選的C或者D?喂喂,選A的那位,你打開別的網(wǎng)站慢么?以前沒有上HTTPS的時候慢么?隔壁老王在蹭你網(wǎng)呢。
所以,不是慢,是沒有優(yōu)化。
問題7:https耗性能嗎?
握手的時候耗,建好連接之后就不太耗了。
按照目前加密強度的計算開銷,服務器支撐握手性能會下降6-8倍,但是如果建立好連接之后,服務器就幾乎可能撐住打滿網(wǎng)卡的https流量了。所以連接復用率的提升和計算性能的優(yōu)化都是重點?梢蚤喿x《大型網(wǎng)站的HTTPS實踐(三)-- 基于協(xié)議和配置的優(yōu)化》。
問題8:劫持有些什么樣的途經(jīng)?
你的電腦,你設置的dns,你的瀏覽器,你用的網(wǎng)絡,都有可能被劫持。
簡單和大家介紹下運營商的內容劫持是如何進行的,運營商會分析你的網(wǎng)絡請求,它可以先于網(wǎng)站回包,也能修改數(shù)據(jù)包的內容。所以它可以讓你跳轉一次,在網(wǎng)址上加上小尾巴,也能在你訪問的頁面彈出小廣告。
感興趣的話,還可以通過這篇文章看看你的電腦如何被lsp劫持的《暗云木馬》。
問題9:https解決了所有劫持問題嗎?
俗話說有終有始,我們來說一說文章開始說的瀏覽器上的綠色標記。它標志著這個安全連接可信賴的級別。綠色通常是好的,黃色則是說明有些不安全,例如在https的頁面中加載了http的資源,這樣http的資源還是有被劫持的風險。
其實客戶端,局域網(wǎng)的風險也很大,惡意插件,木馬可以做很多事情,你使用的路由器,DNS也比較脆弱。如果某個大型網(wǎng)站被標記為了紅色,那你就更要小心了(當然也可能是某個猴子忘記了續(xù)費替換證書,導致證書過期了),你有可能遭受了ssl劫持(中間人攻擊的一種),特別是遇到如下圖提示的時候(訪問一些自己簽名的站點也會有類似的提示)。中間人攻擊還有其他種類的,比如代理你的通信讓你退化http, 還可以利用注入根證書,可以讓你瀏覽器還是綠色的標記,就問你怕不怕?
沒有絕對的安全,但是我們可以盡量降低風險。https能夠在絕大部分情況下保證互聯(lián)網(wǎng)訪問數(shù)據(jù)傳輸?shù)陌踩@是目前我們力所能及的工作。
問題10:我應該如何更爽更快切換到https?
實際上你不需要動手,百度的攻城獅已經(jīng)體貼的幫你做到了!
現(xiàn)在訪問百度試試,我們已經(jīng)自動切換到https了,再也不用擔心隱私泄露的問題,趕緊來體驗吧!