李愛(ài)寧,唐 勇,齊曉東
(河北工程技術(shù)高等專科學(xué)校電氣自動(dòng)化系,河北 滄州 061001)
隨著多媒體教育的日益深化,在高等教育教學(xué)中,尤其是工科類的教學(xué),試驗(yàn)課程得到越來(lái)越多的重視。但由于目前一些學(xué)校經(jīng)費(fèi)有限,設(shè)備條件不足,對(duì)于某些重要知識(shí)點(diǎn)不能接觸到實(shí)際應(yīng)用環(huán)境,學(xué)生理解起來(lái)比較困難。MAPSec協(xié)議原理作為3G系統(tǒng)中的一個(gè)重要協(xié)議,是無(wú)線通信課程中的一個(gè)重要知識(shí)點(diǎn),由于該原理相對(duì)抽象、復(fù)雜,并且沒(méi)有現(xiàn)成的針對(duì)這個(gè)知識(shí)點(diǎn)的實(shí)驗(yàn)平臺(tái)供教學(xué)使用,為克服這種困難,該課題通過(guò)使用C#.net以及Sqlite數(shù)據(jù)庫(kù)技術(shù)設(shè)計(jì)了一個(gè)MAP信令安全傳輸實(shí)驗(yàn)平臺(tái)。
MAPSec協(xié)議原理參考文獻(xiàn)[1-2]。全球移動(dòng)通信系統(tǒng)(GSM)和第三代移動(dòng)通信系統(tǒng)(3G)網(wǎng)絡(luò)中的控制信令是通過(guò)MAP協(xié)議實(shí)現(xiàn)的,MAPSec協(xié)議主要用于網(wǎng)絡(luò)實(shí)體間MAP消息的傳輸,MAPsec協(xié)議可以為網(wǎng)絡(luò)實(shí)體間MAP消息的傳輸提供安全保證,包括保密性,認(rèn)證性及防止重放攻擊。MAPsec協(xié)議提供了保護(hù)模式0、保護(hù)模式1和保護(hù)模式2三種不同的保護(hù)模式。以MAPSec協(xié)議保護(hù)的MAP信令消息包括安全頭和被保護(hù)負(fù)荷2部分。
(1)MAPsec安全頭
①保護(hù)模式0下,安全頭的結(jié)構(gòu)為:SPI||源端成分ID;
②保護(hù)模式 1和 2下,安全頭的結(jié)構(gòu)為:SPI||源端成分ID||TVP||NE-ID||PROP,其中:SPI是一個(gè)32位的安全參數(shù)索引數(shù)。源端成分ID:用來(lái)確定被安全保護(hù)的MAP信令類型。TVP是一個(gè)32位的時(shí)間變量參數(shù)。NE-ID是一個(gè)長(zhǎng)度為6個(gè)字節(jié)的網(wǎng)絡(luò)實(shí)體標(biāo)識(shí)。PROP是長(zhǎng)度4字節(jié)的所有者域。
(2)MAPsec受保護(hù)的負(fù)荷
在保護(hù)模式0中,MAP消息的受保護(hù)負(fù)荷部分以明文形式出現(xiàn)。
在保護(hù)模式1中,MAP消息的凈負(fù)荷的格式有:明文||f7(安全頭||明文)。在保護(hù)模式2中,MAP消息的凈負(fù)荷的格式有:f6(明文)||f7(安全頭||f6(明文))。注:f6為加密算法,f7為一種哈希函數(shù)。
假設(shè)在不同 PLMN內(nèi)的兩個(gè)網(wǎng)絡(luò)實(shí)體 MAP NEa和MAP NEb想利用MAPsec通信,則網(wǎng)絡(luò)實(shí)體間通信的消息流程如圖1所示。
圖1 網(wǎng)絡(luò)實(shí)體間MAP信令消息傳輸流程
(1)表示層
表示層提供人機(jī)交互的界面,主要實(shí)現(xiàn)人機(jī)交互和軟件展示,主要負(fù)責(zé)頁(yè)面顯示、頁(yè)面狀態(tài)的控制以及頁(yè)面上各種控件的事件處理程序,如Button的Click事件。同時(shí),負(fù)責(zé)頁(yè)面用戶的輸入信息的基本驗(yàn)證功能以及為客戶端提供對(duì)應(yīng)程序的訪問(wèn)。
(2)業(yè)務(wù)邏輯層
該層是 MAPsec信令傳輸平臺(tái)系統(tǒng)實(shí)現(xiàn)的核心環(huán)節(jié),該層設(shè)計(jì)關(guān)系到整體邏輯,主要用于實(shí)現(xiàn)對(duì)應(yīng)的業(yè)務(wù)目標(biāo)。主要包括:處理應(yīng)用程序的業(yè)務(wù)邏輯和業(yè)務(wù)校驗(yàn);管理業(yè)務(wù)層級(jí)別的對(duì)象依賴;管理程序的執(zhí)行;創(chuàng)建實(shí)體類,包括加解密和認(rèn)證模塊;建立通用的業(yè)務(wù)接口,實(shí)現(xiàn)對(duì)數(shù)據(jù)訪問(wèn)層的訪問(wèn)。
(3)數(shù)據(jù)訪問(wèn)層
實(shí)現(xiàn)平臺(tái)系統(tǒng)對(duì)數(shù)據(jù)庫(kù)的操作,完成數(shù)據(jù)庫(kù)中各參數(shù)的插入、調(diào)用及更新等操作。
傳輸平臺(tái)的3層架構(gòu)如圖2所示。
圖2 傳輸平臺(tái)的3層架構(gòu)
(1)表示層設(shè)計(jì)實(shí)現(xiàn)
傳輸平臺(tái)的界面采用 C#.net[3-4]設(shè)計(jì)。登陸界面如圖 3所示。
圖3 登陸界面
點(diǎn)擊“進(jìn)入發(fā)送網(wǎng)絡(luò)節(jié)點(diǎn)”和“進(jìn)入接收網(wǎng)絡(luò)節(jié)點(diǎn)”按鈕,分別進(jìn)入發(fā)送/接收節(jié)點(diǎn)的子界面,如圖 4所示為發(fā)送節(jié)點(diǎn)界面。
圖4 發(fā)送MAPsec信令節(jié)點(diǎn)界面
該界面包括3個(gè)主要模塊:
模塊1:“實(shí)驗(yàn)內(nèi)容”、“實(shí)驗(yàn)步驟”、“實(shí)驗(yàn)實(shí)施”、“實(shí)驗(yàn)思考”。通過(guò)點(diǎn)擊“保護(hù)模式0”、“保護(hù)模式1”、“保護(hù)模式2”圖標(biāo)中不同的模式圖標(biāo),可以顯示相應(yīng)的保護(hù)模式內(nèi)容。
圖5 發(fā)送MAP信令的界面
模塊2:創(chuàng)建參數(shù)庫(kù)模塊,創(chuàng)建數(shù)據(jù)庫(kù)存放SPI、TVP、NE-ID、PROP幾個(gè)參數(shù)。
模塊3:點(diǎn)擊該模塊最下方的“保護(hù)模式1”按鈕,即可進(jìn)入相應(yīng)的保護(hù)模式的操作界面,進(jìn)行MAP信令的傳輸。如圖5所示為發(fā)送MAP信令的界面(接收界面布局與此相類似)。
節(jié)點(diǎn)間通信使用TCP/IP協(xié)議。Socket接口作為TCP/IP網(wǎng)絡(luò)協(xié)議的應(yīng)用程序接口(API),定義了通信所需的函數(shù)和例程[5-6]。設(shè)計(jì)流程如下:
步驟①:命名空間的添加。
步驟②:構(gòu)造一個(gè)新的socket對(duì)象。
在C#中,采用socket函數(shù)構(gòu)造一個(gè)socket對(duì)象,socket函數(shù)原型如下:
步驟③:Socket的配置和連接。
采用IPEndPoint類。函數(shù)原型如下:
步驟④:數(shù)據(jù)的傳送和接收。
步驟⑤:socket關(guān)閉。
(2)業(yè)務(wù)邏輯層設(shè)計(jì)
該層設(shè)計(jì)包括以下幾個(gè)主要模塊:
加/解密模塊:即用于對(duì)明文加/解密的f6函數(shù),通過(guò)構(gòu)建Encode()和 Decode ()2個(gè)函數(shù)實(shí)現(xiàn)。
認(rèn)證碼生成模塊:即用于驗(yàn)證完整性的哈希函數(shù)—f7函數(shù),在設(shè)計(jì)中使用 MD5算法作為哈希函數(shù),通過(guò)構(gòu)建MD5_Hash()函數(shù)實(shí)現(xiàn)。
源端成分ID識(shí)別模塊:構(gòu)建ID_value()函數(shù)確定被安全保護(hù)的MAP操作的成分類型是調(diào)用(0)、結(jié)果(1)還是錯(cuò)誤(2)。
TVP時(shí)間變量參數(shù)識(shí)別模塊:構(gòu)建TVP_value()函數(shù),用來(lái)識(shí)別TVP值,防止對(duì)MAP操作進(jìn)行重放攻擊。
與數(shù)據(jù)庫(kù)通信接口:數(shù)據(jù)庫(kù)的設(shè)計(jì)采用輕量級(jí)的 sqlite數(shù)據(jù)庫(kù)[7-8],sqlite數(shù)據(jù)庫(kù)結(jié)構(gòu)簡(jiǎn)單,源代碼也不是很多,降低了系統(tǒng)內(nèi)存的占用,同時(shí)提高數(shù)據(jù)的處理效率。C#.net與sqlite數(shù)據(jù)庫(kù)連接代碼如下:
(3)數(shù)據(jù)訪問(wèn)層設(shè)計(jì)
該層設(shè)計(jì)主要完成數(shù)據(jù)庫(kù)中各個(gè)參數(shù)的插入、調(diào)用以及更新等操作。
此外,平臺(tái)還設(shè)計(jì)了應(yīng)用接口,通過(guò)此接口可以方便的添加到其他實(shí)驗(yàn)平臺(tái)中。
由于MAPsec協(xié)議原理相對(duì)比較復(fù)雜,而且由于實(shí)際環(huán)境限制,學(xué)生不能接觸到實(shí)際應(yīng)用環(huán)境,因此理解起來(lái)相對(duì)比較困難。所以搭建本實(shí)驗(yàn)平臺(tái),通過(guò)仿真基于MAPSec協(xié)議傳輸信令過(guò)程,有助于學(xué)生對(duì)知識(shí)的理解掌握,能夠提高教學(xué)效率,同時(shí),這里實(shí)驗(yàn)平臺(tái)采用C#.net技術(shù)開(kāi)發(fā)具有較好的移植性和兼容性,具有較好的實(shí)用推廣價(jià)值,克服學(xué)校實(shí)驗(yàn)設(shè)備不足等缺陷,對(duì)于教育教學(xué)有積極作用。
[1] 楊義先,鈕心忻.無(wú)線通信安全技術(shù)[M].北京:北京郵電大學(xué)出版社,2005:159-163.
[2] 曹晨磊,張茹,鈕心忻,等.3G實(shí)體認(rèn)證協(xié)議及技術(shù)規(guī)范的綜述與安全分析[J]. 清華大學(xué)學(xué)報(bào):自然科學(xué)版,2009,49(82): 2193-2199.
[3] 王超,潘楊.Visual C#通用范例開(kāi)發(fā)寶典[M].北京:電子工業(yè)出版社,2008.
[4] 林邦杰.深入淺出 C#程序設(shè)計(jì)[M].北京:中國(guó)鐵道出版社,2005:100-300.
[5] 亓傳偉.在.NET下實(shí)現(xiàn)進(jìn)程通信[J].通信技術(shù),2008, 41(05):97-98.
[6] 岳曉光,梁曉誠(chéng),麥范金,等.NET下的網(wǎng)絡(luò)通信方案研究[J].通信技術(shù),2010,43(01):191-192.
[7] SQLite. Ongoing Development and Maintenance of SQLite is Sponsored in Part by SQLite Consortium Members[EB/OL].(2010-11-02)[2011-03-01]. http://www.sqlite.org/.
[8] MICHAEL O.The Definitive Guide to SQLite[M]. USA:Apress,2006:100-150.