国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

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

劉驥宇,母軍臣

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

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

劉驥宇1,母軍臣2

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

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

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

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

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

1 消息協(xié)商

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

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

2 實現(xiàn)過程

根據協(xié)議的特點,筆者使用C++語言,以面向對象的方法設計了1個IKEv2消息協(xié)商系統(tǒng)。

2.1 消息的處理

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

為了表示 IKEv2協(xié)議中重新設置的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ù)據,即SK{…}中的載荷。而add Payload()成員函數(shù)就是將各個載荷添加到這2個集合中來,以便構造交換消息。添加載荷時是從尾部插入。

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

圖1 構造消息流程圖

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

圖2 分析消息流程圖

2.2 消息協(xié)商

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

2.2.1 狀態(tài)轉換表的設計

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

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

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

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

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

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

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

2.2.2 消息協(xié)商過程

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

IKEv2協(xié)商被觸發(fā)后,首先判斷 IKE_SA是否存在。如果存在,則直接進行 CREA TE_CH ILD_SA階段交換,協(xié)商建立該 IKE_SA保護下的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條消息完成,進行協(xié)商加密算法、交換 nonce值、完成Diffie-Hellman交換、計算后階段所需要的各種密鑰值。

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

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

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

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

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

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

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

3 結語

IKEv1低效的原因之一是其復雜的消息協(xié)商過程,IKEv2協(xié)議簡化了 IKEv1冗余的功能,降低了復雜度,增強了安全性。本文提出的 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與網絡安全[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— ),男,河南商丘人,商丘師范學院軟件學院助教,碩士。母軍臣(1979— ),男,河南周口人,開封大學軟件學院助教,碩士。

(責任編輯:陳錦華)

猜你喜歡
狀態(tài)值密鑰協(xié)商
探索企業(yè)創(chuàng)新密鑰
密碼系統(tǒng)中密鑰的狀態(tài)與保護*
研究降雨事件對交通流時空特性的影響
一種基于切換拓撲的離散時間一致性協(xié)議
一種對稱密鑰的密鑰管理方法及系統(tǒng)
論協(xié)商實效與協(xié)商倫理、協(xié)商能力
基于ECC的智能家居密鑰管理機制的實現(xiàn)
電信科學(2017年6期)2017-07-01 15:45:06
Rheological Properties and Microstructure of Printed Circuit Boards Modifed Asphalt
以政協(xié)參與立法深化協(xié)商民主
基于短文本的突發(fā)事件發(fā)展過程表示方法
計算機應用(2016年6期)2016-06-28 08:30:16
山东省| 民乐县| 湄潭县| 秦安县| 南江县| 双桥区| 安溪县| 安顺市| 阜新市| 奈曼旗| 尉犁县| 萍乡市| 洪湖市| 富平县| 瓦房店市| 安乡县| 景宁| 建宁县| 澄江县| 玉溪市| 鄂州市| 安仁县| 抚远县| 金山区| 梁河县| 邓州市| 晋州市| 金阳县| 邳州市| 上思县| 桐城市| 布尔津县| 潞西市| 峨山| 建阳市| 监利县| 海南省| 潮安县| 黄龙县| 乡城县| 云浮市|