爲什麼在12306買火車票要裝根證書?(轉)

12306主頁上有一段很顯眼的文字—--“爲保障您順暢購票,請下載安裝根證書。”這段文字和12306很多的其他問題一起成爲網友詬病12306的話題,但是這個看似安全的根證書確可能會成爲讓12306用戶們的安全受到嚴重威脅的東西。

  爲什麼在12306上買火車票要裝根證書?想要回答這個問題,那麼我們就必須先要提前回答說幾個定義:

  電腦在與服務器交換敏感信息時會使用一種叫做SSL的加密方式。在很多情況下,交換敏感信息必須要通過這個方式來進行。包括12306在內,淘寶、京東等在交換敏感信息的時候都使用了SSL進行加密。

  那麼,我們怎麼知道網站是否使用了SSL加密呢?最簡單的辦法就是看看地址欄——如果網址前面寫的是“https://”,那麼這個頁面就是使用SSL加密的。這意味着你訪問的頁面是安全的並且可以用來交換敏感信息。如果你使用的是Internet Explorer 7或者以上版本瀏覽器,你應該能在瀏覽器地址欄的最右邊看到一把小鎖頭。就像下圖所示的那樣。點開這把小鎖頭,就能看到關於https的信息。

爲什麼在12306上買火車票要裝根證書

  用其他瀏覽器呢?現在流行的瀏覽器中,全部都會標示出來該網頁是使用了https以防止竊聽和用戶的個人信息安全的。比如下邊的圖就是在Firefox中使用https瀏覽維基百科的畫面。

爲什麼在12306上買火車票要裝根證書

  但是,誰又能保證https的安全呢?這裏就又是一個概念:數字證書認證機構。它的譯名很多,不過大致意思對就可以了。英文Certificate Authority,經常被縮寫爲CA。下文中也使用“CA”來稱呼數字證書認證機構。

  CA是一個機構——打個比方,這就像是信用卡一樣。一個人向銀行申請信用卡,就像網站向CA申請證書。CA覺得網站的信用合格,就簽發SSL證書;銀行覺得申請者的信用合格,就簽發信用卡。等等,什麼又是“SSL證書”呢?這就是CA簽發給網站用以證明網站身份的“信用卡”。有了SSL證書,加密網頁才能被信任。當你在訪問一個被https加密的網頁時,網頁會出示一份證書,這份證書有助於用戶信任這個網站。沒有正規CA簽發的證書的網站是不會受到瀏覽器的信任的——就算你用了SSL來加密也沒用。

  再看看前面的兩張圖片。第一章支付寶的截圖中,CA就是:VeriSign Class 3 Public Primary Certification Authority - G5

  第二章維基百科的截圖中,CA是:DigiCert Inc

  瀏覽器又上哪知道CA是正規的呢?那就是根證書庫,這是一個操作系統認爲可以被信任的CA的名單。幾乎每個能上網操作系統(甚至包括諾基亞最弱智的S40系統)都有一個。在這裏用Mac做示例。Mac的根證書庫在:

  Finder-應用程序-其他(提示:OS X Lion或者以下操作系統叫“實用工具”)-鑰匙串訪問

  然後在最左邊找“系統根證書”,點進去便是。看到的應該如下圖所示。

爲什麼在12306上買火車票要裝根證書

  可以試着找一下VeriSign Class 3 Public Primary Certification Authority - G5—--肯定能找到!每次瀏覽器瀏覽https網頁時,都會把網站出示的證書在這個庫裏面找一圈,能找到就OK,找不到的話,就證明你這個CA是不可靠的!

  SSL加密的目的除了保證用戶信息在傳輸過程中的安全外,還保障了服務器的身份。有些簡單的SSL證書僅僅需要用該網站域名的郵箱向CA發封郵件就能簽發了——不過如果是一個組織、團體、基金會或者盈利性機構(尤其是類似於支付寶或者PayPal的網絡支付服務),那麼SSL證書的簽發就會變得十分繁瑣。網站需要提供大量的文件以證明該網站是可靠的。如果能夠證明該網站是可靠的,CA纔會給簽發證書。

  還有一種證書被稱作EV SSL證書(Extended Validation SSL),這種證書遵循全球統一的嚴格身份驗證標準頒發的SSL證書,是目前業界最高安全級別的SSL證書。這種證書顯示起來,就是俗稱的綠色地址欄證書。在IE 7和以上IE瀏覽器便會出現綠色地址欄,並且滾動展示該網站的信息和CA信息。如下圖所示。

爲什麼在12306上買火車票要裝根證書

  EV SSL的申請手續更復雜,申請費用也更多,但是可以換來更多用戶的信任。左圖是Firefox下顯示EV SSL證書的樣子。這個證書證明了這個網站的經營者爲Wikimedia Foundation, Inc.,並且位置位於San Francisco California, US

  據一個叫做VeriSign的CA的統計,使用EV SSL能大幅提升用戶對於網站的信任。

爲什麼在12306上買火車票要裝根證書

  總而言之,SSL證書的目的有兩個:

  • 確保網站和用戶之間的數據是加密並且可靠的
  • 確保網站所宣稱身份的真實可靠

  如果訪問12306.cn會出現什麼情況呢?12306的確使用了SSL來加密以保障網頁的安全,而訪問直接訪問12306就算不安裝根證書也不會出現任何問題。以Chrome爲例,訪問主頁不會出現任何問題,但是若要訪問購票頁面就會無法訪問,如下圖所示。

爲什麼在12306上買火車票要裝根證書

  12306會讓我們訪問一個叫https://dynamic.12306.cn/otsweb的網址。如果我們直接用Chrome訪問這個網址呢?華麗麗的一幕出現了:

爲什麼在12306上買火車票要裝根證書

  使用IE8瀏覽這個頁面會出現這樣:

爲什麼在12306上買火車票要裝根證書

  回到Chrome,如果我們點擊“仍然繼續”,就會正常的看到購票頁面沒有任何阻力。IE8也是一樣,不過IE8的地址欄整個都會變成紅色的。

  如果我們點擊旁邊的小鎖頭來查看關於這個證書的信息呢?會出現下圖。

爲什麼在12306上買火車票要裝根證書

  再點擊“證書信息”,會看到這個12306的證書是一個叫做SRCA的CA簽發的。

爲什麼在12306上買火車票要裝根證書

  但是在“鑰匙串訪問”裏面根本沒有一個叫做SRCA的CA。

  如果安裝上了首頁給出的“根證書”,(依然以Mac爲例)鑰匙串訪問裏面就會有一個叫做“SRCA”的CA!並且本來這個證書是不受信任的,安裝之後就會被設置爲“此證書已被標記爲受此賬戶信任”。

爲什麼在12306上買火車票要裝根證書

  這樣的話,瀏覽器和操作系統就會信任這個證書,便不會給予CA信息不對的提示了。

  “SRCA”又是何許人也?在上圖中,可以看到SRCA的細節部分,“組織”填寫的是Sinorail Certification Authority

  這也就不難分析了,“Sinorial”中的“S”和“R”,“Certification Authority”的“S”和“A”,就拼出來了“SRCA”。

  在搜索引擎中搜索Sinorail Certification Authority中的Sinorail,就會找到這樣一個網站。叫做“中鐵信息工程集團”。網址就是http://www.sinorail.com/。

  聽名字就知道這網站跟12306肯定是親戚關係。換種話說,就是自己給自己發證書。你說這證書能可信嗎?

  正規CA的證書可不是白給的。要不然CA靠什麼吃飯?一個SSL證書從每年三百塊RMB到一萬五不等。據我所知,最貴的證書是VeriSign簽發的,一萬五的那個就是他。而便宜的三百塊證書——只要不是VeriSign,其他CA簽出來的最便宜的證書差不多都這個價。比較便宜的代表是Go Daddy、Comodo等。爲什麼12306要使用自己給自己的證書呢?貌似唯一的合理解釋就是省錢。能省大概三百到一萬五不等。

  鐵道部有時候買一張火車票就差不多夠一年的證書錢了。

  那麼又爲什麼說鐵道部用自己的證書不安全呢?有些人在12306上買票時會看到“該站點安全證書的吊銷信息不可用,是否繼續”的提示語,這又是什麼意思呢?

  從前有個倒黴的的荷蘭CA,叫DigiNotar。這CA被黑客攻破,導致這家CA辦法給一些用戶的證書的私鑰失效(私鑰是在SSL加密環節中非常重要的東西),這就使得以這家CA的名義僞造證書成了可能。黑客可以通過這家公司的名義僞造證書給一些非法網站,客戶一看這是加密過的還是大型CA簽出來的證書便很容易信任。因爲DigiNotar名氣很大,並且很多大公司都使用它的證書,微軟等操作系統廠商在這事情發生之後開始忙不迭的發佈更新補丁來宣佈DigiNotar的證書失效。

  微軟在 KB2607712 補丁中宣佈了DigiNotar的根證書無效。原文如下:

Microsoft 已獲悉 DigiNotar 頒發了至少一個虛假數字證書,DigiNotar 是受信任的根證書頒發機構存儲區中出現的一個證書頒發機構。虛假證書可能用於哄騙內容、執行網頁仿冒攻擊或者針對所有 Web 瀏覽器用戶(包括 Internet Explorer 用戶)執行中間人攻擊。雖然這不是 Microsoft 產品中的一個漏洞,但是此問題會影響 Microsoft Windows 的所有受支持版本。

  這家倒黴公司最後因爲這件事華麗麗的破產了。

  正如這件事一樣,有些知名CA出了事,微軟這些系統廠商會忙不迭的發佈補丁來宣佈該CA的根證書失效——有些小CA,尤其是“SRCA”這樣貌似只給12306.cn一個網站簽證書的CA,人還懶得管你呢!那麼小CA的私鑰失竊之後會有什麼不就措施呢?那就是證書吊銷列表,英文全稱Certificate revocation list,簡稱CRL。下文也稱呼它爲CRL。更詳細的內容可以參考這裏這裏(英文)

  CRL是幹什麼的呢?比如你買的證書被盜了,只要將信息報告給CA,那麼CA就會把你這個證書的信息添加到這個CA的CRL中,每次瀏覽器瀏覽加密網頁時,都會檢索CRL信息——如果沒有的話,就會提示該站點安全證書的吊銷信息不可用,是否繼續。想必讀到這裏大家也都知道了,12306的證書沒有CRL信息。這也就意味着,12306所使用的證書一旦失竊,系統廠商不會管這個,甚至連最後一根救命稻草CRL都沒有。

  簡而言之,如果證書出了事,兩種解決辦法:

  • 系統廠商發補丁宣佈該證書失效
  • 通過CRL宣佈證書失效

  不過可惜的是12306出了事,這兩招哪一個都不頂用。

  如果證書失竊,會有什麼後果?最可能的後果就是像前面的倒黴蛋一樣倒閉。不過我大天朝鐵道部(儘管已經倒閉)欠了兩千多億還巍然不動,這個可能便沒有了。前面提到的兩種解決方案一個也用不了,這就意味着遭殃的一定是用戶。證書失竊,任何人都能用此來僞造虛假證書。儘管SRCA頒發的證書默認是不受到系統信任的,但是中國這麼多去過12306網站買過火車票的人——假設所有人都安裝了這個根證書使的系統對此證書信任——一個綠色地址欄都能提升用戶這麼大的信任,違法網站只要獲得了SRCA頒發的證書,豈不就能輕易騙得用戶的信任?

  如果你是Mac用戶,並且訪問https://www.12306.cn沒有任何障礙,那麼可以參考這個視頻中的步驟來將SRCA的證書設爲不信任。如果要購票,反其道而行之即可。

  從證書的角度看,中國很多大佬都做的非常不到位。比如我手裏的建行網銀,在安裝U盾的時候必須安裝一個網銀根證書。SSL證書方面中國也做的很不到位。比如京東只有在用戶登陸的時候才用了SSL來加密,而京東甚至在下訂單的時候依然是明文傳輸。新浪微博在更改個人敏感信息時仍然使用明文傳輸,而twitter在早期甚至連微博內容都用https。如果使用不加密的公共Wi-Fi的話,那麼在同一個Wi-Fi熱點下有一個黑客,黑客便可以非常輕鬆的竊取到你的個人信息。

  P.S.:現在12306在付款的過程中使用了VeriSign簽發的合格的證書,但是這樣並不代表着上面所說的可能造成的嚴重影響不會發生。

  EV SSL介紹:http://www.wosign.com/EVSSL/index.htm

  這個地址打開後便可以看到EV SSL的效果:https://www.evssl.cn/en/

  HTTPS - 維基百科:https://zh.wikipedia.org/wiki/Https

本文出自:http://www.williamlong.info/archives/3461.html

發佈了6 篇原創文章 · 獲贊 4 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章