• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      IKEv2協(xié)議中消息協(xié)商的一種實現(xiàn)方案

      2010-01-16 10:16:26劉驥宇母軍臣
      湖北工程學(xué)院學(xué)報 2010年6期
      關(guān)鍵詞:狀態(tài)值密鑰協(xié)商

      劉驥宇,母軍臣

      (1.商丘師范學(xué)院軟件學(xué)院,河南商丘476000;2.開封大學(xué)軟件學(xué)院,河南開封475000)

      IKEv2協(xié)議中消息協(xié)商的一種實現(xiàn)方案

      劉驥宇1,母軍臣2

      (1.商丘師范學(xué)院軟件學(xué)院,河南商丘476000;2.開封大學(xué)軟件學(xué)院,河南開封475000)

      IKEv2協(xié)議中最重要的內(nèi)容是消息的協(xié)商,消息協(xié)商系統(tǒng)也是整個 IKEv2系統(tǒng)中的難點。本文實現(xiàn)的方案中,根據(jù)協(xié)商消息的轉(zhuǎn)換定義了多個狀態(tài)值和狀態(tài)轉(zhuǎn)換表,通過對狀態(tài)轉(zhuǎn)換的跟蹤,完成整個協(xié)商交換。并使用交換得到的信息生成安全傳輸所需的密鑰種子和各種密鑰,成功建立IKE_SA和CHILD_SA。

      IPsec;IKEv2;消息協(xié)商

      IP安全協(xié)議 IPsec協(xié)議族[1]是組建VPN[2]所使用的一種主要協(xié)議,也是IETF為了彌補Internet的安全性缺陷而設(shè)計的。IPsec是一組開放標(biāo)準(zhǔn)集,協(xié)同工作來確保對等設(shè)備之間的數(shù)據(jù)機密性、數(shù)據(jù)完整性以及數(shù)據(jù)認(rèn)證。

      Internet密鑰協(xié)商(IKE)協(xié)議是 IPsec協(xié)議族的重要協(xié)議之一,它的用途就是在 IPsec通信雙方之間,動態(tài)建立起共享安全參數(shù)及驗證過的密鑰,即建立安全聯(lián)盟(SA)。該協(xié)議的第二個版本(IKEv2)[3]簡化了其第1個版本(IKEv1)中冗余的功能,增強了安全性[4-5]。其依靠公鑰密碼體制、私鑰密碼體制和 Hash函數(shù),提供了多種交換模式和相關(guān)選項為IPsec服務(wù)。

      1 消息協(xié)商

      IKEv2的消息協(xié)商過程對 IKEv1進(jìn)行了很大的改進(jìn)。IKEv1的協(xié)商流程非常復(fù)雜,采用2個階段,4種模式。在第一階段中選擇使用主模式或野蠻模式,其中在主模式中需要六條交換消息,第二階段的快速模式需要3條交換消息。并且根據(jù)不通的認(rèn)證方法,交換的消息也不同,使得整個協(xié)商流程更加復(fù)雜。IKEv2取消了模式的概念 ,不存在“主模式”、“野蠻模式”、“快速模式”、“帶身份保護(hù)的主模式”和“新組模式”等交換類型。IKEv2中的消息交換包括3種基本交換類型:初始交換(Initial Exchange)、協(xié)商子 SA交換(CREA TE_CH ILD_SA Exchange)和信息交換(INFORMA TIONAL Exchange)。

      IKEv2協(xié)商SA分為2步實現(xiàn):首先,在通信雙方間建立1個經(jīng)認(rèn)證的安全信道,即建立 IKE SA;然后,在這個安全信道保護(hù)之下,為 IPsec安全服務(wù)協(xié)商SA,即建立IPsec SA。在IKEv2中,IKE SA仍然被稱為IKE SA,而IPsec SA則被稱為CHILD SA。為了更好的進(jìn)行上述2步交換,需要進(jìn)行一些控制和狀態(tài)信息的交換。IKEv2相對于IKEv1在消息的數(shù)量和內(nèi)容上都發(fā)生了不小的變化。

      2 實現(xiàn)過程

      根據(jù)協(xié)議的特點,筆者使用C++語言,以面向?qū)ο蟮姆椒ㄔO(shè)計了1個IKEv2消息協(xié)商系統(tǒng)。

      2.1 消息的處理

      消息的處理主要由 Message類完成,Message類是對 IKEv2消息的抽象,1個Message對象就代表一條消息。它主要用來對IKEv2交換消息的屬性及消息的分析、構(gòu)造等操作進(jìn)行描述。

      為了表示 IKEv2協(xié)議中重新設(shè)置的4種新的交換類型,Message類中定義了1個枚舉類型變量,如下所示:

      enum EXCHANGE_TYPE{

      IKE_SA_IN IT=34, /* IKE_SA_IN IT交換,值為34*/

      IKE_AU TH, /* IKE_AU TH交換,值為35*/

      CREA TE_CH ILD_SA, /* CREA TE_CH ILD_SA交換,值為36*/

      INFORMA TIONAL /* 信息交換,值為37*/

      };

      Message類中主要成員函數(shù)如下:

      1)添加載荷。在Message類中定義了2個載荷集合:unencrypted_payloads用來存放沒有加密的載荷,encrypted_payloads用來存放加密載荷中的加密數(shù)據(jù),即SK{…}中的載荷。而add Payload()成員函數(shù)就是將各個載荷添加到這2個集合中來,以便構(gòu)造交換消息。添加載荷時是從尾部插入。

      2)消息的構(gòu)造。當(dāng)接收到系統(tǒng)的指令,需要向通信對方發(fā)送消息時,就要按照IKEv2協(xié)議的定義進(jìn)行構(gòu)造消息,即將待發(fā)送的消息暫存到1個緩沖區(qū)內(nèi)等待發(fā)送。在構(gòu)造消息時,首先消息實體中對各個域的設(shè)置是在實施消息協(xié)商的IKE_SA_Controller類中完成,設(shè)置完畢后,由 Message類的generate Binary Representation()成員函數(shù)來完成對消息的構(gòu)造,它將IKE消息頭與上面介紹的2個載荷集合 unencrypted_payloads和encrypted_payloads添加進(jìn)緩沖區(qū)中,等待向通信對端發(fā)送。構(gòu)造消息流程圖如圖1所示。

      圖1 構(gòu)造消息流程圖

      3)消息的分析。當(dāng)接收到通信對方發(fā)送來的協(xié)商消息數(shù)據(jù)包時,應(yīng)該按照IKEv2協(xié)議的定義對其進(jìn)行分析,即將存入緩沖區(qū)的消息進(jìn)行分析,分析出相應(yīng)的 IKE頭和攜帶的載荷。IKE頭的各個域在Message類的構(gòu)造函數(shù)中分析完成,消息中其余各個載荷的分析由M essage類的generatePayloads()成員函數(shù)來完成。分析消息流程圖如圖2所示。

      圖2 分析消息流程圖

      2.2 消息協(xié)商

      IKE_SA_Controller類負(fù)責(zé)通信雙方進(jìn)行協(xié)商消息,根據(jù)當(dāng)前協(xié)商所處的狀態(tài)和收到的消息,對進(jìn)入的數(shù)據(jù)包進(jìn)行分析處理,然后構(gòu)造發(fā)送對端的數(shù)據(jù)包,進(jìn)行協(xié)商,最終完成SA的建立。根據(jù)功能不同,可將其分為兩部分,一部分負(fù)責(zé)狀態(tài)轉(zhuǎn)換表的操作,另一部分負(fù)責(zé)消息協(xié)商。

      2.2.1 狀態(tài)轉(zhuǎn)換表的設(shè)計

      消息協(xié)商過程中的狀態(tài)信息比較復(fù)雜,可以定義一系列的標(biāo)志進(jìn)行標(biāo)識,如標(biāo)識是哪一對節(jié)點間的協(xié)商、協(xié)商所處的階段、協(xié)商雙方在此次協(xié)商中擔(dān)任的角色等。而且協(xié)商時要交換許多信息,這些信息在計算密鑰種子和各種密鑰、身份認(rèn)證等情況下使用,因此需要定義1個變量臨時存放協(xié)商過程中的相關(guān)狀態(tài)。在IKE_SA_Controller類中設(shè)計了1個狀態(tài)轉(zhuǎn)換表用來記錄運行中的各個狀態(tài)值。每個狀態(tài)的轉(zhuǎn)換都由1個事件激發(fā),一旦1個事件發(fā)生,就會激發(fā)狀態(tài)發(fā)生轉(zhuǎn)換。即如果1個狀態(tài)按照規(guī)定轉(zhuǎn)換到下1個相應(yīng)的狀態(tài)值,則說明上1個動作正確完成了。這些狀態(tài)值的意義如表1所示。

      IKE_SA_Controller類中有關(guān)狀態(tài)表的主要成員函數(shù)如下:

      1)initializes State Tables():初始化狀態(tài)轉(zhuǎn)換表,即表2(空白之處為狀態(tài) STA TE_ERROR),由此可以看到各個狀態(tài)的轉(zhuǎn)換情況,協(xié)商中各個狀態(tài)之間的轉(zhuǎn)換將按照這個表來進(jìn)行。

      表1 State_Value(狀態(tài)值表)

      表2 State_Conversion(狀態(tài)轉(zhuǎn)換表)

      2)createTransition():在進(jìn)行構(gòu)造狀態(tài)表時使用,用來說明1個狀態(tài)在受到特定事件激發(fā)時會轉(zhuǎn)換到哪個狀態(tài)。

      3)getNextState():根據(jù)上1個狀態(tài)和發(fā)生的事件,轉(zhuǎn)換到1個新的狀態(tài),該成員函數(shù)返回新的狀態(tài)值。

      2.2.2 消息協(xié)商過程

      在對IPsec數(shù)據(jù)包進(jìn)行處理時,首先在內(nèi)核的SAD中查找SA,如果沒有相應(yīng)的SA,則將啟動IKEv2進(jìn)程協(xié)商SA。響應(yīng)建立SA請求并觸發(fā)IKEv2進(jìn)程進(jìn)行消息協(xié)商的方式有以下2種:一種是收到內(nèi)核發(fā)出的創(chuàng)建SA或更新SA的請求:SADB_ACQU IRE消息或SADB_EXPIRE消息;另一種是在收到對端IKEv2守護(hù)進(jìn)程發(fā)出的協(xié)商SA的請求時,也啟動協(xié)商交換以便能夠響應(yīng)對方的協(xié)商請求。

      IKEv2協(xié)商被觸發(fā)后,首先判斷 IKE_SA是否存在。如果存在,則直接進(jìn)行 CREA TE_CH ILD_SA階段交換,協(xié)商建立該 IKE_SA保護(hù)下的CH ILD_SA;否則,開始 IN ITIAL階段的消息交換,協(xié)商建立IKE_SA和CHILD_SA。

      1)初始交換階段協(xié)商。初始交換的協(xié)商由4條消息組成,包含2個交換:第一個是 IKE_SA_IN IT交換,第二個是 IKE_AU TH交換。交換完成,在 IKEv2交換實體間建立起 IKE_SA和第1個CH ILD_SA。

      IKE_SA_IN IT交換由頭2條消息完成,進(jìn)行協(xié)商加密算法、交換 nonce值、完成Diffie-Hellman交換、計算后階段所需要的各種密鑰值。

      首先,協(xié)商雙方處于就緒狀態(tài)。在該狀態(tài)下,系統(tǒng)對于協(xié)商雙方的連接描述已建立,可以進(jìn)入IKE協(xié)商。當(dāng)發(fā)起方接到系統(tǒng)開始協(xié)商的通知后開始構(gòu)造第一條消息。構(gòu)造消息時首先創(chuàng)建消息對象,設(shè)置消息頭中的各域?qū)傩?然后構(gòu)造消息頭,接著順序加入SAi載荷、KEi載荷和Ni載荷,這些載荷由載荷處理子系統(tǒng)進(jìn)行構(gòu)造。消息構(gòu)造完成后放入緩沖區(qū)進(jìn)行發(fā)送,這時協(xié)商發(fā)起方的狀態(tài)值轉(zhuǎn)換為狀態(tài)1。

      協(xié)商的響應(yīng)方收到消息后,首先對其進(jìn)行分析,得到消息頭各域以及 SA載荷、KE載荷和NONCE載荷。然后檢查收到的SA載荷中是否有合適的建議子結(jié)構(gòu),如沒有,則向?qū)Ψ桨l(fā)送1個通知載荷并返回。如發(fā)現(xiàn)合適的建議子結(jié)構(gòu),則接著完成D-H交換。在響應(yīng)方對接收到的消息分析處理完畢后,就開始構(gòu)造第二條消息,按順序構(gòu)造消息頭、SA r載荷、KEr載荷和N r載荷。消息構(gòu)造完成后將其發(fā)送到對方,這時響應(yīng)方進(jìn)入狀態(tài)4。然后響應(yīng)方根據(jù)雙方協(xié)商的載荷可生成SKYSEED以及后續(xù)交換所需要的各個密鑰值。

      發(fā)起方收到響應(yīng)方發(fā)送的第二條消息后對其進(jìn)行分析和檢查,如果協(xié)商出合適的提議子結(jié)構(gòu)和D-H組等值,則發(fā)起方開始計算SKYSEED以及后續(xù)交換所需要的各個密鑰值。至此IKE_SA_IN IT交換結(jié)束并開始IKE_AU TH交換。

      IKE_AU TH交換由后兩條消息完成,主要進(jìn)行認(rèn)證前面發(fā)送的消息、交換身份標(biāo)識和證書(可選)、建立第一個CH ILD_SA。

      首先,消息發(fā)起方構(gòu)造第三條消息所需要的消息頭和載荷,從外面看,此消息只包括消息頭和1個加密載荷,而 IDi載荷、AU TH載荷、SAi2載荷、TSi載荷和 TSr載荷都由加密載荷封裝和保護(hù)。構(gòu)造好載荷后將他們加入到消息中發(fā)送出去。這時發(fā)起方的狀態(tài)值轉(zhuǎn)換為狀態(tài)2。響應(yīng)方接收到第三條消息后,同樣對該消息進(jìn)行分析,得到相應(yīng)的載荷并進(jìn)行流量選擇符的選擇。然后根據(jù)協(xié)商的認(rèn)證方法和密鑰對消息進(jìn)行驗證,以檢驗其完整性。驗證無誤后開始構(gòu)造第四條消息,構(gòu)造完畢后將其送出。這時響應(yīng)方的狀態(tài)值轉(zhuǎn)換為狀態(tài)5。發(fā)送方接收并分析第四條信息,并對其完整性進(jìn)行驗證后完成IKE_AU TH交換并建立第1個CH ILD_SA。此時發(fā)起方的狀態(tài)值轉(zhuǎn)換為狀態(tài)3。

      2)CREA TE_CHILD_SA階段交換。當(dāng)在IKE_SA的保護(hù)下需要建立更多的CH ILD_SA或者需要重協(xié)商IKE_SA和CHILD_SA時,就需要進(jìn)行CREATE_CHILD_SA交換。CREATE_CH ILD_SA交換可以選擇交換 KE載荷,以支持完美向前保密,使CHILD_SA具有更強的保密性。協(xié)商中的任何一方均可發(fā)起 CREATE_CHILD_SA交換。

      協(xié)商雙方按照協(xié)議規(guī)定的消息的內(nèi)容和格式調(diào)用載荷處理子系統(tǒng)構(gòu)造消息中的載荷,然后構(gòu)造要發(fā)送的消息。對于接收到的消息,交換的雙方在構(gòu)造完消息頭后,進(jìn)行檢查 spi是否為0,如不為0則表示是安全聯(lián)盟重協(xié)商;如果為0,則表示是建立CH ILD SA交換。然后檢查是否有 KE載荷以支持完美向前保密。CREA TE_CH ILD_SA交換的消息都是經(jīng)過加密的,具體處理過程同IN ITIAL交換的加密消息處理。

      3 結(jié)語

      IKEv1低效的原因之一是其復(fù)雜的消息協(xié)商過程,IKEv2協(xié)議簡化了 IKEv1冗余的功能,降低了復(fù)雜度,增強了安全性。本文提出的 IKEv2消息協(xié)商實現(xiàn)方案是整個IKEv2實現(xiàn)中最重要的部分,通過定義和跟蹤協(xié)商的狀態(tài)值,能高效完成IKEv2的消息協(xié)商并能成功建立安全聯(lián)盟。

      [1] Kent S,Seo K.Security Architecture for the Internet Pro tocol[S].RFC4301,2005.

      [2] 戴宗坤,唐三平.VPN與網(wǎng)絡(luò)安全[M].北京:電子工業(yè)出版社,2002.

      [3] Kaufman C,et al.Internet Key Exchange(IKEv2)Protocol[S].RFC 4306,2005.

      [4] Hussaina M,Hajjehb I,Afific H,et al.Tri-party IKEv2 in Home Networks[C].ICACT 07 Seoul,South Ko rea.

      [5] Soussi H,Hussain M,Afifi H,et al.IKEv1 and IKEv2:A Quantitative Analyses[J].The Fourth World Enformatika Conference,2005(6):194-197.

      Implementation for Message Negotiation in IKEv2 Protocol

      Liu Jiyu1,Mu Junchen2
      (1.School of Software,Shangqiu Normal University,Shangqiu,Henan 476000,China;2.School of Software,Kaifeng University,Kaifeng,Henan 475000,China)

      The most important content of IKEv2 protocol is message negotiation and message negotiation system is the difficulty of the whole IKEv2 system.According to the conversion of consultation message,this paper defines a number of state values and state conversion table,and it completes the entire consultation exchange smartly through the state transition of the track.Also,it can use the information to generate the necessary seed and all kinds of secret keys.In this way,IKE_SA and CH ILD_SA are set up successfully.

      IPsec;IKEv2;message negotiation

      TP393.09

      A

      1671-2544(2010)06-0062-04

      2010-09-02

      劉驥宇(1978— ),男,河南商丘人,商丘師范學(xué)院軟件學(xué)院助教,碩士。母軍臣(1979— ),男,河南周口人,開封大學(xué)軟件學(xué)院助教,碩士。

      (責(zé)任編輯:陳錦華)

      猜你喜歡
      狀態(tài)值密鑰協(xié)商
      探索企業(yè)創(chuàng)新密鑰
      密碼系統(tǒng)中密鑰的狀態(tài)與保護(hù)*
      研究降雨事件對交通流時空特性的影響
      一種基于切換拓?fù)涞碾x散時間一致性協(xié)議
      一種對稱密鑰的密鑰管理方法及系統(tǒng)
      論協(xié)商實效與協(xié)商倫理、協(xié)商能力
      基于ECC的智能家居密鑰管理機制的實現(xiàn)
      Rheological Properties and Microstructure of Printed Circuit Boards Modifed Asphalt
      以政協(xié)參與立法深化協(xié)商民主
      基于短文本的突發(fā)事件發(fā)展過程表示方法
      延津县| 京山县| 扶余县| 达州市| 镇雄县| 凤山市| 临猗县| 济阳县| 南靖县| 汝南县| 琼海市| 平南县| 叙永县| 四会市| 天全县| 富平县| 类乌齐县| 安龙县| 梁平县| 黑水县| 桂东县| 慈溪市| 涟水县| 甘南县| 玉田县| 林周县| 淮滨县| 泗阳县| 阿拉尔市| 秦皇岛市| 临泽县| 湖北省| 阿拉善左旗| 定襄县| 察雅县| 龙泉市| 措美县| 乐平市| 西畴县| 乌鲁木齐县| 蓬莱市|