理解證書和證書鏈
證書和證書鏈
最近一直在研究的東東,這東西說到底,也是依賴於一個前提
ROOT 證書,所以說很多安全說最終也是個偽命題;只是搞理論的人喜歡
把東西搞複雜,亂扯概念,不講本質。
1. 簡單來說,end-user證書上面幾級證書都是為了保證end-user證書未被篡改,
保證是CA簽發的合法證書,進而保證end-user證書中的公鑰未被篡改。
2. 除了end-user之外,證書被分為root Certificates和intermediates Certificates。
相應地,CA也分了兩種型別:root CAs 和intermediates CAs。
首先,CA的組織結構是一個樹結構,一個root CAs下面包含多個intermediates CAs,
而intermediates又可以包含多個intermediates CAs。root CAs 和 intermediates CAs
都可以頒發證書給使用者,頒發的證書分別是rootCertificates和intermediates Certificates,
終端使用者用來認證公鑰的證書則被稱為end-user Certificates。
3. 我們使用end-user certificates來確保加密傳輸資料的公鑰(public key)不被篡改,
而又如何確保end-user certificates的合法性呢?這個認證過程跟公鑰的認證過程類似,
首先獲取頒佈end-user certificates
一般來說,root CAs不會直接頒佈end-user certificates的,而是授權給多個二級CA,而二級CA
又可以授權給多個三級CA,這些中間的CA就是intermediates CAs,它們才會頒佈end-user certificates。
4. 1.拆封證書
所謂證書的拆封,是驗證發行者CA的公鑰能否正確解開客戶實體證書中的“發行者的數字簽名”。
兩個證書在交換傳遞之後,要進行拆封,看是否能夠拆封。一個證書或證書鏈的拆封操作,是為了
從中獲得一個公鑰。可示為X1p?X1<<X2>>,
右運算元則為該認證機構所頒發的一個證書。如果能正確解開,輸出結果為使用者的公鑰。
從證書內容列表中可以看出,證書結構的最後內容是認證機構CA的數字簽名,即一個可信任的CA
已經在證書上用自己的私鑰做了簽名。如果用該CA的公鑰就可以拆封一個使用者實體的證書,那麼,
這個簽名被驗證是正確的。因為它證明了這個證書是由權威的、可信任的認證機構所簽發。因此,
這個實體證書是真實可信的。
5..證書鏈的驗證
所謂證書鏈的驗證,是想通過證書鏈追溯到可信賴的CA的根(ROOT)。換句話說,要驗證簽發使用者
實體證書的CA是否是權威可信的CA,如CFCA。證書鏈驗證的要求是,路徑中每個證書從最終實體到根證書
都是有效的,並且每個證書都要正確地對應發行該證書的權威可信任性CA。操作表示式為 Ap?A<<B>>B<<C>>,
指出該操作使用A的公鑰,從B的證書中獲得B的公鑰Bp,然後再通過 Bp來解封C的證書。操作的最終結果
得到了C的公鑰Cp。這就是一個證書鏈的認證拆封過程。
(1)證書鏈的定義。證書鏈也稱認證鏈,它是最終實體到根證書的一系列證書組成,這個證書鏈的處
理過程是所有根的前輩指向最開始的根證書,即子輩連向父輩。如圖1所示。
(2)從使用者實體證書到ROOT CA的證書鏈確認,其具體的做法如下頁圖2所示。從以上對比中可以看出:使用者實體證書中的AuthorityKey Identifier擴充套件項CertIssuer,即證書籤發者的
甄別名,應當與CA證書中簽發此證書的CA名稱相匹配,如圖中箭頭所指。即CA證書中的Subject Name
是使用者實體證書中Issuer Name的父名,對上級CA來說又成為子名,CA證書中Issuer Name是上一級CA的
名字,成為可信任的鏈狀結構。這樣通過各級實體證書的驗證,逐漸上溯到鏈的終止點——可信任的根CA,
如CFCA。