張博 朱璇 高熾揚
中國軟件評測中心電子認證實驗室 北京 100048
一般情況下,在一個應用系統(tǒng)中僅會使用一家CA頒發(fā)的數(shù)字證書。如果一個用戶在多個或者多種應用系統(tǒng)中使用數(shù)字證書的話,那么該用戶會有很多的數(shù)字證書。這就會給用戶帶來很多的麻煩,光是要記住在哪個應用系統(tǒng)中用哪個數(shù)字證書都會讓某些人感到頭痛,就更不用說能否及時發(fā)現(xiàn)某個數(shù)字證書丟失的問題了。
解決證書互信互認問題主要有四種方式,下面分別對它們的優(yōu)缺點進行分析。
基于根(Root)的互信互認技術采用根CA模式(也叫做分級結構CA模式)來實現(xiàn)證書的互信互認,其特點是所有的用戶都信任同一個根CA。在進行網(wǎng)上交易雙方的身份認證時,交易雙方互相提供自己的證書和數(shù)字簽名,由CA來對證書進行有效性和真實性的認證。若一個持有由CA3頒發(fā)的證書2的用戶甲要與由CA2頒發(fā)的證書4的用戶乙進行安全通信,那么他們只要信任為這兩家CA同時簽名的根CA即可,如圖1所示。
根CA模式由于其簡單的結構和單向的可信任關系,具有4個優(yōu)點:
(1) 根CA模式系統(tǒng)易于升級和增加新的認證域用戶,因為只需要根CA與該認證域的CA建立信任關系。

圖1 基于根CA模式示意圖
(2) 證書路徑由于其單向性,容易擴展,可生成從用戶證書到可信任點的簡單的、明確的路徑。
(3) 證書路徑相對較短。最長的路徑等于樹的深度加一:每個從屬CA的證書路徑加上用戶的證書路徑。
(4) 基于分級結構中的CA的位置,用戶隱含地知道一個證書用于哪種應用。
根CA模式也有缺點。這是因為它依賴于一個單一的可信任點,即“根CA”。
(1) 存在單點故障和性能瓶頸。
(2) 構建一個單一的、共同的根CA最主要的問題是需要各個相關部門的共同努力與協(xié)調。
(3) 由一組彼此分離的CA過渡到根CA模式。
基于橋(Bridge)的互信互認技術采用橋接CA(也叫橋CA)
體系結構(參見圖2),該結構被設計成用來克服根CA模式的缺點和連接不同結構的PKI系統(tǒng)。橋CA不直接向用戶發(fā)放證書。而且,橋CA不作為一個可信任點,供PKI中的用戶使用,這一點不同于根CA模式中的根CA。

圖2 橋CA模式
與根CA模式相比,橋CA模式的優(yōu)點在于:
(1) 證書路徑的發(fā)現(xiàn)變得較為容易。用戶清楚地知道他們到橋CA的路徑,從而只需確定從橋CA到用戶證書的證書路徑。
(2) 橋CA模式的PKI系統(tǒng)的分散化特性更精確地代表了現(xiàn)實世界中的證書機構的關系。
(3) 橋CA模式更適合鏈接不同結構的PKI體系。
基于橋CA的PKI系統(tǒng)的另一個技術挑戰(zhàn)是如何獲取證書和證書狀態(tài)信息。在有效的PKI系統(tǒng)中,用戶必須容易地獲取CA證書和用戶證書,以及通過一種分發(fā)機制獲得相應的狀態(tài)信息。 在存在多種分發(fā)機制的PKI系統(tǒng)中,用戶端的應用,需要支持多種檢索協(xié)議來搜尋所需要的信息。因此我們需要開發(fā)一些技術用于發(fā)現(xiàn)和驗證復雜的證書路徑,處理不同的PKI信息分發(fā)機制。
基于交叉認證(Cross Certification)的互信互認技術是通過CA之間互相簽發(fā)交叉證書的方式來實現(xiàn)互信互認的。為交叉認證而簽發(fā)的證書稱為交叉證書(Cross Certificate)。從類型上,交叉認證可以細分為雙向交叉認證(如圖3所示)和單向交叉認證(如圖4所示)。

圖3 雙向交叉認證技術

圖4 單向交叉認證技術
如圖3所示,CA3和CA4都向對方簽署了交叉證書(紅色的雙向箭頭表示簽署交叉證書),于是CA3和CA4都承認證書1、證書2、證書3和證書4的合法性,也即上述4個證書可以互信互認。如圖4所示,CA5向CA4簽署了交叉證書而CA4并未向CA5簽署交叉證書,于是在部署CA5證書鏈的應用系統(tǒng)中證書3、證書4、證書5和證書6可以互信互認,而在部署CA4證書鏈且沒有部署CA5證書鏈的應用系統(tǒng)中證書5和證書6不可以與證書3或者證書4實現(xiàn)互信互認。
交叉認證方式的優(yōu)點是適于少數(shù)CA間的證書實現(xiàn)互信互認,而參加基于交叉認證方式CA的證書策略還不能太復雜。
交叉認證方式的缺點在于:
(1) 不適合實現(xiàn)數(shù)量多的CA間證書的互信互認。當需要實現(xiàn)互信互認的證書是來自較多家CA的時候,需要簽發(fā)的交叉證書的數(shù)量會呈現(xiàn)出指數(shù)級別的增長。表1給出了CA數(shù)量與需要簽發(fā)的交叉證書數(shù)量,表中的公式P(m)(n)是排列組合中的公式,由于m取2所以P(2)(n)=n(n-1)。當參加互認的CA達到32個時,需要簽發(fā)的交叉證書就達到了992張。需要進一步說明的是,表1中的公式僅適用于只有一種證書策略的CA。

表1 CA數(shù)量與需要簽發(fā)的交叉證書數(shù)量表
(2) 不適合實現(xiàn)策略復雜的CA間證書的互信互認。如果參加互信互認的CA有多個策略的話,還要考慮策略映射的問題。對于CA來講,不同的證書策略對應著不同安全措施,同時也對應著不同的賠付額度。一般情況下,不同CA的賠付額度也是不同的。從理論講,實現(xiàn)不同CA所頒發(fā)的不同證書策略的映射是可能的。然而,得到讓很多CA都妥協(xié)(幾乎不可能是滿意)的策略映射方案的難度是可想而知的。阻力不僅來源于兼容已經(jīng)頒發(fā)證書等技術問題,更來自證書定價等經(jīng)濟問題。
基于列表的互信互認技術通過公布CA的列表來表明列表中CA頒發(fā)的證書可以實現(xiàn)互信互認。除了公布CA名稱等自然信息外,還可以公布CA的公鑰證書,以便用戶對CA的數(shù)字簽名進行驗證。
工業(yè)和信息化部在其網(wǎng)站上公布的獲得《電子認證服務許可證》CA的名單就是一種列表。國家密碼管理局在其網(wǎng)站上公布的獲得《電子認證服務使用密碼許可證》的CA(也即電子認證服務使用密碼許可單位)名單也可以被看作是一種列表。微軟公司的根證書計劃(Root Certificate Program)同樣是一種列表,進入該列表的CA所頒發(fā)的證書能夠在IE瀏覽器上被正確的識別出來。工信部和國密局的列表沒有給出CA的公鑰證書,而微軟卻將進入根證書計劃CA的公鑰證書嵌入在IE瀏覽器中(如圖5所示)。
基于列表技術的優(yōu)點在于實現(xiàn)簡單、方便,證書的依賴方和應用系統(tǒng)都不用進行太多的改動就可以兼容列表方式。基于列表技術的缺點是相對簡單,對用戶的客戶端應用程序要求較高。為了實現(xiàn)某種功能,大致是需要一些工作的。如果CA和應用系統(tǒng)要做的工作少,那么用戶的應用程序要做的工作就會稍微多一些。

圖5 IE瀏覽器中嵌入的根證書列表
這里通過一張表格將上面敘述的四種證書互信互認技術進行對比(參見表2),以便能夠更加清楚地看到四種技術的優(yōu)點和缺點。

表2 四種互信互認技術比較

續(xù)表
對于CA來講,雖然從表面上和短期來看,數(shù)字證書互信互認會讓用戶手中的證書減少,進而減少CA能夠發(fā)放證書的數(shù)量,也即減少了CA的利潤。但是,如果我們從宏觀和全局的角度上來看就會發(fā)現(xiàn):目前數(shù)字證書這種身份方式的應用面還未全面滲透入人們生活的方方面面。為什么?易用性差和用戶體驗差是兩個主要的原因。而數(shù)字證書的互信互認一定會推動數(shù)字證書這種身份認證方式的易用性并大大改進用戶體驗,從而反過來推動數(shù)字證書的應用推廣,進而增加CA的利潤。
從對四種互認技術的比較中,我們可以看出,目前我國CA的技術水平比較適合采用基于列表的證書互信互認技術。綜上所述,筆者認為在證書互信互認方面應該采取基于列表的證書互信互認策略,并增強在證書驗證及證書鏈部署等方面的相關技術支持。
[1] http://xxaqs.miit.gov.cn/n11293472/n11505629/n11506629/n119 67886/n11967946/12432542.html.
[2] http://xxaqs.miit.gov.cn/n11293472/n11295344/n11296947/1471 8564.html.