百度公開支持https,我們還在等什麼呢?
百度從2014年開始對外開放了https的訪問,並於3月初正式對全網用戶進行了https跳轉。
你也許會問,切換就切換唄,和我有啥關係?我平常用百度還不是照常順順當當的,沒感覺到什麼切換。
話說,平常我們呼吸空氣也順順溜溜的,沒有什麼感覺,但要是沒有了空氣,那就沒法愉快的生活了。https對於互聯網安全的重要性,正如空氣對於我們人類的重要性一樣。百度全站切換到https之後,我們才可以愉快的搜索,愉快的上網。
https究竟是如何實現讓我們更加安全呢,讓百度技術宅來個深度揭秘:
問題1:https是什麼?我有沒有用到https?
https是httpoverssl(SecureSocketLayer),簡單講就是http的安全版本,在http的基礎上通過傳輸加密和身份認證保證了傳輸過程中的安全性。你通常訪問的網站大部分都是http的,最簡單的方法可以看看網址是以http://開頭還是https://開頭。
以下幾個截圖就是chrome,firefox,IE10在使用https時的效果。
注意圖中綠色的部分, 我們後麵詳細說說。
想進一步了解 HTTPS,可以閱讀《大型網站的 HTTPS 實踐(一)– HTTPS 協議和原理》
問題2:https為什麼比http安全?https加密是不是需要我在電腦上安裝證書/保存密碼?

不帶“s”的http不安全,主要是因為它傳輸的是明文內容,也不對傳輸雙方進行身份驗證。隻要在數據傳輸路徑的任何一個環節上,都能看到傳輸的內容,甚至對其進行修改。例如一篇文章“攻下隔壁女生路由器後,我都做了些什麼”中,很多攻擊的環節,都是通過分析http的內容來進行。而在現實生活中呢,你很有可能泄露你的論壇高級會員賬號/密碼,遊戲vip賬號/密碼,隱私的聊天內容,郵件,在線購物信息,等等。實在是太可怕的有木有!
https之所以安全,是因為他利用ssl/tls協議傳輸。舉個簡單的例子,電影風語者中,美軍發現密碼經常被日本竊聽和破解,就征召了29名印第安納瓦霍族人作為譯電員,因為這語言隻有他們族人懂。即使日本人竊聽了電文,但是看不懂內容也沒用;想偽造命令也無從下手,修改一些內容的話,印第安人看了,肯定會說看(shen)不(me)懂(gui)。看到這裏,你肯定發現了,這是基於兩邊都有懂這個語言(加密解密規則)derencaixinga,namewodediannaoshangxuyaoanzhuangshenmemiyaohuozhezhengshuma?yibanqingkuangzuoweiputongyonghushibuyongkaolvzhexiede,womenyoucaozuoxitong,liulanqi,shuxuejia,anquanhewangluogongchengshidengdeng,幫你都做好了,放心的打開瀏覽器用就好啦。
如果你實在好奇,想知道雙方不用相同的密鑰如何進行加密的,可以搜索下”公鑰加密”(非對稱加密),”RSA”,”DH密鑰交換”,“ssl原理”“數字證書”等關鍵詞。
有朋友會想了,不就是加密嗎,我wifi密碼都能破,找個工具分分鍾就破解了。這個想法可不對,雖然沒有絕對的安全,但是可以極大增加破解所需要的成本,https目前使用的加密方式是需要巨大的計算量(按照目前計算機的計算能力)才可能破解的,你會用世界上最強的超級計算機花費100年(隻是一個比喻)去解密,看看100年前隔壁老王在百度上搜什麼嗎。
問題3:百度為什麼要上https?
我們每天會處理用戶投訴,比如說:頁麵出現白頁/出現某些奇怪的東西;返回了403的頁麵;搜索不了東西;搜索url帶了小尾巴,頁麵總要閃幾次;頁麵彈窗廣告;搜索個汽車就有人給我打電話推銷4s店和保險什麼的…

各ge種zhong千qian奇qi百bai怪guai的de情qing況kuang碰peng到dao過guo的de請qing舉ju手shou。查zha來lai查zha去qu,很hen大da一yi部bu分fen原yuan因yin是shi有you些xie壞huai人ren在zai數shu據ju的de傳chuan輸shu過guo程cheng中zhong修xiu改gai百bai度du的de頁ye麵mian內nei容rong,竊qie聽ting用yong戶hu的de搜sou索suo內nei容rong。悄qiao悄qiao告gao訴su你ni,https就是能解決這樣問題的技術哦,趕緊把瀏覽器首頁改成https://www.baidu.com吧。
從方向上來說,HTTPS也是未來的趨勢,目前大家使用的HTTP還是1.1/1.0版本的,新的HTTP2.0版ban本ben的de標biao準zhun已yi經jing發fa布bu了le。標biao準zhun中zhong涉she及ji了le加jia密mi的de規gui範fan,雖sui然ran標biao準zhun中zhong沒mei有you強qiang製zhi使shi用yong,但dan是shi已yi經jing有you很hen多duo瀏liu覽lan器qi實shi現xian聲sheng稱cheng他ta們men隻zhi會hui支zhi持chi基ji於yu加jia密mi連lian接jie的deHTTP2.0(https://http2.github.io/faq/#does-http2-require-encryption)。
問題4:https不就是在http後麵加個s,很難麼?

難,又不難。
它包含證書,卸載,流量轉發,負載均衡,頁麵適配,瀏覽器適配,refer傳遞等等等等。反正我指頭肯定不夠數。
對於一個超小型個人站點來說,技術宅1天就能搞定從申請證書到改造完成。如果是從零開始建設,會更容易。
但是對於百度搜索這種大胖紙來說,可就難了。
1,它一開始並不是為https設計的
2,內容豐富(內容本身的表現形式很多:圖片,視頻,flash,form等等),種類豐富(頁麵上除了自然結果,有視頻,圖片,地圖,貼吧,百科,第三方的內容,app等等)。
3,數據來源複雜,有幾十個內部產品線的內容,幾百個域名,成千上萬個開發者的內容
4,百度在全國,甚至世界範圍都有很多idc和cdn節點,都得覆蓋到。
5,還不能因此拖慢了百度的速度(國內使用https的銀行,在線交易的站點,有沒有覺得很慢?)
6,上https本來就是為了更好的體驗,可不能導致大家使用不穩定。
…
想了解更詳細的內容,可以閱讀《大型網站的HTTPS實踐(四)–協議層以外的實踐[1]》
Google部署https花費了1-2年,13年將證書從1024位升級到2048位花了3個月。百度也是去年就開放了入口和小流量,但是今年3月才進行全量上線,可以想像整體的複雜性。
問題5:如何看待百度搜索支持全站https?

國外的幾個大型站點都https化了,這是未來互聯網的趨勢(有興趣的同學可以搜索下’http/2’)。
對百度自身來說,https能夠保護用戶體驗,減少劫持/隱私泄露對用戶的傷害。
很多人會有疑惑,我沒有被劫持,百度上https有(you)什(shen)麼(me)作(zuo)用(yong),反(fan)而(er)讓(rang)我(wo)變(bian)慢(man)了(le)一(yi)些(xie)。從(cong)我(wo)們(men)的(de)第(di)一(yi)手(shou)數(shu)據(ju)可(ke)以(yi)看(kan)到(dao),劫(jie)持(chi)的(de)影(ying)響(xiang)正(zheng)越(yue)來(lai)越(yue)大(da),在(zai)法(fa)製(zhi)不(bu)健(jian)全(quan)的(de)環(huan)境(jing)下(xia),它(ta)被(bei)當(dang)成(cheng)一(yi)個(ge)產(chan)業(ye),很(hen)多(duo)公(gong)司(si)以(yi)它(ta)為(wei)生(sheng),不(bu)少(shao)以(yi)此(ci)創(chuang)業(ye)的(de)團(tuan)隊(dui)還(hai)拿(na)到(dao)了(le)風(feng)投(tou)。等(deng)它(ta)真(zhen)正(zheng)傷(shang)害(hai)到(dao)你(ni)的(de)時(shi)候(hou),你(ni)可(ke)能(neng)又(you)會(hui)問(wen)我(wo)們(men)為(wei)什(shen)麼(me)不(bu)做(zuo)些(xie)什(shen)麼(me)。所(suo)以(yi),我(wo)們(men)寧(ning)願(yuan)早(zao)一(yi)些(xie)去(qu)麵(mian)對(dui)它(ta)。
https在國內的大型站點目前還隻用在部分賬戶的登陸和支付等環節。百度也是國內第一個全站https的大型站點,它的用戶非常多,流量也很大。百度能夠上線https會打消大家的疑慮,對其他國內的站點是很好的示範,這個帶頭作用會顯著加速國內互聯網https的進程,有助於中國互聯網的網絡安全建設。百度作為搜索引擎,是流量的入口和分發的渠道,後續如果對https的站點內容的抓取,標記,權值傾斜,那麼更能引導互聯網的網站向https進行遷移。
問題6:https慢不慢?

繁重的計算和多次交互天然的影響了https的訪問速度。。如果什麼優化都不做,https會明顯慢很多。在百度已經進行過很多速度優化的條件下,如果站點本身已經做過常規優化,但是不針對https做優化,這種情況下我們實測的結果是0.2-0.4秒耗時的增加。如果是沒有優化過的站點,慢1秒都不是夢。至於現在慢不慢呢,大家已經體驗了這麼多天了,有感覺嗎?
答案:A慢死了,你們在做啥?B有些慢啊C還行,基本無感D啥,我已經用了https了?
是不是選的C或者D?喂喂,選A的那位你打開別的網站慢麼,以前沒有上HTTPS的時候慢麼。。。隔壁老王在蹭你網呢。
所以,不是慢,是沒有優化。
問題7:https耗性能嗎?

答案是,握手的時候耗,建好連接之後就不太耗了。按照目前加密強度的計算開銷,服務器支撐握手性能會下降6-8倍,但是如果建立好連接之後,服務器就幾乎可能撐住打滿網卡的https流量了。所以連接複用率的提升和計算性能的優化都是重點。可以閱讀《大型網站的HTTPS實踐(三)–基於協議和配置的優化》
問題8:劫持有些什麼樣的途經?

你的電腦,你設置的dns,你的瀏覽器,你用的網絡,都有可能被劫持。
簡jian單dan和he大da家jia介jie紹shao下xia運yun營ying商shang的de內nei容rong劫jie持chi是shi如ru何he進jin行xing的de,運yun營ying商shang會hui分fen析xi你ni的de網wang絡luo請qing求qiu,它ta可ke以yi先xian於yu網wang站zhan回hui包bao,也ye能neng修xiu改gai數shu據ju包bao的de內nei容rong。所suo以yi它ta可ke以yi讓rang你ni跳tiao轉zhuan一yi次ci,在zai網wang址zhi上shang加jia上shang小xiao尾wei巴ba,也ye能neng在zai你ni訪fang問wen的de頁ye麵mian彈dan出chu小xiao廣guang告gao。感gan興xing趣qu的de話hua,還hai可ke以yi通tong過guo這zhe篇pian文wen章zhang看kan看kan你ni的de電dian腦nao如ru何he被beilsp劫持的《暗雲木馬》
問題9:https解決了所有劫持問題嗎?

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


還是那句話,沒有絕對的安全,但是我們可以盡量降低風險。
https能夠在絕大部分情況下保證互聯網訪問數據傳輸的安全,這是目前我們力所能及的工作。
問題10:我應該如何更爽更快切換到https?
如此強悍有用的https,我也想體驗,在安全的互聯網世界中翱翔,那麼我該怎麼做呢?
實際上你不需要動手,百度的攻城獅已經體貼的幫你做到了。現在訪問百度試試,我們已經自動切換到https了,再也不用擔心隱私泄露的問題,趕緊來體驗吧!
另外以下一些技巧能有讓https有更好的性能哦:
1,使用更高端大氣上檔次的瀏覽器(最好是非IE係列的,比如chrome,firefox,safari瀏覽器,或者百度等雙核瀏覽器的極速模式。
2,把瀏覽器首頁或者收藏夾的百度url也換為https://www.baidu.com,可以讓你有更快更好的體驗。



