PKI 基礎理論-8

level 300

爲什麼需要CA?如果使用過PGP的情況下,是不需要CA的,我和你認識,我把我的公鑰,你把你的公鑰,我們互相交換下即可以。但是有兩個方面的問題:

     一個是公鑰的交換數量是n(n-1)/2。另一個是如何認定我拿到的公鑰確實是你的。

首先所有的實體是要產生一個自己的RSA 密鑰對,也就有了公鑰和私鑰。而CA只是負責驗證實體公鑰的持有者是真實的。此外實體和實體之間不用再相互認證對方,只需要實體和CA的認證就可以了。避免了交換數量問題。

關於數字證書最重要的三件事就是:設備信息、實體的公鑰、實體用私鑰產生的簽名

爲了驗證數字簽名,需要知道發送者的公鑰。第一個特點:這個公鑰不僅要以可擴展的方式被分發到公共區域。第二個特點是可信的發送者發送的公鑰,而不能是別人僞裝的公鑰

CA:用於維護信任鏈的頂端作爲一個信任源,用CA只是證明這個實體公鑰的持有者是誰?

當實體之間想建立連接的時候,使用證書驗證,他們使用CA作爲一個第三方來確保:這個公鑰確實是對方的,而不是個中間人。

1、實體向CA提交:第一次數字簽名

將明文的實體信息:

明文實體PKCS#10:
device info(至少包含設備名字,還可以有很多,比如:組織、地點、省市、國家等)
key size(密鑰大小,必須的)
device public key(必須的,)
challenge password(隨機數口令。CA可以通過隨機數口令來驗證這個設備,也可以通過這個隨機數口令吊銷設備的數字證書)

先hash,之後用實體的私鑰加密,即產生了數字簽名。

2、發送給CA的是:明文的實體信息+數字簽名

3、CA對實體的驗證:通過隨機數口令,還有用明文的實體公鑰解密設備簽名得到一個hash值,然後與實體明文提交的信息做hash,看兩個hash值是否相等。

4、CA產生一個隨機的密鑰random key

5、CA Info:是明文

serial number(整個CA域內唯一序列號)
available date of certificate(證書有效期)
HMAC algorithm (HMAC 功能)
CRL location(證書吊銷列表)

6、CA將實體PKCS#10+CA info +random key用HMAC 功能算出一個hash值,叫HAMC簽名,出於下面的分別將稱之爲HMAC-A

7、CA用自己的私鑰加密random

8、那麼一個實體證書包含了上面的:1+5+6+7

9、在設備之間的驗證:首先設備都安裝有CA的根證書,根證書包含了CA的公鑰

10、設備A將自己的證書發給設備B,CA 用公鑰解密7

11、然後將PKCS#10+CA info +random key用HMAC 功能算出一個hash值,出於分別將稱之爲HAMC-B

12、HAMC-A==HAMC-B證書是可信的

clip_image001

13、此時實體證書的公鑰被確認爲確實是實體A所擁有。因爲CA只是爲了證明實體公鑰的持有者是誰的問題。

14、這裏看到CA的私鑰只是用於加密random key。而不是將證書做個hash,然後用CA的私鑰加密這個hash值(而很多書籠統的這樣說)。這個是我一直疑惑的問題。到底是CA的私鑰加密了random key還是CA的私鑰加密了hash值呢???

15、上面的問題解決了公鑰的持有者和公鑰的分發問題:一旦實體之間都有了對方的公鑰,用這個公鑰加密對方實際數據流的對稱密鑰,雙方的數據加密用是的這個對稱密鑰

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