跟HTTP比起來 HTTPS是如何讓搜索更安全的?

百度從2014年開始對外開放瞭https的訪問,並於3月初正式對全網用戶進行瞭https跳轉。你也許會問,切換就切換唄,和我有啥關系?我平常用百度還不是照常順順當當的,沒感覺到什麼切換。

話說,平常我們呼吸空氣也順順溜溜的,沒有什麼感覺,但要是沒有瞭空氣,那就沒法愉快的生活瞭。https對於互聯網安全的重要性,正如空氣對於我們人類的重要性一樣。百度全站切換到https之後,我們才可以愉快的搜索,愉快的上網。

https究竟是如何實現讓我們更加安全呢?讓百度技術宅來個深度揭秘:

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

https是httpoverssl(SecureSocketLayer),簡單講就是http的安全版本,在http的基礎上通過傳輸加密和身份認證保證瞭傳輸過程中的安全性。你通常訪問的網站大部分都是http的,最簡單的方法可以看看網址是以http://開頭還是https://開頭。

以下幾個截圖就是chrome,firefox,IE10在使用https時的效果。

註意圖中綠色的部分,我們後面詳細說說。

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

不帶s的http不安全,主要是因為它傳輸的是明文內容,也不對傳輸雙方進行身份驗證。隻要在數據傳輸路徑的任何一個環節上,都能看到傳輸的內容,甚至對其進行修改。例如一篇文章攻下隔壁女生路由器後,我都做瞭些什麼中,很多攻擊的環節,都是通過分析http的內容來進行。而在現實生活中呢,你很有可能泄露你的論壇高級會員賬號/密碼,遊戲vip賬號/密碼,隱私的聊天內容,郵件,在線購物信息,等等。實在是太可怕的有木有!

https之所以安全,是因為他利用ssl/tls協議傳輸。舉個簡單的例子,電影風語者中,美軍發現密碼經常被日本竊聽和破解,就征召瞭29名印第安納瓦霍族人作為譯電員,因為這語言隻有他們族人懂。即使日本人竊聽瞭電文,但是看不懂內容也沒用;想偽造命令也無從下手,修改一些內容的話,印第安人看瞭,肯定會說看(shen)不(me)懂(gui)。看到這裡,你肯定發現瞭,這是基於兩邊都有懂這個語言(加密解密規則)的人才行啊,那麼我的電腦上需要安裝什麼密鑰或者證書嗎?一般情況作為普通用戶是不用考慮這些的,我們有操作系統,瀏覽器,數學傢,安全和網絡工程師等等,幫你都做好瞭,放心的打開瀏覽器用就好啦。

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

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

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

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

各種千奇百怪的情況碰到過的請舉手。查來查去,很大一部分原因是有些壞人在數據的傳輸過程中修改百度的頁面內容,竊聽用戶的搜索內容。悄悄告訴你,https就是能解決這樣問題的技術哦。

從方向上來說,HTTPS也是未來的趨勢,目前大傢使用的HTTP還是1.1/1.0版本的,新的HTTP2.0版本的標準已經發佈瞭。標準中涉及瞭加密的規范,雖然標準中沒有強制使用,但是已經有很多瀏覽器實現聲稱他們隻會支持基於加密連接的HTTP2.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本來就是為瞭更好的體驗,可不能導致大傢使用不穩定。

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

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

國外的幾個大型站點都https化瞭,這是未來互聯網的趨勢(有興趣的同學可以搜索下http/2)。

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

很多人會有疑惑,我沒有被劫持,百度上https有什麼作用,反而讓我變慢瞭一些。從我們的第一手數據可以看到,劫持的影響正越來越大,在法制不健全的環境下,它被當成一個產業,很多公司以它為生,不少以此創業的團隊還拿到瞭風投。等它真正傷害到你的時候,你可能又會問我們為什麼不做些什麼。所以,我們寧願早一些去面對它。

https在國內的大型站點目前還隻用在部分賬戶的登陸和支付等環節。百度也是國內第一個全站https的大型站點,它的用戶非常多,流量也很大。百度能夠上線https會打消大傢的疑慮,對其他國內的站點是很好的示范,這個帶頭作用會顯著加速國內互聯網https的進程,有助於中國互聯網的網絡安全建設。百度作為搜索引擎,是流量的入口和分發的渠道,後續如果對https的站點內容的抓取,標記,權值傾斜,那麼更能引導互聯網的網站向https進行遷移。