專利名稱:一種空閑模式下防止消息重放攻擊的方法
技術領域:
本發(fā)明涉及無線接入系統(tǒng)領域,特別是指一種空閑模式下防止消息重放攻擊的方法。
背景技術:
802.16e標準定義了移動寬帶無線接入系統(tǒng)的空中接口標準,802.16e網(wǎng)絡中,至少包括移動用戶臺(MSS)、基站(BS)。其中,多個BS可以組成一個組,稱為尋呼組(Paging Group)。尋呼組的目的是構(gòu)成一個連續(xù)的區(qū)域,在這個區(qū)域內(nèi)處于空閑模式的MSS沒有必要發(fā)送上行業(yè)務,但是可以通過下行尋呼信道來判斷是否有發(fā)送給它的下行業(yè)務。
空閑模式是IEEE 802.16e標準定義的一種終端工作模式,其特點是MSS可以在尋呼組的區(qū)域內(nèi)移動,每隔一定的周期接收下行廣播業(yè)務消息,以得知是否有下行業(yè)務發(fā)送;并且,MSS在這個區(qū)域內(nèi)漫游過程中不必在小區(qū)內(nèi)向小區(qū)的BS進行注冊;當MSS漫游到該區(qū)域內(nèi)不同小區(qū)時,也不必進行切換等正常操作流程,以利于MSS節(jié)省功率和空口資源。
在與某個服務基站(Serving BS)的正常操作過程中,MSS可以通過發(fā)送消息請求進入空閑模式。類似的,Serving BS也可以通過發(fā)送消息主動要求MSS進入空閑模式。當MSS中斷與Serving BS的正常操作過程進入空閑模式后,尋呼控制器(Serving BS或其它控制MSS空閑模式活動的網(wǎng)絡實體)需要保存一些MSS業(yè)務信息,這里,稱尋呼控制器保存的MSS業(yè)務信息為MSS注冊信息。
在空閑模式下,MSS會周期性的向?qū)ず艨刂破靼l(fā)起位置更新請求。尋呼控制器接收到MSS發(fā)送的位置更新請求消息以后發(fā)送響應消息,指示MSS位置更新請求成功或失敗。位置更新的意義在于MSS可以定時通知尋呼控制器,它還在這個尋呼組的控制范圍內(nèi)。如果只是在一個尋呼組內(nèi)漫游,位置更新請求不會引起MSS和尋呼控制器之間的任何動作。當MSS跨越尋呼組漫游時,新的尋呼組控制器在收到MSS的位置更新請求時,發(fā)現(xiàn)位置更新請求消息中的尋呼控制器標識(Paging Controller ID)不是自己的PagingController ID,就會發(fā)送響應消息,通知MSS位置更新成功,同時通過骨干網(wǎng)通知原尋呼組該MSS已移動到了新的尋呼組,原尋呼組控制器就會將存儲的這個MSS的注冊信息發(fā)送給新尋呼組的尋呼控制器。
802.16系統(tǒng)中通過HMAC-Digest對消息實現(xiàn)認證,HMAC-Digest是通信雙方基于共享密鑰對消息體進行摘要計算得到的一個消息認證碼。發(fā)送方在發(fā)送消息前利用雙方在認證過程中交換的共享密鑰和消息體(包括消息頭)一起計算,得到一個加密的消息摘要,即HMAC-Digest,接收方在收到消息后進行同樣的計算得到一個HMAC-Digest,并與隨消息發(fā)送的HMAC-Digest進行比較,就能實現(xiàn)對消息發(fā)送方的認證。
MSS在空閑模式下的位置更新請求中包含了HMAC-Digest,由于MSS在空閑模式下漫游到不同BS時,不需要進行切換過程,也就不會和新的BS進行認證。如何對這些管理消息中的HMAC-Digest進行認證,現(xiàn)有的機制是上述的在尋呼控制器上保存MSS注冊信息,其中就包括了MSS與進入空閑模式時所在的BS的密鑰信息,每次發(fā)起的位置更新請求中都指示了當前這些密鑰信息所在的尋呼控制器,這些密鑰信息可以用于對空閑模式中的管理消息進行HMAC-Digest認證?,F(xiàn)有技術中的位置更新請求包含的內(nèi)容還包括有尋呼組的尋呼控制器ID,消息的目標BSID和其它相關信息等。
重放攻擊是一種常見的網(wǎng)絡攻擊方法,攻擊者在通信雙方(A、B)的某次交互過程中截獲A(或B)發(fā)送的消息,在以后的某個合適的時機,向B(或A)重新發(fā)送它截獲的消息,如果每次消息交互過程都是一樣的,而且消息中沒有包含足夠的信息使得B(或A)能判斷消息是第一次發(fā)起的還是重放的信息。攻擊者就能冒充通信中的一方去欺騙另一方,從而達到攻擊網(wǎng)絡的目的。
現(xiàn)有技術保證了對消息的認證,但是沒有提供抵御重放攻擊的機制,結(jié)合圖1,通過下面的分析過程,來介紹攻擊者怎樣實施重放攻擊步驟101MSS在尋呼組A中的某個BS上進入空閑模式,該過程是由MSS請求或BS主動通知MSS完成的,MSS進入空閑模式后,需要在尋呼控制器A(ID=1)上保存MSS的相關注冊信息(如密鑰信息);步驟102MSS從尋呼組A漫游到尋呼組B;步驟103MSS在新的尋呼組B中發(fā)起第一次位置更新請求,當前BS的BSID=2,所以該位置更新請求包含的信息有Paging Controller ID=1,Target BSID=2,CID=0等。對該消息進行認證后(這時消息的認證應該送到尋呼控制器A上完成),原來保存在尋呼控制器A(ID=1)上的MSS保留信息通過骨干網(wǎng)轉(zhuǎn)移到尋呼控制器B(ID=2)上;步驟104攻擊者(Attacker)在該位置截獲MSS發(fā)起的這次位置更新請求消息,并保存起來;步驟105MSS在尋呼組內(nèi)漫游,最后漫游到BSID=3的小區(qū),中間可能會發(fā)起多次位置更新請求,請求消息包含的信息有Paging ControllerID=2,Target BSID(根據(jù)發(fā)起位置更新請求時所在的BS而定),CID=0等;步驟106MSS從尋呼組B漫游回到尋呼組A;步驟107MSS在尋呼組A內(nèi)發(fā)起位置更新請求,該請求消息包含的信息有Paging Controller ID=2,Target BSID=4,CID=0等。對消息經(jīng)過認證后,原來保存在尋呼控制器B(ID=2)上的MSS保留信息通過骨干網(wǎng)轉(zhuǎn)移到尋呼控制器A(ID=1)上;步驟108攻擊者在MSS漫游到尋呼組B并發(fā)起第一次位置更新請求的位置重放它截獲的位置更新請求,該重放的請求消息包含的信息有Paging Controller ID=1,Target BSID=2,CID=0等。由于這時MSS已經(jīng)漫游回到尋呼組A,MSS的保留信息也正好存儲在尋呼組A的尋呼控制器上,所以重放攻擊得以成功,消息經(jīng)過認證后,保存在尋呼控制器A(ID=1)上的MSS保留信息通過骨干網(wǎng)轉(zhuǎn)移到尋呼控制器B(ID=2)上,而這時MSS的實際位置在尋呼組A中,但系統(tǒng)會認為MSS已經(jīng)漫游到尋呼組B中,所以會出現(xiàn)尋呼不到MSS的情況。
從上面的分析可以知道,在空閑模式下,MSS發(fā)起位置更新消息時,可以被攻擊者截獲用于重放攻擊,進而會導致終端無法被尋呼到。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種在802.16e系統(tǒng)空閑模式下防止消息重放攻擊的方法。
本發(fā)明提供了一種防止重放攻擊的方法,終端進入空閑模式下,第一尋呼控制器保存有終端的注冊信息,該方法包括以下步驟A、終端發(fā)送位置更新請求消息,該消息至少包括終端生成的第一認證信息;B、第一尋呼控制器接收位置更新請求消息,生成第二認證信息,將第一認證信息和第二認證信息置于位置更新響應消息中發(fā)送給終端;C、終端接收所述位置更新響應消息,判斷位置更新響應消息中的第一認證信息是否與自己所生成的第一認證信息相同,若相同,則向第一尋呼控制器返回包含有第二認證信息的響應消息;否則,結(jié)束;D、第一尋呼控制器判斷所述響應消息中的第二認證信息是否與自己所生成的第二認證信息相同,若相同,則響應位置更新操作;否則,結(jié)束。
其中,所述終端處于第一尋呼控制器區(qū)域內(nèi),步驟D所述響應位置更新操作為接受所述響應消息。
其中,進一步包括第二尋呼控制器,終端處于第二尋呼控制器區(qū)域內(nèi);終端和第一尋呼控制器之間的消息通過所述第二尋呼控制器進行中轉(zhuǎn);步驟D所述響應位置更新操作為第一尋呼控制器將保存的終端的注冊信息發(fā)送給第二尋呼控制器。
其中所述的認證信息包括隨機數(shù)、或?qū)Π猩傻碾S機數(shù)的消息使用某算法所生成的認證碼。所述的某算法可為HMAC-Digest算法。
由上述方法可以看出,本發(fā)明在MSS發(fā)送位置更新消息與尋呼控制器交互時,將一個消息交互過程通過至少三次以上的握手過程完成,每次消息交互過程中交互的消息通過隨機數(shù)從概率上能保證和曾經(jīng)發(fā)送過的消息不重復,并且交互過程中的每個消息前后都具有連貫性,攻擊者難以同時獲取到所有相關聯(lián)的信息,從而來抵御重放攻擊。
圖1為終端發(fā)生位置更新的示意圖。
圖2為本發(fā)明提供的位置更新流程圖。
具體實施例方式
重放攻擊是將先前截獲的消息在以后的某個合適的時機進行不加修改的重放,以達到攻擊的目的。為了有效的阻止消息的重放攻擊,利用隨機數(shù)和消息認證機制使一個消息交互過程重現(xiàn)的概率足夠小是一個有效的方法。
實際上,空閑模式下的MSS連續(xù)保持空閑模式的時間是有限的,所以只要通過一種機制使得每次位置更新交互過程從概率上說很難重現(xiàn),就能有效地阻止攻擊者利用消息重放進行的網(wǎng)絡攻擊。
本發(fā)明在MSS發(fā)送位置更新消息與尋呼控制器交互時,將消息交互過程通過至少三次以上的握手過程完成,每次消息交互過程中交互的消息通過隨機數(shù)從概率上能保證和曾經(jīng)發(fā)送過的消息不重復,并且交互過程中的每個消息前后都具有連貫性。從而,對于攻擊者來說,如果它是作為消息發(fā)起方進行重放,它可以成功的重放第一個消息,但是不能重放第三個消息,因為第三個消息中將包含接收方在第二個消息中生成的隨機數(shù);如果它是作為初始消息接收方進行重放,那么它必須要等到發(fā)起方發(fā)起消息時生成的隨機數(shù)和它截獲的消息中的隨機數(shù)相匹配時后才能用該消息實施重放??梢钥闯觯@樣被重放攻擊的概率是很小的。
本發(fā)明在802.16e系統(tǒng)的空閑模式下,修改位置更新請求和響應消息,將位置更新過程由兩步握手改為三步握手過程,增加一個ACK消息表示對位置更新響應消息的確認,并在消息中加入隨機數(shù)以有效防止重放攻擊。下面參見圖2,對本發(fā)明的阻止重放攻擊的方法進行詳細說明。這種方法的前提是通信雙方在消息交互前已擁有一個共享密鑰,并通過某種機制保證了對消息的認證,如HMAC-Digest。
步驟201在位置更新請求消息(RNG-REQ)中加入一個由MSS產(chǎn)生的n(要求n足夠大,以保證1/2n足夠小)位隨機數(shù)A,并對整個消息體(包括隨機數(shù)A)進行HMAC-Digest的計算生成認證碼;一并通過RNG-REQ發(fā)送給尋呼控制器B。
步驟202尋呼控制器B收到RNG-REQ消息,讀取RNG-REQ中記錄的尋呼控制器ID(Paging Controller ID),并判斷與自身的尋呼控制器ID是否相同,若是,則表示MSS處于本尋呼組內(nèi),直接轉(zhuǎn)步驟205;否則,將請求消息轉(zhuǎn)發(fā)給RNG-REQ中記錄的尋呼控制器ID對應的原尋呼控制器A,執(zhí)行下一步。
步驟203原尋呼控制器A接收到RNG-REQ,用保存的該MSS的注冊信息中的密鑰和HMAC-Digest對RNG-REQ消息進行認證,認證通過后,生成位置更新成功的響應消息(RNG-RSP),并且也產(chǎn)生一個n位隨機數(shù)B,將MSS產(chǎn)生的隨機數(shù)A和它自己產(chǎn)生的隨機數(shù)B一起放到RNG-RSP中,并進行HMAC-Digest計算生成認證碼,然后一并通過RNG-RSP消息發(fā)送給尋呼控制器B。
步驟204尋呼控制器B將RNG-RSP消息轉(zhuǎn)發(fā)給MSS,轉(zhuǎn)步驟206。
步驟205尋呼控制器B接收到RNG-REQ,用保存的該MSS的注冊信息中的密鑰和HMAC-Digest對RNG-REQ消息進行認證,認證通過后,生成位置更新成功的響應消息(RNG-RSP),并且也產(chǎn)生一個n位隨機數(shù)B,將MSS產(chǎn)生的隨機數(shù)A和它自己產(chǎn)生的隨機數(shù)B一起放到RNG-RSP中,并進行HMAC-Digest計算生成認證碼,然后一并通過RNG-RSP消息發(fā)送給MSS。
步驟206MSS在收到含有隨機數(shù)A、隨機數(shù)B及認證碼響應消息后利用它持有的密鑰和HMAC-Digest對響應消息進行認證,認證通過后,并向B返回ACK消息。其中ACK消息中包含尋呼控制器產(chǎn)生的隨機數(shù)B和位置更新請求消息中的尋呼控制器ID,并對消息體進行HMAC-Digest計算。
由于認證碼的生成依據(jù)了隨機數(shù)A、B,因此若該步驟中,認證沒有通過,則可以認為是響應消息的隨機數(shù)A和MSS所生成的隨機數(shù)A不同,認為該消息是尋呼控制器側(cè)的重放消息,結(jié)束。
步驟207尋呼控制器B在收到位置更新ACK消息后,先判斷該MSS是否在本尋呼組內(nèi),如果是,則對消息進行認證,若認證成功,則不進行任何操作,結(jié)束,若認證失敗,認為這是個MSS側(cè)的重放消息(原理分析同步驟206),結(jié)束;若判斷該MSS不在本尋呼組內(nèi)則從ACK消息中得到原尋呼控制器ID,將ACK消息轉(zhuǎn)發(fā)給原尋呼控制器。
步驟208原尋呼控制器對ACK消息進行認證,如果認證成功,就通過骨干網(wǎng)將MSS的注冊信息發(fā)給尋呼控制器B,同時在原尋呼控制器上刪除MSS的所有注冊信息。如果認證失敗,則說明請求消息為重放消息(原理分析同步驟206)或消息傳輸出錯,位置更新過程終止。
在上述步驟中,若攻擊者作為MSS方發(fā)起重放攻擊,它可以在某次位置更新過程中截獲第一個消息(RNG-REQ)和第三個消息(ACK),并選擇合適的時機重放第一個消息,但是它沒有辦法重放第三個消息,因為第三個消息中包含了第二個消息中由尋呼控制器生成的隨機數(shù)B和HMAC-Digest,除非這時候?qū)ず艨刂破髟趯Φ谝粋€消息進行響應的時候生成了和上次一樣的隨機數(shù)B,所以尋呼控制器在收到第三個消息后能發(fā)現(xiàn)第一個消息是否為重放消息。
也就是說,若進行重放攻擊的話,需要截獲消息1(RNG-REQ)和消息3(ACK),因為若僅重放一個消息,則由于另一個消息不與攻擊者信息交互,而會導致攻擊失??;若截獲并重放了消息1(RNG-REQ)和消息3(ACK),則由于隨機數(shù)B的改變,必定導致含有原隨機數(shù)B的重放的消息3(ACK)為錯誤,從而使重放攻擊失敗。
上段是以攻擊者對尋呼控制器方攻擊來分析,同理,若攻擊者作為尋呼控制器方對MSS側(cè)發(fā)起重放攻擊,那么它必須等到MSS發(fā)起請求消息并生成和它截獲的消息中相同的隨機數(shù)A的時候才能有效的進行重放,如果n足夠大,出現(xiàn)這種情況的概率非常小。因此,如果能夠保證隨機數(shù)產(chǎn)生的隨機性,無論要實現(xiàn)MSS還是尋呼控制器側(cè)消息的重放,都只有1/2n的成功概率。這對于本來就不是很頻繁進行的位置更新消息交互過程來說,已經(jīng)能夠滿足安全要求。
以上是以三次握手為例進行說明。不難理解,也可以進行更多次的信息交互,即多次握手機制,但會使完成一次位置更新過程更為費時。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種防止重放攻擊的方法,用于終端在空閑模式下發(fā)起位置更新的過程,第一尋呼控制器保存有終端的注冊信息,其特征在于,該方法包括以下步驟A、終端發(fā)送位置更新請求消息,該消息至少包括終端生成的第一認證信息;B、第一尋呼控制器接收位置更新請求消息,生成第二認證信息,將第一認證信息和第二認證信息置于位置更新響應消息中發(fā)送給終端;C、終端接收所述位置更新響應消息,判斷位置更新響應消息中的第一認證信息是否與自己所生成的第一認證信息相同,若相同,則向第一尋呼控制器返回包含有第二認證信息的響應消息;否則,結(jié)束;D、第一尋呼控制器判斷所述響應消息中的第二認證信息是否與自己所生成的第二認證信息相同,若相同,則響應位置更新操作;否則,結(jié)束。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述終端處于第一尋呼控制器區(qū)域內(nèi),步驟D所述響應位置更新操作為接受所述響應消息。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,進一步包括第二尋呼控制器,終端處于第二尋呼控制器區(qū)域內(nèi);終端和第一尋呼控制器之間的消息通過所述第二尋呼控制器進行中轉(zhuǎn);步驟D所述響應位置更新操作為第一尋呼控制器將保存的終端的注冊信息發(fā)送給第二尋呼控制器。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述的生成的認證信息為生成的隨機數(shù)、或?qū)Π猩傻碾S機數(shù)的消息使用某算法所生成的認證碼。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述的某算法為HMAC-Digest算法。
全文摘要
本發(fā)明提供了一種防止重放攻擊的方法,終端進入空閑模式下,第一尋呼控制器保存有終端的注冊信息,包括A)終端發(fā)送包括第一認證信息的位置更新請求消息;B)第一尋呼控制器接收位置更新請求消息,發(fā)送給終端包含第一認證信息和第二認證信息的位置更新響應消息;C)終端接收位置更新響應消息,判斷位置更新響應消息中的第一認證信息是否與自己所生成的第一認證信息相同,若相同,則向第一尋呼控制器返回包含有第二認證信息的響應消息;否則,結(jié)束;D)第一尋呼控制器判斷所述響應消息中的第二認證信息是否與自己所生成的第二認證信息相同,若相同,則響應位置更新操作;否則,結(jié)束。使用本發(fā)明,可以抵御重放攻擊。
文檔編號H04W48/08GK1780469SQ20041009134
公開日2006年5月31日 申請日期2004年11月19日 優(yōu)先權(quán)日2004年11月19日
發(fā)明者肖正飛, 李永茂 申請人:華為技術有限公司