數字證書及CA的掃盲介紹

作者: 編程隨想  發布時間: 2013-12-03 11:48  閱讀: 113999 次  推薦: 79   原文鏈接   [收藏]  

  ★ 先說一個通俗的例子

  考慮到證書體系的相關知識比較枯燥、晦澀。俺先拿一個通俗的例子來說事兒。

  ◇ 普通的介紹信

  想必大伙兒都聽說過介紹信的例子吧?假設 A 公司的張三先生要到 B 公司去拜訪,但是 B 公司的所有人都不認識他,他咋辦捏?常用的辦法是帶公司開的一張介紹信,在信中說:茲有張三先生前往貴公司辦理業務,請給予接洽......云云。然后在信上敲上A公司的公章。

  張三先生到了 B 公司后,把介紹信遞給 B 公司的前臺李四小姐。李小姐一看介紹信上有 A 公司的公章,而且 A 公司是經常和 B 公司有業務往來的,這位李小姐就相信張先生不是歹人了。

  說到這,愛抬杠的同學會問了:萬一公章是偽造的,咋辦捏?在此,俺要先聲明,在本例子中,先假設公章是難以偽造的,否則俺的故事沒法說下去鳥。

  ◇ 引入中介機構的介紹信

  好,回到剛才的話題。如果和 B 公司有業務往來的公司很多,每個公司的公章都不同,那前臺就要懂得分辨各種公章,非常滴麻煩。所以,有某個中介公司 C,發現了這個商機。C公司專門開設了一項“代理公章”的業務。

  今后,A 公司的業務員去 B 公司,需要帶2個介紹信:

  介紹信1

  含有 C 公司的公章及 A 公司的公章。并且特地注明:C 公司信任 A 公司。

  介紹信2

  僅含有 A 公司的公章,然后寫上:茲有張三先生前往貴公司辦理業務,請給予接洽......云云。

  某些不開竅的同學會問了,這樣不是增加麻煩了嗎?有啥好處捏?

  主要的好處在于,對于接待公司的前臺,就不需要記住各個公司的公章分別是啥樣子的;他/她只要記住中介公司 C 的公章即可。當他/她拿到兩份介紹信之后,先對介紹信1的 C 公章,驗明正身;確認無誤之后,再比對介紹信1和介紹信2的兩個 A 公章是否一致。如果是一樣的,那就可以證明介紹信2是可以信任的了。

  ★ 相關專業術語的解釋

  費了不少口水,終于說完了一個俺自認為比較通俗的例子。如果你聽到到這,還是想不明白這個例子在說啥,那后續的內容,就不必浪費時間聽了 :(

  下面,俺就著上述的例子,把相關的名詞,作一些解釋。

  ◇ 什么是證書?

  “證書”洋文也叫“digital certificate”或“public key certificate”(專業的解釋看“這里”)。

  它是用來證明某某東西確實是某某東西的東西(是不是像繞口令?)。通俗地說,證書就好比例子里面的公章。通過公章,可以證明該介紹信確實是對應的公司發出的。

  理論上,人人都可以找個證書工具,自己做一個證書。那如何防止壞人自己制作證書出來騙人捏?請看后續 CA 的介紹。

  ◇ 什么是CA?

  CA是Certificate Authority的縮寫,也叫“證書授權中心”。(專業的解釋看“這里”)

  它是負責管理和簽發證書的第三方機構,就好比例子里面的中介——C 公司。一般來說,CA必須是所有行業和所有公眾都信任的、認可的。因此它必須具有足夠的權威性。就好比A、B兩公司都必須信任C公司,才會找 C 公司作為公章的中介。

  ◇ 什么是CA證書?

  CA 證書,顧名思義,就是CA頒發的證書。

  前面已經說了,人人都可以找工具制作證書。但是你一個小破孩制作出來的證書是沒啥用處的。因為你不是權威的CA機關,你自己搞的證書不具有權威性。

  這就好比上述的例子里,某個壞人自己刻了一個公章,蓋到介紹信上。但是別人一看,不是受信任的中介公司的公章,就不予理睬。壞蛋的陰謀就不能得逞啦。

  文本后續提及的證書,若無特殊說明,均指 CA 證書。

  ◇ 什么是證書之間的信任關系?

  在俺的例子里談到,引入中介后,業務員要同時帶兩個介紹信。第一個介紹信包含了兩個公章,并注明,公章C信任公章A。證書間的信任關系,就和這個類似。就是用一個證書來證明另一個證書是真實可信滴。

  ◇ 什么是證書信任鏈?

  實際上,證書之間的信任關系,是可以嵌套的。比如,C 信任 A1,A1 信任 A2,A2 信任 A3......這個叫做證書的信任鏈。只要你信任鏈上的頭一個證書,那后續的證書,都是可以信任滴。

  ◇ 什么是根證書?

  “根證書”的洋文叫“root certificate”,專業的解釋看“這里”。為了說清楚根證書是咋回事,再來看個稍微復雜點的例子。

  假設 C 證書信任 A 和 B;然后 A 信任 A1 和 A2;B 信任 B1 和 B2。則它們之間,構成如下的一個樹形關系(一個倒立的樹)。

  處于最頂上的樹根位置的那個證書,就是“根證書”。除了根證書,其它證書都要依靠上一級的證書,來證明自己。那誰來證明“根證書”可靠捏?實際上,根證書自己證明自己是可靠滴(或者換句話說,根證書是不需要被證明滴)。

  聰明的同學此刻應該意識到了:根證書是整個證書體系安全的根本。所以,如果某個證書體系中,根證書出了問題(不再可信了),那么所有被根證書所信任的其它證書,也就不再可信了。這個后果是相當相當滴嚴重(簡直可以說是災難性的),具體在下一個帖子里介紹。

  ★ 證書有啥用?

  CA 證書的作用有很多,俺為了節省口水,只列出常用的幾個。

  ◇ 驗證網站是否可信(針對HTTPS)

  通常,我們如果訪問某些敏感的網頁(比如用戶登錄的頁面),其協議都會使用 HTTPS 而不是 HTTP。因為 HTTP 協議是明文的,一旦有壞人在偷窺你的網絡通訊,他/她就可以看到網絡通訊的內容(比如你的密碼、銀行帳號、等);而 HTTPS 是加密的協議,可以保證你的傳輸過程中,壞蛋無法偷窺。

  但是,千萬不要以為,HTTPS 協議有了加密,就可高枕無憂了。俺再舉一個例子來說明,光有加密是不夠滴。假設有一個壞人,搞了一個假的網銀的站點,然后誘騙你上這個站點。假設你又比較單純,一不留神,就把你的帳號,口令都輸入進去了。那這個壞蛋的陰謀就得逞鳥。

  為了防止壞人這么干,HTTPS 協議除了有加密的機制,還有一套證書的機制。通過證書來確保,某個站點確實就是某個站點。

  有了證書之后,當你的瀏覽器在訪問某個 HTTPS 網站時,會驗證該站點上的 CA 證書(類似于驗證介紹信的公章)。如果瀏覽器發現該證書沒有問題(證書被某個根證書信任、證書上綁定的域名和該網站的域名一致、證書沒有過期),那么頁面就直接打開;否則的話,瀏覽器會給出一個警告,告訴你該網站的證書存在某某問題,是否繼續訪問該站點?為了形象起見,下面給出 IE 和 Firefox 的抓圖:

  大多數知名的網站,如果用了 HTTPS 協議,其證書都是可信的(也就不會出現上述警告)。所以,今后你如果上某個知名網站,發現瀏覽器跳出上述警告,你就要小心啦!

  ◇ 驗證某文件是否可信(是否被篡改)

  證書除了可以用來驗證某個網站,還可以用來驗證某個文件是否被篡改。具體是通過證書來制作文件的數字簽名。制作數字簽名的過程太專業,咱就不說了。后面專門告訴大家如何驗證文件的數字簽名。考慮到大多數人用 Windows 系統,俺就拿 Windows 的例子來說事兒。

  比如,俺手頭有一個 Firefox 的安裝文件(帶有數字簽名)。當俺查看該文件的屬性,會看到如下的界面。眼神好的同學,會注意到到上面有個“數字簽名”的標簽頁。如果沒有出現這個標簽頁,就說明該文件沒有附帶數字簽名。

  選擇該標簽頁,看到如下界面。

  順便說一下,某些數字簽名中沒有包含“郵件地址”,那么這一項會顯示“不可用”;同樣的,某些數字簽名沒有包含“時間戳”,也會顯示“不可用”。不要緊張,這里顯示的“不可用”跟數字簽名的有效性沒關系

  一般來說,簽名列表中,有且僅有一個簽名。選中它,點“詳細信息”按鈕。跳出如下界面:

  通常這個界面會顯示一行字:“該數字簽名正常”(圖中紅圈標出)。如果有這行字,就說明該文件從出廠到你手里,中途沒有被篡改過(是原裝滴、是純潔滴)。

  如果該文件被篡改過了(比如,感染了病毒、被注入木馬),那么對話框會出現一個警告提示“該數字簽名無效”(圖中紅圈標出)。界面如下:

  不論簽名是否正常,你都可以點“查看證書”按鈕。這時候,會跳出證書的對話框。如下:

 

  從后一個界面,可以看到俺剛才說的證書信任鏈。圖中的信任鏈有3層:

  第1層是根證書(Thawte Premium Server CA)。

  第2層是 Thawte 專門用來簽名的證書。

  第3層是 Mozilla 自己的證書。 

  目前大多數知名的公司(或組織機構),其發布的可執行文件(比如軟件安裝包、驅動程序、安全補丁),都帶有數字簽名。你可以自己去看一下。

  建議大伙兒在安裝軟件之前,都先看看是否有數字簽名?如果有,就按照上述步驟驗證一把。一旦數字簽名是壞的,那可千萬別裝。

  ★ 總結

  費了半天口舌,大致介紹了 CA 證書相關的概念。想更深入了解這方面知識的同學,可以找些信息安全或密碼學方面的資料,繼續鉆研。

  如果哪個同學覺得俺有說得不對的地方,或者有需要補充的內容,歡迎給俺寫郵件(program.think@gmail.com)。

  *******

  版權聲明

  本博客所有的原創文章,作者皆保留版權。轉載必須包含本聲明,保持本文完整,并以超鏈接形式注明作者編程隨想和本文原始地址:

  http://program-think.blogspot.com/2010/02/introduce-digital-certificate-and-ca.html

79
0
 
標簽:數字證書
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()