趙明英
(廣東女子職業(yè)技術(shù)學(xué)院 教務(wù)處,廣州 511450)
GTP隧道管理消息狀態(tài)分析
趙明英*
(廣東女子職業(yè)技術(shù)學(xué)院 教務(wù)處,廣州 511450)
為解決3G網(wǎng)絡(luò)本身的安全問(wèn)題,在了解GTP協(xié)議結(jié)構(gòu)的基礎(chǔ)上,設(shè)計(jì)出GTP隧道管理消息的狀態(tài)機(jī)。通過(guò)對(duì)隧道管理消息的狀態(tài)進(jìn)行跟蹤分析,闡明防火墻對(duì)GTP包狀態(tài)的監(jiān)測(cè)原理,為針對(duì)GTP協(xié)議攻擊的防御研究提供了新的研究視角和分析途徑。
3G;GTP;隧道管理消息;狀態(tài)機(jī)
圖1 GTP頭部的格式
3G是將無(wú)線通信與國(guó)際互聯(lián)網(wǎng)等多媒體通信相結(jié)合的新一代移動(dòng)通信系統(tǒng)。GTP(GPRS Tunnelling Protocol)[1]是3G通信中的重要協(xié)議,然而GTP協(xié)議本身不具備任何內(nèi)在的安全機(jī)制,為了加強(qiáng)3G防火墻的防護(hù)效果,設(shè)計(jì)有效的GTP策略,應(yīng)了解GTP的各個(gè)狀態(tài),對(duì)GTP隧道的建立、更新和刪除進(jìn)行監(jiān)控。
GTP是用于GSN(GPRS Support Node)節(jié)點(diǎn)之間的接口協(xié)議。GTP協(xié)議是UMTS(Universal Mobile Telecommunications System)[2]核心網(wǎng)絡(luò)的專(zhuān)用分組路由管理和傳輸協(xié)議,它可以在核心網(wǎng)內(nèi)部支持分組數(shù)據(jù)終端的移動(dòng)性。該協(xié)議由GTP控制面和用戶(hù)面協(xié)議組成。GTP協(xié)議控制平面完成移動(dòng)臺(tái)MS接入分組網(wǎng)絡(luò)的隧道控制和管理功能,消息主要執(zhí)行建立、修改和刪除GSN之間隧道功能,同時(shí)還負(fù)責(zé)GSN節(jié)點(diǎn)間的移動(dòng)性管理、位置管理、路徑管理功能。GTP協(xié)議用戶(hù)平面負(fù)責(zé)數(shù)據(jù)在隧道中傳輸,以及傳輸隧道的部分維護(hù)功能[3-4]。
GTP數(shù)據(jù)包基本由GTP基本頭部,擴(kuò)展頭和數(shù)據(jù)組成。GTP頭用于控制面消息GTP-C和用戶(hù)面消息GTP-U協(xié)議,最小為8個(gè)字節(jié),其長(zhǎng)度可變,其格式如圖1所示。PN、S和E標(biāo)識(shí)符分別表示是否帶有附加的可選字段。PN標(biāo)識(shí)標(biāo)示是否帶有N-PDU號(hào)字段,如帶有N-PDU字段則標(biāo)識(shí)置1,置0表示沒(méi)有序列號(hào)字段,即使有也不解釋。PN標(biāo)識(shí)只在GTP-U中使用,在GTP-C中不用或被忽略;S標(biāo)識(shí)表示是否有序列號(hào)字段,如帶有序列號(hào)字段則標(biāo)識(shí)置1,置0表示沒(méi)有序列號(hào)字段,即使有也不解釋。在GTP-C消息中S標(biāo)識(shí)置1。E標(biāo)識(shí)指明是否帶有擴(kuò)展字段,以便將來(lái)不用其他版本就可以擴(kuò)展本規(guī)范中定義的GTP頭,有擴(kuò)展字段標(biāo)識(shí)置1,否則置為0。如果PN、S和E標(biāo)識(shí)符中任意一個(gè)標(biāo)識(shí)置1,GTP頭的長(zhǎng)度最小為12字節(jié),收端應(yīng)接收和標(biāo)識(shí)對(duì)應(yīng)的字段。沒(méi)有用到的字段,發(fā)端置所有比特為0,對(duì)于沒(méi)用到的字段收端不作考慮。版本字段用于標(biāo)識(shí)GTP協(xié)議的版本,有版本0和版本1;協(xié)議類(lèi)型(PT)用于區(qū)別GTP計(jì)費(fèi)協(xié)議和GTP(PT設(shè)為1);消息類(lèi)型用來(lái)指明GTP消息的類(lèi)型,消息類(lèi)型號(hào)0~255;長(zhǎng)度用來(lái)標(biāo)識(shí)有效載荷的字節(jié)數(shù),即GTP包除去包頭必選字段以外的字節(jié)數(shù),序列號(hào)和N-PDU號(hào)及其他擴(kuò)展頭也被計(jì)入其中;隧道端點(diǎn)標(biāo)識(shí)(TEID)明確標(biāo)識(shí)所用的接收GTP-U或GTP-C協(xié)議實(shí)體中隧道的端點(diǎn)。一條GTP隧道的收端本地分配TEID,發(fā)端必須使用這個(gè)值。TEID值用GTP-C消息(在Iu接口上用RANAP Radio Access Network Application Protocol)在隧道兩端傳輸[5]。
圖2 GTP隧道管理狀態(tài)變遷
圖3 SGSN發(fā)起建立隧道的狀態(tài)機(jī)
2.1 狀態(tài)機(jī)的定義
3G核心網(wǎng)絡(luò)中的分組數(shù)據(jù)是通過(guò)GTP協(xié)議承載傳輸?shù)?。服?wù)GPRS支持節(jié)點(diǎn)SGSN與網(wǎng)關(guān)GPRS支持節(jié)點(diǎn)GGSN之間要首先通過(guò)消息協(xié)商建立隧道[6]。為了在防火墻中對(duì)GTP隧道的建立、更新和刪除進(jìn)行監(jiān)控,并建立GTP的狀態(tài)表,本文設(shè)計(jì)了GTP隧道管理消息的狀態(tài)機(jī)。
狀態(tài)機(jī)M的模型如下:
對(duì)給定的五元組lt;Q,Σ,δ,q0,Fgt;滿(mǎn)足下列條件:
1)Q是簡(jiǎn)化狀態(tài)機(jī)的狀態(tài)組成的有限集合,q∈Q,q稱(chēng)為M的一個(gè)狀態(tài);
2)Σ是簡(jiǎn)化狀態(tài)機(jī)中隧道控制消息類(lèi)型組成的集合, ?x∈Σ,x為Σ的一個(gè)控制消息;
3)δ:Q×Σ→Q為轉(zhuǎn)移函數(shù),對(duì) ?(q,x)∈Q×Σ,δ(q,x)=p,是指M在狀態(tài)q時(shí)收到x,將狀態(tài)變?yōu)閜;
4)起始狀態(tài)q0∈Q;
5)接受狀態(tài)集F,這里F={q0};
隧道管理操作中,主要的通信節(jié)點(diǎn)是GGSN和SGSN,我們將GGSN視為服務(wù)器,將SGSN視為客戶(hù),按照GGSN和SGSN在不同狀態(tài)收到不同消息后的狀態(tài)變化做出了狀態(tài)機(jī)如圖2所示。圖中包含的狀態(tài)集Q一共有18個(gè)狀態(tài)(圖中一共畫(huà)出了15個(gè)狀態(tài)),其中SGSN有8個(gè):CPCReq_Sent、Tunnel Established、UPCReq_Sent、DPCReq_Sent、DPCReq_Recv、PNReq_Recv、PNResp_Sent、PNRReq_Sent;GGSN有10個(gè)狀態(tài):GGSN Listen、CPCReq_Recv、Tunnel Established、UPCReq_Recv、DPCReq_Sent、DPCReq_Recv、T_PDU_Recv、PNReq_Sent、PNResp_Recv、PNRReq_Recv,包括所有的隧道管理消息。
2.2 隧道建立的狀態(tài)遷移
GTP隧道的建立過(guò)程類(lèi)似于TCP/IP協(xié)議建立連接的3次握手過(guò)程,不同的是,建立過(guò)程只用了2次握手[7]。首先SGSN向GGSN發(fā)送Create PDP Context Request,GGSN向SGSN響應(yīng)Create PDP Context Response消息,從而建立隧道連接。SGSN經(jīng)過(guò)的狀態(tài)遷移是Closed→CPCReq_Sent→隧道Established,而GGSN的狀態(tài)遷移過(guò)程是Closed→GGSN Listen→CPCReq_Recv→隧道Established。此時(shí),SGSN與GGSN可以開(kāi)始進(jìn)行數(shù)據(jù)的傳輸。
2.3 隧道更新和刪除的狀態(tài)遷移
SGSN與GGSN建立隧道后,SGSN可以向GGSN發(fā)送PDP上下文更新信息,從而更新隧道的某些特性字段,完成后都回到隧道Established的狀態(tài)。SGSN和GGSN分別可以向?qū)Ψ桨l(fā)送PDP上下文刪除信息,釋放建立好的隧道,回到開(kāi)始狀態(tài)。
2.4 SGSN發(fā)起建立隧道的狀態(tài)變遷圖
在SGSN發(fā)起建立隧道的GTP狀態(tài)機(jī)中,不考慮GGSN向SGSN發(fā)PDU Notification Request以建立PDP上下文的情況,這是典型的服務(wù)器端與客戶(hù)端通信的模式。這里可以把GGSN看成服務(wù)器端,把SGSN看成客戶(hù)端,如圖3所示。圖中的狀態(tài)集合Q={CPCReq_Sent,CPCReq_Recv,TunnelEstablished,UPCReq_Sent,UPCReq_Recv,DPCReq_Sent,DPCReq_Recv,GGSN Listen},Σ={16,17,18,19,20,21}(消息類(lèi)型碼),δ描述了狀態(tài)機(jī)的轉(zhuǎn)移過(guò)程,是Σ中消息所引發(fā)的狀態(tài)轉(zhuǎn)移,每個(gè)消息只會(huì)觸發(fā)唯一的狀態(tài)轉(zhuǎn)移。
防火墻在核心部分建立GTP狀態(tài)監(jiān)測(cè)表,將進(jìn)出防火墻的GTP數(shù)據(jù)當(dāng)成一個(gè)個(gè)的GTP會(huì)話(huà),利用GTP狀態(tài)表跟蹤每一個(gè)GTP會(huì)話(huà)狀態(tài)。對(duì)每一個(gè)GTP包的檢查不僅根據(jù)防火墻的IP規(guī)則表,更考慮GTP數(shù)據(jù)包是否符合會(huì)話(huà)所處的狀態(tài),提供對(duì)GTP傳輸?shù)目刂颇芰?。防火墻監(jiān)測(cè)引擎抽取GTP包的有關(guān)數(shù)據(jù)對(duì)GTP數(shù)據(jù)實(shí)施狀態(tài)監(jiān)測(cè),并動(dòng)態(tài)地保存起來(lái)形成GTP狀態(tài)檢測(cè)表,作為以后執(zhí)行安全策略的參考。對(duì)于由MN發(fā)起的一次正常的GPRS附著通信,我們可以抽取GTP包頭中的TEID、Message Type、Sequence Number等信息做為建立GTP狀態(tài)的依據(jù)。
起始GGSN處于監(jiān)聽(tīng)狀態(tài)(GGSN Listen)。當(dāng)MN發(fā)起GPRS附著通信時(shí),SGSN向地址列表里的第一個(gè)GGSN發(fā)出創(chuàng)建PDP上下文請(qǐng)求信息,SGSN處于CPCReq_Sent狀態(tài)。該請(qǐng)求信息經(jīng)過(guò)防火墻時(shí),防火墻記住其中的控制面和數(shù)據(jù)面TEID、Sequence Number、Message Type,啟動(dòng)計(jì)時(shí)器,等待GGSN的回應(yīng)。GGSN在收到該請(qǐng)求消息后進(jìn)入CPCReq_Recv狀態(tài),進(jìn)行相應(yīng)處理后發(fā)送回應(yīng)消息,進(jìn)入隧道建立狀態(tài)(接受請(qǐng)求)或返回監(jiān)聽(tīng)狀態(tài)(未接受請(qǐng)求)。防火墻在計(jì)時(shí)器失效前收到該GGSN發(fā)送的回應(yīng),允許該包通過(guò)。若信息單元類(lèi)型值為128(接受請(qǐng)求),SGSN收到此回應(yīng)后進(jìn)入隧道建立狀態(tài),開(kāi)始傳輸MN的數(shù)據(jù)。防火墻則在狀態(tài)表中設(shè)置相應(yīng)的條目,包括數(shù)據(jù)TEID、控制TEID、Message Type(前一GTP包的類(lèi)型)、Sequence Number等信息。此后在數(shù)據(jù)TEID上的數(shù)據(jù)即可通過(guò)防火墻,但是每次都會(huì)被檢查,并更新?tīng)顟B(tài)狀態(tài)表中的Message Type、Sequence Number信息。如果收到的回應(yīng)其信息單元類(lèi)型值不為128,則請(qǐng)求不被接受,SGSN收到此回應(yīng)后返回初始狀態(tài)。防火墻并不建立相應(yīng)的狀態(tài)表?xiàng)l目,此后來(lái)自此數(shù)據(jù)TEID的數(shù)據(jù)被拒絕。
在通信過(guò)程中SGSN可能會(huì)向?qū)Χ薌GSN發(fā)送更新PDP上下文請(qǐng)求消息來(lái)更新PDP上下文中的信息,即SGSN進(jìn)入U(xiǎn)PCReq_Sent狀態(tài)。防火墻收到該消息后轉(zhuǎn)發(fā)該消息,啟動(dòng)計(jì)時(shí)器,并提取其中的相關(guān)信息暫存;GGSN收到該請(qǐng)求消息后進(jìn)入U(xiǎn)PCReq_Recv狀態(tài),進(jìn)行相應(yīng)處理,發(fā)出響應(yīng),無(wú)論是否接受請(qǐng)求都會(huì)返回隧道建立狀態(tài),差別只在PDP上下文中的信息是否更新。收到GGSN發(fā)送的回應(yīng)后,防火墻轉(zhuǎn)發(fā)并查看其中的原因值,若原因值為128則更新?tīng)顟B(tài)表中的相應(yīng)信息,否則只更新其中的Sequence Number。SGSN收到回應(yīng)后也是返回隧道建立狀態(tài),差別在于是否更新PDP上下文信息。
通信完成后,SGSN向?qū)Χ薌GSN發(fā)送刪除PDP上下文請(qǐng)求消息來(lái)刪除某一PDP上下文,此時(shí)SGSN進(jìn)入DPCReq_Sent狀態(tài)。防火墻允許此請(qǐng)求消息通過(guò),緩存其中的相關(guān)信息。GGSN收到該請(qǐng)求消息后進(jìn)入DPCReq_Recv狀態(tài),進(jìn)行相應(yīng)處理后發(fā)送回應(yīng),返回隧道建立狀態(tài)(不接受請(qǐng)求)或監(jiān)聽(tīng)狀態(tài)(接受請(qǐng)求)。該回應(yīng)到達(dá)防火墻后被轉(zhuǎn)發(fā),同時(shí)檢查原因值,若為128,防火墻刪除狀態(tài)表中的對(duì)應(yīng)條目,否則保留該狀態(tài)條目,更新Sequence Number。SGSN收到接受請(qǐng)求的回應(yīng)后返回初始狀態(tài),否則保持在隧道建立狀態(tài)。
本文主要介紹了GTP協(xié)議及頭部結(jié)構(gòu),針對(duì)GTP隧道協(xié)議的隧道管理消息的狀態(tài)進(jìn)行分析定義,并畫(huà)出了隧道管理的狀態(tài)變遷圖。通過(guò)說(shuō)明狀態(tài)防火墻該如何應(yīng)用該狀態(tài)機(jī)進(jìn)行包狀態(tài)的檢查,對(duì)3G防火墻針對(duì)GTP協(xié)議攻擊的防御研究提供理論基礎(chǔ)。
[1] 3GPP.3GPP TS 23.060 General Packet Radio Service(GPRS);Service description[S].2005.
[2] UMTS 33.21, V2.0.0,Universal Mobile Telecommunications System(UMTS);Security Requirements [S].1999.
[3] 陳志鋒,陳盛榮.3G防火墻中GTP策略的設(shè)計(jì)[J].通信技術(shù),2008(1):77-78,93.
[4] 詹宏強(qiáng),陳盛榮.針對(duì)GTP協(xié)議的攻擊及防御綜述[J].通信技術(shù),2007(8):43-45.
[5] 顧愷.GTP協(xié)議的分析[J].數(shù)據(jù)通信,2001(1):39-41.
[6] 王田,張偉.GTP協(xié)議分析及在GSN中實(shí)現(xiàn)[J].重慶工商大學(xué)學(xué)報(bào):自然科學(xué)版,2004(1):49-53.
[7] 劉震宇,吳俊強(qiáng),方韶茂.GPRS核心網(wǎng)隧道安全測(cè)試平臺(tái)的設(shè)計(jì)[J].自動(dòng)化與儀表,2010(3):24-28.
StatusAnalysisofGTPTunnelInformationManagement
ZHAOMingying*
(Teaching Affairs Office,Guangdong Women's Polytechnic College, Guangzhou 511450,China)
With the popularization of 3G mobile network, solutions to possible security problems is becoming more and more important. This paper, based on GTP protocol, designed a state machine for GTP tunnel information management to make a trace analysis, and illustrated how firewall monitors GTP package status,all in an effort to bring a new perspective and an approach to the research on GTP attack defense.
3G;GTP; tunnel information management; state machine
2013-06-18
趙明英(1978- ),女(漢族),山東菏澤人,講師,碩士,研究方向:計(jì)算機(jī)網(wǎng)絡(luò)與信息安全、數(shù)據(jù)庫(kù),通信作者郵箱:myzhao@gdfs.edu.cn。
TN929
A
2095-5383(2013)04-0041-03