<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 設計應用 > 基于空中接口的LTE解密方法研究

          基于空中接口的LTE解密方法研究

          作者:王嘉嘉,楊傳偉,吳 磊時間:2019-11-29來源:電子產品世界收藏

            王嘉嘉,楊傳偉,吳?磊,宋加齊(中國電子科技集團公司第四十一研究所,安徽?蚌埠?233000;中電科儀器儀表(安徽)有限公司,安徽?蚌埠?233010;電子信息測試技術安徽省重點實驗室,安徽?蚌埠?233010)

          本文引用地址:http://www.ex-cimer.com/article/201911/407666.htm

            摘?要:針對3GPP 標準,研究了系統安全體系架構。首先介紹了系統中的密鑰層次架構,針對過程分別進行了詳細介紹,然后基于LTE空中接口對解密和驗證方法進行了設計和詳細分析,最后對方法和適用場景作出總結。

            關鍵詞:LTE;;

            *文章由安徽省重點研究和開發計劃項目(1804a09020042),國家科技重大專(2017ZX03001021) 資助

            [作者簡介] 王嘉嘉(1984—),男,高級工程師,主要從事移動通信測試技術研究。E-mail:251799120@qq.com

            0 引言

            隨著LTE移動通信技術的飛速發展和普及,移動通信越來越深入到人們的日常生活,因此,移動通信安全也越來越受到人們的關注?;贚TE空中接口對無線信號的監測,也成為安全部門、設備廠商、高校等機構的研究方向。本文對基于LTE空中接口的解密和完整性保護驗證方法進行設計,為相關研究提供了方法和思路。

            1 LTE系統密鑰層次

            LTE系統采用兩層安全保護機制:第1層為E-UTRAN中的無線資源控制(RRC)層安全和用戶層安全,即接入層(AS)安全;第2層為演進型分組核心網(EPC)中的安全,即非接入層(NAS)安全 [1] ,具體體現為LTE系統密鑰層次架構 [2] ,如圖1所示。

          微信截圖_20191203102658.jpg

            圖1中,K是所有密鑰生成算法的基礎,即根密鑰;CK和IK是在鑒權過程中生成的密鑰對,即密鑰和完整性保護密鑰;K ASME 是根據CK和IK生成的中間密鑰,用于推演下層密鑰;K NASenc 是用于NAS層加密的密鑰;K NASint 是用于NAS層完整性保護的密鑰;K eNB 是根據K ASME 生成的中間密鑰,用于推演下層密鑰;K UPenc是用于AS層用戶面數據加密的密鑰;K RRCint 是用于AS層RRC信令完整性保護的密鑰;K RRCenc 是用于AS層RRC信令加密的密鑰 [3] 。

            2 加密和完整性保護原理

            2.1 加密過程

            加密過程 [2] ,如圖2所示。發送端利用加密密鑰KEY、計數器COUNT、承載標識BEARER ID、上下行方向DIRECTION和密鑰流長度LENGTH作為加密算法輸入參數,根據選擇的加密算法計算出密鑰流,與明文進行異或生成密文,發送給接收端 [1] 。

          1575340179979316.jpg

            接收端利用與發送端相同的加密密鑰、計數器、承載標識、上下行方向、密鑰流長度和加密算法,計算出密鑰流,與接收到的密文進行異或生成明文 [1] 。

            2.2 完整性保護過程

            完整性保護過程 [2] ,如圖3所示。發送端利用完整性密鑰KEY、計數器COUNT、承載標識BEARER ID、上下行方向DIRECTION和消息本身作為完整性保護算法輸入參數,根據完整性保護算法計算出完整性校驗碼MAC-I,發送端將消息本身和MAC-I一起發送給接收端 [1] 。

          1575340215458831.jpg

            接收端利用與發送端相同的完整性保護密鑰、計數器、承載標識、上下行方向、完整性保護算法和接收到的消息本身,計算出完整性校驗碼XMAC-I,與接收到消息中的MAC-I進行比較,若一致,則認為接收到的消息是原始發送的消息 [1] 。

            3 解密和完整性保護驗證設計

            3.1 解密方法設計

            本文基于LTE空中接口,解密方法設計如下:

            步驟1通過RRC連接建立消息 [4] ,獲取其中攜帶的參數rb-Identity,參數AS BEARERID=rb-Identity-1。

            步驟2通過鑒權請求消息 [5] ,獲取其中攜帶的參數RAND,鑒權請求消息如圖4所示。

          1575340242994520.jpg

            步驟3利用根密鑰K和RAND,計算出CK和IK;利用CK和IK,計算出K ASME ;利用K ASME ,計算出K NASenc 和K eNB ;利用K eNB ,計算出K UPenc 和K RRCenc ;當對NAS消息解密時,參數NAS KEY=K NASenc ;當對AS RRC消息解密時,參數AS KEY=K RRCenc ;當對AS用戶數據解密時,參數AS KEY=K UPenc ;其中,密鑰推演算法為KDF [2] 算法。

            步驟4通過NAS安全模式命令消息 [5] ,獲取其中攜帶的參數NAS加密算法,其值包括128-EEA1、128-EEA2和128-EEA3,NAS安全模式命令消息如圖5所示。

          1575340265460971.jpg

            步驟5通過之后的NAS消息,獲取其中攜帶的參數NAS SN,參數NAS COUNT=0x00 || NAS OVERFLOW|| NAS SN,其中||表示比特級聯,NAS OVERFLOW為NAS SN的溢出計數器 [2] [5] ,對于上下行,NAS COUNT分別維護。

            步驟6經過以上步驟,已經確定NAS KEY、NASCOUNT和NAS加密算法,另外,NAS BEARER ID=0,NAS DIRECTION上行時為 0 , 下 行 時 為 1 , N A SLENGTH=128,這樣便能夠計算出密鑰流,與密文異或,實現對NAS消息的解密。

            步驟7通過RRC安全模式命令消息 [4] ,獲取其中攜帶的參數AS加密算法,其值包括EEA1、EEA2和EEA3,RRC安全模式命令消息如圖6所示。

            步驟8通過之后的PDCP PDU,獲取其中攜帶的參數PDCP SN,參數AS COUNT=HFN || PDCP SN,其中HFN為超幀號 [6] ,對于上下行,AS COUNT分別維護。

            步驟9:經過以上步驟,已經確定AS BEARER ID、AS KEY、AS COUNT和AS加密算法,另外,AS DIRECTION上行時為0,下行時為1,ASLENGTH=128,這樣便能夠計算出密鑰流,與密文異或,實現對AS數據的解密。

            步驟10之后的NAS消息解密,步驟同上;

            步驟11之后的AS信令數據和用戶數據解密,需要先通過RRC連接重配消息 [4] 獲取其中攜帶的rb-Identity,用rb-Identity-1更新參數AS BEARER ID,其余步驟同上。

            3.2 完整性保護驗證方法設計

            本文基于LTE空中接口,完整性保護驗證方法設計如下:

            步驟1~2同解密方法。

            步驟3利用根密鑰K和RAND,計算出CK和IK;利用CK和IK,計算出K ASME ;利用K ASME ,計算出K NASint 和K eNB ;利用K eNB ,計算出K RRCint ;當對NAS消息完整性保護驗證時,參數NAS KEY=K NASint ;當對AS RRC消息完整性保護驗證時,參數AS KEY=K RRCint ;其中,密鑰推演算法為KDF算法。

          1575340286902475.jpg

            步驟4通過NAS安全模式命令消息,獲取其中攜帶的參數NAS完整性保護算法,其值包括128-EIA1、128-EIA2和128-EIA3。

            步驟5同解密方法。

            步驟6經過以上步驟,已經確定NAS KEY、NASCOUNT和NAS完整性保護算法,另外,NAS BEARERID=0,NAS DIRECTION上行時為0,下行時為1,再加上需要完整性保護驗證的消息本身,這樣便能計算出MAC-I,與消息本身所攜帶的MAC進行對比,如果一致,則完整性保護驗證通過,否則,說明消息被篡改。

            步驟7通過RRC安全模式命令消息,獲取其中攜帶的參數AS完整性保護算法,其值包括EIA1、EIA2和EIA3。

            步驟8同解密方法。

            步驟9經過以上步驟,已經確定AS BEARER ID、AS KEY、AS COUNT和AS完整性保護算法,另外,ASDIRECTION上行時為0,下行時為1,再加上需要完整性保護驗證的消息本身,這樣便能計算出MAC-I,與消息本身所攜帶的MAC進行對比,如果一致,則完整性保護驗證通過,否則,說明消息被篡改。

            步驟10之后的NAS消息完整性保護驗證,步驟同上;

            步驟11之后的AS信令數據完整性保護驗證,需先通過RRC連接重配消息獲取其中攜帶的rb-Identity,用rb-Identity-1更新參數AS BEARER ID,其余步驟同上。

            5 結論

            本文首先介紹了LTE系統中的密鑰層次,各種密鑰的作用,詳細介紹了加密和完整性保護原理,然后給出了基于LTE空中接口實現解密和完整性保護驗證的設計方法,本文方法能用于LTE空中接口監測類設備的研發,并且能為基于空中接口的各種無線監測類設備的研發提供思路。

            參考文獻

            [1] 王映民,孫韶輝.TD-LTE技術原理與系統設計[M].北京:人民郵電出版社,2010.

            [2] 3GPP TS 33.401 V14.6.0 3rd Generation PartnershipProject; Technical Specification Group Services and SystemAspects; 3GPP System Architecture Evolution (SAE); Securityarchitecture[S]. (2018-09).

            [3] 王嘉嘉,楊傳偉.LTE鑒權機制及實現[J].電子產品世界,2015.22(11):27-28.

            [4] 3GPP TS 36.331 V14.10.0 3rd Generation PartnershipProject; Technical Specification Group Radio Access Network;Evolved Universal Terrestrial Radio Access (E-UTRA); RadioResource Control (RRC) Protocol specification[S]. (2019-03).

            [5] 3GPP TS 24.301 V14.10.0 3rd Generation PartnershipProject; Technical Specification Group Core Network andTerminals; Non-Access-Stratum (NAS) protocol for EvolvedPacket System (EPS); Stage 3[S].(2018-12).

            [6] 3GPP TS 36.323 V14.5.0 3rd Generation Partnership Project;Technical Specification Group Radio AccessNetwork; Evolved Universal Terrestrial RadioAccess (E-UTRA); Packet Data ConvergenceProtocol (PDCP) specification [S].(2017-12).

            本文來源于科技期刊《電子產品世界》2019年第12期第33頁,歡迎您寫論文時引用,并注明出處。



          評論


          相關推薦

          技術專區

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();