百度公開支持https,我們還在等什么呢?

公司動(dòng)態(tài) 2015年06月19日

百度從2014年開始對(duì)外開放了https的訪問,并于3月初正式對(duì)全網(wǎng)用戶進(jìn)行了https跳轉(zhuǎn)。
你也許會(huì)問,切換就切換唄,和我有啥關(guān)系?我平常用百度還不是照常順順當(dāng)當(dāng)?shù)?,沒感覺到什么切換。
話說,平常我們呼吸空氣也順順溜溜的,沒有什么感覺,但要是沒有了空氣,那就沒法愉快的生活了。https對(duì)于互聯(lián)網(wǎng)安全的重要性,正如空氣對(duì)于我們?nèi)祟惖闹匾砸粯?。百度全站切換到https之后,我們才可以愉快的搜索,愉快的上網(wǎng)。

https究竟是如何實(shí)現(xiàn)讓我們更加安全呢,讓百度技術(shù)宅來個(gè)深度揭秘:

問題1:https是什么?我有沒有用到https?
https是httpoverssl(SecureSocketLayer),簡(jiǎn)單講就是http的安全版本,在http的基礎(chǔ)上通過傳輸加密和身份認(rèn)證保證了傳輸過程中的安全性。你通常訪問的網(wǎng)站大部分都是http的,最簡(jiǎn)單的方法可以看看網(wǎng)址是以http://開頭還是https://開頭。
以下幾個(gè)截圖就是chrome,firefox,IE10在使用https時(shí)的效果。

注意圖中綠色的部分, 我們后面詳細(xì)說說。
想進(jìn)一步了解 HTTPS,可以閱讀《大型網(wǎng)站的 HTTPS 實(shí)踐(一)– HTTPS 協(xié)議和原理》

問題2:https為什么比http安全?https加密是不是需要我在電腦上安裝證書/保存密碼?

不帶“s”的http不安全,主要是因?yàn)樗鼈鬏數(shù)氖敲魑膬?nèi)容,也不對(duì)傳輸雙方進(jìn)行身份驗(yàn)證。只要在數(shù)據(jù)傳輸路徑的任何一個(gè)環(huán)節(jié)上,都能看到傳輸?shù)膬?nèi)容,甚至對(duì)其進(jìn)行修改。例如一篇文章“攻下隔壁女生路由器后,我都做了些什么”中,很多攻擊的環(huán)節(jié),都是通過分析http的內(nèi)容來進(jìn)行。而在現(xiàn)實(shí)生活中呢,你很有可能泄露你的論壇高級(jí)會(huì)員賬號(hào)/密碼,游戲vip賬號(hào)/密碼,隱私的聊天內(nèi)容,郵件,在線購(gòu)物信息,等等。實(shí)在是太可怕的有木有!

https之所以安全,是因?yàn)樗胹sl/tls協(xié)議傳輸。舉個(gè)簡(jiǎn)單的例子,電影風(fēng)語者中,美軍發(fā)現(xiàn)密碼經(jīng)常被日本竊聽和破解,就征召了29名印第安納瓦霍族人作為譯電員,因?yàn)檫@語言只有他們族人懂。即使日本人竊聽了電文,但是看不懂內(nèi)容也沒用;想偽造命令也無從下手,修改一些內(nèi)容的話,印第安人看了,肯定會(huì)說看(shen)不(me)懂(gui)??吹竭@里,你肯定發(fā)現(xiàn)了,這是基于兩邊都有懂這個(gè)語言(加密解密規(guī)則)的人才行啊,那么我的電腦上需要安裝什么密鑰或者證書嗎?一般情況作為普通用戶是不用考慮這些的,我們有操作系統(tǒng),瀏覽器,數(shù)學(xué)家,安全和網(wǎng)絡(luò)工程師等等,幫你都做好了,放心的打開瀏覽器用就好啦。

如果你實(shí)在好奇,想知道雙方不用相同的密鑰如何進(jìn)行加密的,可以搜索下”公鑰加密”(非對(duì)稱加密),”RSA”,”DH密鑰交換”,“ssl原理”“數(shù)字證書”等關(guān)鍵詞。

有朋友會(huì)想了,不就是加密嗎,我wifi密碼都能破,找個(gè)工具分分鐘就破解了。這個(gè)想法可不對(duì),雖然沒有絕對(duì)的安全,但是可以極大增加破解所需要的成本,https目前使用的加密方式是需要巨大的計(jì)算量(按照目前計(jì)算機(jī)的計(jì)算能力)才可能破解的,你會(huì)用世界上最強(qiáng)的超級(jí)計(jì)算機(jī)花費(fèi)100年(只是一個(gè)比喻)去解密,看看100年前隔壁老王在百度上搜什么嗎。

問題3:百度為什么要上https?

我們每天會(huì)處理用戶投訴,比如說:頁(yè)面出現(xiàn)白頁(yè)/出現(xiàn)某些奇怪的東西;返回了403的頁(yè)面;搜索不了東西;搜索url帶了小尾巴,頁(yè)面總要閃幾次;頁(yè)面彈窗廣告;搜索個(gè)汽車就有人給我打電話推銷4s店和保險(xiǎn)什么的…

各種千奇百怪的情況碰到過的請(qǐng)舉手。查來查去,很大一部分原因是有些壞人在數(shù)據(jù)的傳輸過程中修改百度的頁(yè)面內(nèi)容,竊聽用戶的搜索內(nèi)容。悄悄告訴你,https就是能解決這樣問題的技術(shù)哦,趕緊把瀏覽器首頁(yè)改成https://www.baidu.com吧。
從方向上來說,HTTPS也是未來的趨勢(shì),目前大家使用的HTTP還是1.1/1.0版本的,新的HTTP2.0版本的標(biāo)準(zhǔn)已經(jīng)發(fā)布了。標(biāo)準(zhǔn)中涉及了加密的規(guī)范,雖然標(biāo)準(zhǔn)中沒有強(qiáng)制使用,但是已經(jīng)有很多瀏覽器實(shí)現(xiàn)聲稱他們只會(huì)支持基于加密連接的HTTP2.0(https://http2.github.io/faq/#does-http2-require-encryption)。

問題4:https不就是在http后面加個(gè)s,很難么?


難,又不難。
它包含證書,卸載,流量轉(zhuǎn)發(fā),負(fù)載均衡,頁(yè)面適配,瀏覽器適配,refer傳遞等等等等。反正我指頭肯定不夠數(shù)。
對(duì)于一個(gè)超小型個(gè)人站點(diǎn)來說,技術(shù)宅1天就能搞定從申請(qǐng)證書到改造完成。如果是從零開始建設(shè),會(huì)更容易。

但是對(duì)于百度搜索這種大胖紙來說,可就難了。
1,它一開始并不是為https設(shè)計(jì)的
2,內(nèi)容豐富(內(nèi)容本身的表現(xiàn)形式很多:圖片,視頻,flash,form等等),種類豐富(頁(yè)面上除了自然結(jié)果,有視頻,圖片,地圖,貼吧,百科,第三方的內(nèi)容,app等等)。
3,數(shù)據(jù)來源復(fù)雜,有幾十個(gè)內(nèi)部產(chǎn)品線的內(nèi)容,幾百個(gè)域名,成千上萬個(gè)開發(fā)者的內(nèi)容
4,百度在全國(guó),甚至世界范圍都有很多idc和cdn節(jié)點(diǎn),都得覆蓋到。
5,還不能因此拖慢了百度的速度(國(guó)內(nèi)使用https的銀行,在線交易的站點(diǎn),有沒有覺得很慢?)
6,上https本來就是為了更好的體驗(yàn),可不能導(dǎo)致大家使用不穩(wěn)定。

想了解更詳細(xì)的內(nèi)容,可以閱讀《大型網(wǎng)站的HTTPS實(shí)踐(四)–協(xié)議層以外的實(shí)踐[1]》

Google部署https花費(fèi)了1-2年,13年將證書從1024位升級(jí)到2048位花了3個(gè)月。百度也是去年就開放了入口和小流量,但是今年3月才進(jìn)行全量上線,可以想像整體的復(fù)雜性。

問題5:如何看待百度搜索支持全站https?

國(guó)外的幾個(gè)大型站點(diǎn)都https化了,這是未來互聯(lián)網(wǎng)的趨勢(shì)(有興趣的同學(xué)可以搜索下’http/2’)。

對(duì)百度自身來說,https能夠保護(hù)用戶體驗(yàn),減少劫持/隱私泄露對(duì)用戶的傷害。

很多人會(huì)有疑惑,我沒有被劫持,百度上https有什么作用,反而讓我變慢了一些。從我們的第一手?jǐn)?shù)據(jù)可以看到,劫持的影響正越來越大,在法制不健全的環(huán)境下,它被當(dāng)成一個(gè)產(chǎn)業(yè),很多公司以它為生,不少以此創(chuàng)業(yè)的團(tuán)隊(duì)還拿到了風(fēng)投。等它真正傷害到你的時(shí)候,你可能又會(huì)問我們?yōu)槭裁床蛔鲂┦裁?。所以,我們寧愿早一些去面?duì)它。

https在國(guó)內(nèi)的大型站點(diǎn)目前還只用在部分賬戶的登陸和支付等環(huán)節(jié)。百度也是國(guó)內(nèi)第一個(gè)全站https的大型站點(diǎn),它的用戶非常多,流量也很大。百度能夠上線https會(huì)打消大家的疑慮,對(duì)其他國(guó)內(nèi)的站點(diǎn)是很好的示范,這個(gè)帶頭作用會(huì)顯著加速國(guó)內(nèi)互聯(lián)網(wǎng)https的進(jìn)程,有助于中國(guó)互聯(lián)網(wǎng)的網(wǎng)絡(luò)安全建設(shè)。百度作為搜索引擎,是流量的入口和分發(fā)的渠道,后續(xù)如果對(duì)https的站點(diǎn)內(nèi)容的抓取,標(biāo)記,權(quán)值傾斜,那么更能引導(dǎo)互聯(lián)網(wǎng)的網(wǎng)站向https進(jìn)行遷移。

問題6:https慢不慢?

繁重的計(jì)算和多次交互天然的影響了https的訪問速度。。如果什么優(yōu)化都不做,https會(huì)明顯慢很多。在百度已經(jīng)進(jìn)行過很多速度優(yōu)化的條件下,如果站點(diǎn)本身已經(jīng)做過常規(guī)優(yōu)化,但是不針對(duì)https做優(yōu)化,這種情況下我們實(shí)測(cè)的結(jié)果是0.2-0.4秒耗時(shí)的增加。如果是沒有優(yōu)化過的站點(diǎn),慢1秒都不是夢(mèng)。至于現(xiàn)在慢不慢呢,大家已經(jīng)體驗(yàn)了這么多天了,有感覺嗎?
答案:A慢死了,你們?cè)谧錾?B有些慢啊C還行,基本無感D啥,我已經(jīng)用了https了?
是不是選的C或者D?喂喂,選A的那位你打開別的網(wǎng)站慢么,以前沒有上HTTPS的時(shí)候慢么。。。隔壁老王在蹭你網(wǎng)呢。
所以,不是慢,是沒有優(yōu)化。

問題7:https耗性能嗎?

答案是,握手的時(shí)候耗,建好連接之后就不太耗了。按照目前加密強(qiáng)度的計(jì)算開銷,服務(wù)器支撐握手性能會(huì)下降6-8倍,但是如果建立好連接之后,服務(wù)器就幾乎可能撐住打滿網(wǎng)卡的https流量了。所以連接復(fù)用率的提升和計(jì)算性能的優(yōu)化都是重點(diǎn)。可以閱讀《大型網(wǎng)站的HTTPS實(shí)踐(三)–基于協(xié)議和配置的優(yōu)化》

問題8:劫持有些什么樣的途經(jīng)?

你的電腦,你設(shè)置的dns,你的瀏覽器,你用的網(wǎng)絡(luò),都有可能被劫持。
簡(jiǎn)單和大家介紹下運(yùn)營(yíng)商的內(nèi)容劫持是如何進(jìn)行的,運(yùn)營(yíng)商會(huì)分析你的網(wǎng)絡(luò)請(qǐng)求,它可以先于網(wǎng)站回包,也能修改數(shù)據(jù)包的內(nèi)容。所以它可以讓你跳轉(zhuǎn)一次,在網(wǎng)址上加上小尾巴,也能在你訪問的頁(yè)面彈出小廣告。感興趣的話,還可以通過這篇文章看看你的電腦如何被lsp劫持的《暗云木馬

問題9:https解決了所有劫持問題嗎?

俗話說有終有始,我們來說一說文章開始說的瀏覽器上的綠色標(biāo)記。它標(biāo)志著這個(gè)安全連接可信賴的級(jí)別。綠色通常是好的,黃色則是說明有些不安全,例如在https的頁(yè)面中加載了http的資源,這樣http的資源還是有被劫持的風(fēng)險(xiǎn)。

其實(shí)客戶端,局域網(wǎng)的風(fēng)險(xiǎn)也很大,惡意插件,木馬可以做很多事情,你使用的路由器,DNS也比較脆弱。如果某個(gè)大型網(wǎng)站被標(biāo)記為了紅色,那你就更要小心了(當(dāng)然也可能是某個(gè)猴子忘記了續(xù)費(fèi)替換證書,導(dǎo)致證書過期了),你有可能遭受了ssl劫持(中間人攻擊的一種),特別是遇到如下圖提示的時(shí)候(訪問一些自己簽名的站點(diǎn)也會(huì)有類似的提示)。中間人攻擊還有其他種類的,比如代理你的通信讓你退化http,還可以利用注入根證書,可以讓你瀏覽器還是綠色的標(biāo)記,就問你怕不怕?



還是那句話,沒有絕對(duì)的安全,但是我們可以盡量降低風(fēng)險(xiǎn)。
https能夠在絕大部分情況下保證互聯(lián)網(wǎng)訪問數(shù)據(jù)傳輸?shù)陌踩?,這是目前我們力所能及的工作。

問題10:我應(yīng)該如何更爽更快切換到https?
如此強(qiáng)悍有用的https,我也想體驗(yàn),在安全的互聯(lián)網(wǎng)世界中翱翔,那么我該怎么做呢?
實(shí)際上你不需要?jiǎng)邮郑俣鹊墓コ仟{已經(jīng)體貼的幫你做到了?,F(xiàn)在訪問百度試試,我們已經(jīng)自動(dòng)切換到https了,再也不用擔(dān)心隱私泄露的問題,趕緊來體驗(yàn)吧!

另外以下一些技巧能有讓https有更好的性能哦:
1,使用更高端大氣上檔次的瀏覽器(最好是非IE系列的,比如chrome,firefox,safari瀏覽器,或者百度等雙核瀏覽器的極速模式。
2,把瀏覽器首頁(yè)或者收藏夾的百度url也換為https://www.baidu.com,可以讓你有更快更好的體驗(yàn)。