百度全站切換https了!搜索更安全

2015-04-26 10:36:04來源:百度公眾號作者:

百度從14年開始對外開放了https的訪問,并于3月初正式對全網(wǎng)用戶進(jìn)行了https跳轉(zhuǎn)。你也許會說,切換就切換唄,和我有啥關(guān)系?https對于互聯(lián)網(wǎng)安全的重要性,和空氣對于人類的重要性一樣。https究竟是如何實(shí)現(xiàn)讓我們更加安全的呢?讓百度技術(shù)宅來個深度揭秘:

你注意到了嗎?百度已經(jīng)全站實(shí)現(xiàn)https了!

百度從14年開始對外開放了https的訪問,并于3月初正式對全網(wǎng)用戶進(jìn)行了https跳轉(zhuǎn)。

你也許會說,切換就切換唄,和我有啥關(guān)系?https對于互聯(lián)網(wǎng)安全的重要性,和空氣對于人類的重要性一樣。百度全站切換到https之后,我們才可以愉快地搜索。

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

問題1:https是什么?我有沒有用到https?

https是http over ssl(Secure Socket Layer),簡單講就是http的安全版本,在http的基礎(chǔ)上通過傳輸加密和身份認(rèn)證保證了傳輸過程中的安全性。

你通常訪問的網(wǎng)站大部分都是http的,最簡單的方法可以看網(wǎng)址是以http://開頭還是https://開頭。

\

以上是chrome,firefox,IE10使用https時的效果。注意圖中綠色的部分,后面會詳細(xì)說。

想進(jìn)一步了解HTTPS,可以閱讀《大型網(wǎng)站的HTTPS實(shí)踐(一)-- HTTPS協(xié)議和原理》。

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

\

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

https之所以安全,是因?yàn)樗胹sl/tls協(xié)議傳輸。那么你的電腦上需要安裝什么密鑰或者證書嗎?一般情況作為普通用戶是不用考慮這些的,我們有操作系統(tǒng),瀏覽器,數(shù)學(xué)家,安全和網(wǎng)絡(luò)工程師等等, 幫你都做好了, 放心的打開瀏覽器用就好啦!

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

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

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

\

我們每天會處理用戶投訴,比如:頁面出現(xiàn)白頁/出現(xiàn)某些奇怪的東西,返回了403的頁面,搜索不了東西,搜索url帶了小尾巴,頁面總要閃幾次,頁面彈窗廣告,搜索個汽車就有人給我打電話推銷4s店和保險什么的……各種千奇百怪的情況碰到過的請舉手。

查來查去,很大一部分原因是有些壞人在數(shù)據(jù)的傳輸過程中修改百度的頁面內(nèi)容,竊聽用戶的搜索內(nèi)容。https就是能解決這樣問題的技術(shù),趕緊把瀏覽器首頁改成https://www.baidu.com吧!

從方向上來說,HTTPS也是未來的趨勢,目前大家使用的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)制使用,但已有很多瀏覽器實(shí)現(xiàn)聲稱只支持基于加密連接的HTTP2.0(https://http2.github.io/faq/#does-http2-require-encryption)。

問題4:https不就是在http后面加個s,很難么? 難,又不難。

\

它包含證書,卸載,流量轉(zhuǎn)發(fā),負(fù)載均衡,頁面適配,瀏覽器適配,refer傳遞……手指肯定不夠數(shù)。

對于一個超小型個人站點(diǎn)來說,技術(shù)宅1天就能搞定從申請證書到改造完成。如果是從零開始建設(shè),會更容易。

但是對于百度搜索這種大胖紙來說,可就難了——

①它一開始并不是為https設(shè)計(jì)的;

②內(nèi)容豐富(內(nèi)容本身的表現(xiàn)形式很多:圖片,視頻,flash,form等等),種類豐富(頁面上除了自然結(jié)果,有視頻,圖片,地圖,貼吧,百科 ,第三方的內(nèi)容, app等等);

③數(shù)據(jù)來源復(fù)雜,有幾十個內(nèi)部產(chǎn)品線的內(nèi)容,幾百個域名,成千上萬個開發(fā)者的內(nèi)容;

④百度在全國,甚至世界范圍都有很多idc和cdn節(jié)點(diǎn),都得覆蓋到;

⑤還不能因此拖慢了百度的速度(國內(nèi)使用https的銀行,在線交易的站點(diǎn),有沒有覺得很慢?);

⑥上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位升級到2048位花了3個月。百度也是去年就開放了入口和小流量,但是今年3月才進(jìn)行全量上線,可以想像整體的復(fù)雜性。

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

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

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

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

https在國內(nèi)的大型站點(diǎn)目前還只用在部分賬戶的登陸和支付等環(huán)節(jié)。百度也是國內(nèi)第一個全站https的大型站點(diǎn),它的用戶非常多,流量也很大。百度能夠上線https會打消大家的疑慮,對其他國內(nèi)的站點(diǎn)是很好的示范,這個帶頭作用會顯著加速國內(nèi)互聯(lián)網(wǎng)https的進(jìn)程,有助于中國互聯(lián)網(wǎng)的網(wǎng)絡(luò)安全建設(shè)。百度作為搜索引擎,是流量的入口和分發(fā)的渠道,后續(xù)如果對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會明顯慢很多。在百度已經(jīng)進(jìn)行過很多速度優(yōu)化的條件下,如果站點(diǎn)本身已經(jīng)做過常規(guī)優(yōu)化,但是不針對https做優(yōu)化,這種情況下我們實(shí)測的結(jié)果是0.2-0.4秒耗時的增加。如果是沒有優(yōu)化過的站點(diǎn),慢1秒都不是夢。至于現(xiàn)在慢不慢呢,大家已經(jīng)體驗(yàn)了這么多天了,有感覺嗎?

A.慢死了,你們在做啥?

B.有些慢啊

C.基本無感

D.啥,我已經(jīng)用了https了?

是不是選的C或者D?喂喂,選A的那位,你打開別的網(wǎng)站慢么?以前沒有上HTTPS的時候慢么?隔壁老王在蹭你網(wǎng)呢。

所以,不是慢,是沒有優(yōu)化。

問題7:https耗性能嗎?

握手的時候耗,建好連接之后就不太耗了。

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

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

\

你的電腦,你設(shè)置的dns,你的瀏覽器,你用的網(wǎng)絡(luò),都有可能被劫持。

簡單和大家介紹下運(yùn)營商的內(nèi)容劫持是如何進(jìn)行的,運(yùn)營商會分析你的網(wǎng)絡(luò)請求,它可以先于網(wǎng)站回包,也能修改數(shù)據(jù)包的內(nèi)容。所以它可以讓你跳轉(zhuǎn)一次,在網(wǎng)址上加上小尾巴,也能在你訪問的頁面彈出小廣告。

感興趣的話,還可以通過這篇文章看看你的電腦如何被lsp劫持的《暗云木馬》。

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

\

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

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

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

問題10:我應(yīng)該如何更爽更快切換到https?

實(shí)際上你不需要動手,百度的攻城獅已經(jīng)體貼的幫你做到了!

現(xiàn)在訪問百度試試,我們已經(jīng)自動切換到https了,再也不用擔(dān)心隱私泄露的問題,趕緊來體驗(yàn)吧!

關(guān)鍵詞:httpsssl百度