百度全面開放HTTPS的幾個重要問題

百度運維發表於2015-05-06

你注意到了嗎?百度已經全站實現 https 了! 

百度全站 https FAQ

百度從 14 年開始對外開放了 https 的訪問,並於 3 月初正式對全網使用者進行了 https 跳轉。

你也許會問,切換就切換唄,和我有啥關係?我平常用百度還不是照常順順當當的,沒感覺到什麼切換。

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

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

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

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

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

百度全站 https FAQ

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

想進一步瞭解 HTTPS,可以閱讀《大型網站的 HTTPS 實踐(一)– HTTPS 協議和原理

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

百度全站 https FAQ

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

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

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

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

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

我們每天會處理使用者投訴,比如說:

頁面出現白頁 / 出現某些奇怪的東西

返回了 403 的頁面

搜尋不了東西

搜尋 url 帶了小尾巴, 頁面總要閃幾次

頁面彈窗廣告

搜尋個汽車就有人給我打電話推銷 4s 店和保險什麼的

百度全站 https FAQ

各種千奇百怪的情況碰到過的請舉手。

查來查去,很大一部分原因是有些壞人在資料的傳輸過程中修改百度的頁面內容,竊聽使用者的搜尋內容。悄悄告訴你,https 就是能解決這樣問題的技術哦, 趕緊把瀏覽器首頁改成https://www.baidu.com吧。

從方向上來說,HTTPS 也是未來的趨勢,目前大家使用的 HTTP 還是 1.1/1.0 版本的,新的 HTTP2.0 版本的標準已經發布了。標準中涉及了加密的規範,雖然標準中沒有強制使用,但是已經有很多瀏覽器實現聲稱他們只會支援基於加密連線的 HTTP2.0(https://http2.github.io/faq/#does-http2-require-encryption)。

問題 4:https 不就是在 http 後面加個 s,很難麼?

百度全站 https FAQ

難,又不難。

它包含證照,解除安裝,流量轉發,負載均衡,頁面適配,瀏覽器適配,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 FAQ

國外的幾個大型站點都 https 化了,這是未來網際網路的趨勢 (有興趣的同學可以搜尋下’http/2’ )。

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

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

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

問題 6:https 慢不慢?

百度全站 https FAQ

繁重的計算和多次互動天然的影響了 https 的訪問速度。。如果什麼優化都不做,https 會明顯慢很多。在百度已經進行過很多速度優化的條件下,如果站點本身已經做過常規優化,但是不針對 https 做優化,這種情況下我們實測的結果是 0.2-0.4 秒耗時的增加。如果是沒有優化過的站點,慢 1 秒都不是夢。至於現在慢不慢呢,大家已經體驗了這麼多天了,有感覺嗎?

答案:A 慢死了,你們在做啥?  B 有些慢啊  C 還行, 基本無感  D 啥, 我已經用了 https 了?

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

所以,不是慢,是沒有優化。

問題 7:https 耗效能嗎?

百度全站 https FAQ

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

問題 8:劫持有些什麼樣的途經?

百度全站 https FAQ

你的電腦,你設定的 dns,你的瀏覽器,你用的網路,都有可能被劫持。

簡單和大家介紹下運營商的內容劫持是如何進行的,運營商會分析你的網路請求,它可以先於網站回包,也能修改資料包的內容。所以它可以讓你跳轉一次,在網址上加上小尾巴,也能在你訪問的頁面彈出小廣告。

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

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

百度全站 https FAQ

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

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

百度全站 https FAQ

百度全站 https FAQ

還是那句話,沒有絕對的安全,但是我們可以儘量降低風險。

https 能夠在絕大部分情況下保證網際網路訪問資料傳輸的安全,這是目前我們力所能及的工作。

問題 10:我應該如何更爽更快切換到 https?

如此強悍有用的 https,我也想體驗,在安全的網際網路世界中翱翔,那麼我該怎麼做呢?

實際上你不需要動手,百度的攻城獅已經體貼的幫你做到了。現在訪問百度試試,我們已經自動切換到 https 了,再也不用擔心隱私洩露的問題,趕緊來體驗吧!

另外以下一些技巧能有讓 https 有更好的效能哦:

1 使用更高階大氣上檔次的瀏覽器(最好是非 IE 系列的,比如 chrome,firefox,safari 瀏覽器,或者百度等雙核瀏覽器的極速模式。

2 把瀏覽器首頁或者收藏夾的百度 url 也換為 https://www.baidu.com ,可以讓你有更快更好的體驗。

3 如何將百度設定成首頁? 這裡有詳細的教程哦 http://www.baidu.com/cache/sethelp/help.html

相關文章