3.2.2數(shù)字證書的生成過程
1、使用數(shù)字證書申請者的身份信息生成數(shù)字簽名
2、將證書申請者的身份信息和數(shù)字簽名一起組成數(shù)字證書
3.2.3數(shù)字證書原理
有了數(shù)字證書以后,A和想跟B通信,就可以通過B的數(shù)字證書來獲取B的公鑰,以達到驗證自己手中的公鑰到底是不是B的目的。過程是這樣的:
1、B給A回信的時候,在信息后面附上了自己的數(shù)字證書
2、A收到B的回信以后,會取出附帶的數(shù)字證書,并讀取證書中的發(fā)布機構(Issuer),然后從操作系統(tǒng)的受信任證書機構列表中查找該證書辦發(fā)機構的公鑰,如果找不到,說明這個證書頒發(fā)機構是個不受信任的,B發(fā)過來的信息當然也是不安全的
3、使用上一步取到的證書頒發(fā)機構的公鑰,解出數(shù)字證書,得到可能是B的用戶信息和數(shù)字簽名
4、A通過證書中指定的加密算法對可能是B的用戶信息進行hash加密
5、加密后的結果和證書中解出的數(shù)字簽名進行對比,如果相同,就說明這份用戶信息確實是B的,也就是說用戶信息中包含的公鑰確實是B的
這樣就驗證了B身份的真實性。
下圖很形象的表示了這個過程:
3.2.4證書發(fā)布中心(CA)的公鑰的嵌套驗證
這里有一個有趣的問題,用戶A使用證書機構的公鑰來驗證用戶B的數(shù)字證書,但如果A和B使用的證書認證中心(CA)不同怎么辦呢?由于證書認證中心可以通過另外一個更高級別的認證中心對該證書機構的公鑰頒發(fā)一個證書,這樣形成了一個公鑰證書的嵌套循環(huán),該循環(huán)的終點就是根證書機構。根證書機構較少,其公鑰可以通過安全的方式發(fā)布,如通過USB拷貝、書面文件當面移交。如此依賴,A就必須從B的CA的樹形結構底部開始,從底層CA往上層CA查詢,一直到找到共同的信任CA為止。
整個過程如下圖所示:
3.2.5證書發(fā)布機構
3.2.5.1誰可以成為證書發(fā)布機構
到這里,你可能會想,那我們自己就不能發(fā)布證書嗎?就一定要花錢去申請?
當然不是,我們自己也可以成立證書發(fā)布機構,但是需要通過一些安全認證等等,只是有點麻煩。另外,如果數(shù)字證書只是要在公司內部使用,公司可以自己給自己生成一個證書,在公司的所有機器上把這個證書設置為操作系統(tǒng)信任的證書發(fā)布機構的證書(這句話仔細看清楚,有點繞口),這樣以后公司發(fā)布的證書在公司內部的所有機器上就可以通過驗證了(在發(fā)布證書時,把這些證書的Issuer(發(fā)布機構)設置為我們自己的證書發(fā)布機構的證書的Subject(主題)就可以了)。但是這只限于內部應用,因為只有我們公司自己的機器上設置了信任我們自己這個所謂的證書發(fā)布機構,而其它機器上并沒有事先信任我們這個證書發(fā)布機構,所以在其它機器上,我們發(fā)布的證書就無法通過安全驗證。
我們自己可以去注冊一家公司來專門給別人發(fā)布證書,但是很明顯,我們自己的專門發(fā)布證書的公司是不會被那些國際上的權威機構認可的,人家怎么知道你是不是個狗屁皮包公司?因此微軟(或其它操作系統(tǒng)提供商)在它的操作系統(tǒng)中,并不會信任我們這個證書發(fā)布機構,當應用程序在檢查證書的合法信的時候,一看證書的發(fā)布機構并不是操作系統(tǒng)所信任的發(fā)布機構,就會拋出錯誤信息。也就是說windows操作系統(tǒng)中不會預先安裝好我們這個證書發(fā)布機構的證書,不信任我們這個發(fā)布機構。
3.2.5.2不受信任的證書發(fā)布機構的危害
為什么一個證書發(fā)布機構受不受信任這么重要?我們舉個例子。假設我們開了一個狗屁公司來為別人發(fā)布證書,并且我和微軟有一腿,微軟在他們的操作系統(tǒng)中把我設置為了受信任的證書發(fā)布機構。現(xiàn)在如果有個小公司叫hisunsray花了10塊錢讓我為他們公司申請了一個證書,并且公司慢慢壯大,證書的應用范圍也越來越廣。然后有個奸商的公司baidu想冒充hisunsray,于是給了我¥10000,讓我為他們頒布一個證書,但是證書的名字(Subject)要寫hisunsray,假如我為了這¥10000,真的把證書給了他們,那么他們以后就可以使用這個證書來冒充hisunsray了。
如果是一個優(yōu)秀的證書發(fā)布機構,比如你要向他申請一個名字叫hisunsray的證書,它會讓你提供很多資料證明你確實可以代表hisunsray這個公司,也就是說他回去核實你的身份。證書發(fā)布機構是要為他發(fā)布出的證書負法律責任的。
3.2.6如何查看數(shù)字證書
我們的操作系統(tǒng)中會預先安裝好一些證書發(fā)布機構的證書,我們可以通過證書管理器進行證書的增、刪操作,下面介紹如何找到它們。
3.2.6.1windows
開始菜單-》運行,輸入certmgr.msc,回車

3.2.6.2mac
打開keychain,選擇鑰匙串中的系統(tǒng)根證書,種類中的證書即可看到下圖所示的收信人證書發(fā)布機構列表:
電子發(fā)燒友App






















評論