X.509標準、CA認證

X.509標準是什麼?

X.509是由國際電信聯盟(ITU-T)制定的數字證書標準,X.509給出的鑑別框架是一種基於公開密鑰體制的鑑別業務密鑰管理。X.509證書裏含有公鑰、身份信息(比如網絡主機名,組織的名稱或個體名稱等)和簽名信息(可以是證書籤發機構CA的簽名,也可以是自簽名)。

 

CA認證:

參考博客:https://www.cnblogs.com/yunlongaimeng/p/9417276.html

1.什麼是CA證書。

 ◇ 普通的介紹信

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

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

這裏,A公司就是CA證書

◇ 引入中介機構的介紹信

  好,回到剛纔的話題。如果和 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 證書。

 

2.證書的簽發過程:

a.服務方 S 向第三方機構CA提交公鑰、組織信息、個人信息(域名)等信息並申請認證;

b.CA 通過線上、線下等多種手段驗證申請者提供信息的真實性,如組織是否存在、企業是否合法,是否擁有域名的所有權等;

c.如信息審覈通過,CA 會向申請者簽發認證文件-證書。

證書包含以下信息:申請者公鑰、申請者的組織信息和個人信息、簽發機構 CA 的信息、有效時間、證書序列號等信息的明文,同時包含一個簽名;

簽名的產生算法:首先,使用散列函數計算公開的明文信息的信息摘要,然後,採用 CA 的私鑰對信息摘要進行加密,密文即簽名;

d.客戶端 C 向服務器 S 發出請求時,S 返回證書文件;

e.客戶端 C 讀取證書中的相關的明文信息,採用相同的散列函數計算得到信息摘要,然後,利用對應 CA 的公鑰解密簽名數據,對比證書的信息摘要,如果一致,則可以確認證書的合法性,即公鑰合法;

f.客戶端然後驗證證書相關的域名信息、有效時間等信息;

g.客戶端會內置信任 CA 的證書信息(包含公鑰),如果CA不被信任,則找不到對應 CA 的證書,證書也會被判定非法。

 

在這個過程注意幾點:

1.申請證書不需要提供私鑰,確保私鑰永遠只能服務器掌握;

2.證書的合法性仍然依賴於非對稱加密算法,證書主要是增加了服務器信息以及簽名;

3.內置 CA 對應的證書稱爲根證書,頒發者和使用者相同,自己爲自己簽名,即自簽名證書;

4.證書=公鑰+申請者與頒發者信息+簽名;

 

明白了證書的頒發過程後,那得到證書後怎麼對交互的數據進行加密呢?

 

1.服務器向CA機構獲取證書(假設這個證書僞造不了),當客戶端首次請求服務器的時候,服務器返回證書給客戶端。(證書包含:公鑰+申請者與頒發者的相關信息+簽名)

 

2.客戶端得到證書後,開始驗證證書的相關信息,證書有效(沒過期等)。(驗證過程,比較複雜,詳見上文)。

 

3.驗證完證書後,如果證書有效,客戶端是生成一個隨機數,然後用證書中的公鑰進行加密,加密後,發送給服務器,服務器用私鑰進行解密,得到隨機數。之後雙方便開始用該隨機數作爲鑰匙,對要傳遞的數據進行加密、解密。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章