交叉認證的基礎原理

    兩個CA的根證書或者CA證書所簽發的用戶證書之間應該怎麼實現互信呢?

    舉例說明,CA_A的根證書是RootA,RootA簽發了兩張CA證書:RootAA和RootAB。CA_B的根證書是RootB,RootB簽發了兩張CA證書RootBA和RootBB。如果實現RootBA所頒發的用戶證書(RootBA1、RootBA2等)能夠被RootAA所信任呢?實現方法如下:

1.  獲取RootAA的私鑰;

2.  獲取RootBA證書;

3.  使用RootAA的私鑰對RootBA的簽名域重新進行簽名;並把新的簽名值保存在RootBA中,生成新的證書RootBA’,這樣可以實現RootBA被RootAA所信任。由於RootBA1、RootBA2等用戶證書是使用RootBA的私鑰進行簽名形成信任管理的,而RootBA和RootBA’擁有同一公鑰,所以RootBA’和RootBA1、RootBA2之間也形成的互信關係。而RootBA’和RootAA之間存在互信關係,所以RootAA也就實現了對RootBA1和RootBA2的信任。

通過以上操作可以得到一個新的信任鏈:

    RootA -> RootAA-> RootBA’-> RootBA1

    RootA -> RootAA-> RootBA’-> RootBA2

 

反過來,使用RootBA的私鑰對RootAA的公鑰進行簽名,得到新的RootAA’也可以實現RootBA對RootAA所簽發的用戶證書(如:RootAA1 RootAA2)的信任,形成一個新的信任鏈:

RootB -> RootBA -> RootAA’ -> RootAA1

RootB -> RootBA -> RootAA’ -> RootAA2

 

通過兩次簽名,便可實現用戶互信,相對還是比較簡單的.當然這只是理論上的,實際應用中還需要考慮CRL等等的問題..還是不是那麼簡單的事情.

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