何青松 何青林
(中國船舶重工集團公司第七二二研究所1) 武漢 430079)(公安部第一研究所2) 北京 100048)
在眾多的安全協(xié)議中,IPSec[1]是因特網的基礎協(xié)議,IPSec是負責網絡數據通信安全的部分,具有良好的開放性,一般而言,在無邊界的開放網絡中,更適合用現有的IPSec協(xié)議。
但在封閉的網絡中,如軍隊網絡、電子政務網,需要有一種安全、高效的網絡和認證協(xié)議;在IPSec協(xié)議簇中,IKE是IPSec協(xié)議簇的重要內容,負責密鑰的協(xié)商和管理。因此,IKE的效率、安全性就顯得尤為重要,鑒于IKE對PKI的依賴,以及PKI存在固有的弊端,在使用過程中存在很多不盡人意的地方,如需要大量的CA、多層CA之間的認證既降低了效率,又降低了信任度。
本文主要對IKE進行的分析和改進,采用基于組合公鑰(CPK Combined Public Key)提出的不依賴于證書[2],而將用戶身份直接作為公鑰的思想,給出了基于CPK的IPSec的改進思路,從而提高了IKE的效率。
現有的互聯網協(xié)議IP本身作為其他高層協(xié)議的載體,在設計的時候并未考慮安全性問題,因此它無法保證高層協(xié)議載荷的安全,很容易便可偽造IP包的地址、修改其內容、重播以前的包以及在傳輸途中攔截并查看包的內容。出于對上述問題的考慮,IETF(Internet Engineering Task Force)推出了IPSec標準安全協(xié)議集,它定義了IP數據包格式和相關基礎結構,以便為網絡通信提供端對端、加強的身份驗證、完整性、抗重播和保密性等服務。
IPSec協(xié)議不是一個單獨的協(xié)議,它給出了應用于IP層上網絡數據安全的一整套體系結構,包括網絡認證協(xié)議Authentication Header(AH)、封裝安全載荷協(xié)議Encapsulating Security Payload(ESP)、密鑰管理協(xié)議 Internet Key Exchange(IKE)[3]和用于網絡認證及加密的一些算法等。
1)IPSec安全體系定義了主機和網關應該提供的各種能力,AH[4]為IP數據包提供無連接的數據完整性和數據源身份認證,同時具有防重放攻擊的能力。
2)ESP[5]為IP數據包提供數據的保密性、無連接的數據完整性、數據源身份認證以及防重放攻擊保護,與AH相比,數據保密性是ESP新增的功能,數據完整性檢驗、數據源身份認證以及抗重播攻擊保護都是AH可以實現的。
3)加密算法:描述各種加密算法如何用于ESP中。
4)驗證算法:描述各種驗證算法如何用于AH中和ESP身份驗證選項。
5)密鑰管理包括IKE協(xié)議和安全關聯(SA)等部分,其中IKE是默認的密鑰自動交換協(xié)議,IKE為IPSec協(xié)議生成密鑰,IKE的報文格式適合為任何一種協(xié)議協(xié)商密鑰,并不僅限于IPSec的密鑰協(xié)商,協(xié)商的結果通過解釋域轉化為IPSec所需的參數。IKE在通信系統(tǒng)之間建立安全關聯,提供密鑰確定和密鑰管理機制,是一個產生和交換密鑰并協(xié)調IPSec參數的框架。IKE將協(xié)商的結果保留在SA中,供AH和ESP使用。
6)IPSec本身沒有為策略定義標準,目前只規(guī)定了兩個策略組件:SAD(安全關聯數據庫)和SPD(安全策略數據庫)。
CPK公鑰體制是一種新的集中式公鑰管理模式。它的基本思想是,將標識作為公開密鑰,管理中心首先生成很多密鑰因子,由密鑰因子可組合成很多公、私鑰對,公鑰全都存貯在一個安全芯片中,私鑰則由中心直接發(fā)放給用戶。CPK以少量的種子生成“海量”公鑰,以簡捷的方式解決了規(guī)?;拿荑€管理,為構建認證體系提供了可靠的技術基礎[6]。
給定素數p和方程的參數a,b,確定了橢圓曲線群Ep(a,b),選取Ep(a,b)中的元素G作為基點,由基點G=(XG,YG)的所有倍點構成Ep(a,b)的子群S。設n是滿足nG=0的最小整數,則橢圓曲線密碼的參數由a,b,G,n,p組成,記為T=(a,b,G,n,p)。則子群S中的元素都為G的倍點kG(k=1,2,……),S中的元素(Xk,Yk)與該點的倍數值k構成公私鑰對。適當選擇S×T個整數rij,作為私鑰因子,并用矩陣SSK表示,稱為私鑰種子矩陣。由私鑰因子又可以得到相應的公鑰因子:gij=rijG,從而可得相應的公鑰種子矩陣PSK,即
在PSK中的每列中取一個因子,其和構成一個公鑰。如此可構成st<n個不同的公鑰。適當選擇s和t,可形成一個巨大的密鑰空間。一個實體的公、私鑰對是根據該實體的標識的映射值分別在公鑰矩陣和私鑰矩陣中選取對應位置的元素再進行組合而生成的,滿足公、私鑰對的條件PK=SK×G(PK是公鑰,SK是私鑰)。
SSK由管理中心統(tǒng)一生成并保管。用戶私鑰是t個私鑰因子的和,由管理中心利用適當選擇的函數 f作為映射算法,根據用戶標識先確定PSK中的因子,繼而查找SSK中的相應因子,并將諸因子之和即用戶私鑰面對面或通過專門的秘密通道發(fā)放給用戶。公鑰查詢函數 f通常取單向函數或單向陷門函數,以用戶標識作為輸入。由于每個用戶有自己的私鑰,可用于解密、簽名或身份認證。而當驗證其它用戶的簽名時,可以直接輸入該用戶標識,利用f在PSK中查找其公鑰即可。任一用戶驗證其它用戶的公鑰時,可先訪問管理中心,然后利用公鑰查詢函數 f查找PSK即可。
只有在集中式管理模式下才有可能從技術上解決密鑰管理的規(guī)?;突跇俗R的密鑰分發(fā),才有可能建立有效率的信任系統(tǒng)。CPK認證系統(tǒng)是建立在密鑰算法和映射算法基礎上,采用集中式管理的新型認證體制,從技術上解決了密鑰的規(guī)?;兔荑€存儲技術,因而不需要多層CA結構,也不需要LDAP等目錄庫的支持;CPK解決了基于標識的密鑰分發(fā),密鑰變量本身直接證明標識或身份的真?zhèn)?因而不再需要第三方的證明和第三方機構。CPK不需要龐大的支持系統(tǒng),幾乎沒有維護量,與PKI相比較,可以說是一個高效、安全的解決方案。
基于CPK技術的IPSec的協(xié)議改進是指:基于身份標識的IPSec協(xié)議公、私鑰都是由CPK管理中心統(tǒng)一生成的并分發(fā)的。用戶公鑰由用戶標識來確定,證書與用戶標識之間存在一一對應關系,并且,私鑰面對面分發(fā),不需作更多認證,只要滿足可解性,就可鑒別密鑰的真?zhèn)巍?/p>
在網絡中所有的終端主機都能實現基于CPK技術的認證,并且被分配了基于身份標識的私鑰,我們對IKE密鑰協(xié)商協(xié)議過程進行了改進,在此基礎上完成密鑰建立協(xié)議后,再進行ESP封裝,從而完成IPSec交互。因為協(xié)議是基于身份標識的,報頭部分的地址不需校驗,原協(xié)議中AH協(xié)議可以略去。IPSec協(xié)議的實現過程將大大簡化。實現過程如下:
設該CPK算法使用的參數為T=(a,b,G,n,p),數據發(fā)送方的私鑰為SKa,公鑰為PKa,數據接收方的私鑰為SKb,公鑰為PKb。
1)數據發(fā)起方A發(fā)送過程:
(1)用散列函數對數據部分進行處理,生成報文M的散列碼,表述為h=H(M);
(2)用發(fā)起方的私鑰SKa對報文的散列碼h進行簽名,得到標識認證碼IDa,這個過程表述為IDa=SIGNSKa(h);
(3)對IKE密鑰交換協(xié)議進行改進,首先產生隨機數R用于密鑰交換,計算R×PKb作為密鑰交換字段,其次計算R×G作為公共密鑰K;
(4)使用公共密鑰K對報文M進行加密,表述為code=Encryk(M);
(5)將加密后的報文code和標識認證碼IDa、密鑰交換字段R×PKb作為一個封裝數據包一起發(fā)送出去;
2)數據接收方B接收過程
(1)用私鑰SKb計算出SKb-1,然后根據接收到的密鑰交換字段計算SKb-1×R×PKb=SKb-1×R×SKb×G=R×G=K,得到了公共密鑰K;
(2)用K 對接收到的加密報文code′進行解密 ,表述為 Dk(code′)=M′,然后在接收端再次計算報文的散列碼h′=H(M′);
(3)由發(fā)送方A的標識,根據公鑰矩陣計算出發(fā)送方的公鑰PKa,使用該公鑰對IDa進行驗證得到h,將 h和 h′進行比較,如果一致,則接收該報文,否則對報文作去棄處理。
上述的過程中,該改進方案只需要一次交互,即可實現密鑰交換、數據加密和數字簽名這一系列過程。特別值得指出的是:終端根據標識,通過公鑰矩陣就可以計算出對方的公鑰,有了公鑰就可以當場驗證對方標識簽名的真?zhèn)?大大的提高了鑒別的效率。標識或數據的任意一位被篡改后,都會導致h和h′的不一致,因此,該基于CPK技術的認證方案能夠有效的防欺騙攻擊,同時實現了加密的數據傳輸。
基于CPK改進了IPSec協(xié)議中的密鑰交換協(xié)議,公鑰由用戶標識來確定,證書與用戶名之間存在一一對應關系,實現了雙方直接認證,大大的提高了認證的效率,同時沒有給網絡的核心增加任何的負擔;而且私鑰面對面分發(fā),是一種直接的信任關系,可信度較高,用于認證的數據通信開銷也十分有限。因而效率較之原協(xié)議有明顯的提高,改進的協(xié)議具有較高的安全性。
[1]S.Kent,R.Atkinson.Security Architecture for the Internet Protocol.RFC2401[S].1998,11
[2]南湘浩,陳鐘.網絡安全技術概論[M].北京:國防工業(yè)出版社,2003
[3]D.Harkins,D.Carrel.The Internet Key Exchange(IKE).RFC2409[S].IETF Network Working Group,1998,11
[4]S.Kent,R.Atkinson.IP Authentication Header(AH).RFC2402[S].1998,11
[5]S.Kent,R.Atkinson.IP Encapsulating Security Payload(ESP).RFC2406[S].1998,11
[6]南湘浩.CPK標識認證[M].北京:國防工業(yè)出版社,2006