首页> 中国专利> LTE核心网实时信令监测的非接入层解密方法

LTE核心网实时信令监测的非接入层解密方法

摘要

一种LTE核心网实时信令监测的非接入层解密方法,包括从S6a口提取与NAS解密相关的参数并保存,包括认证令牌AUTN、随机访问参数RAND、期望结果参数XRES和根密钥Kasme;通过S1-MME口S1AP层消息管理用户上下文;通过S1-MME口NAS层消息提取与NAS解密相关的参数,根据步骤一所得根密钥Kasme计算出解密密钥Knasenc;提取加密消息的密文部分,结合解密相关的参数进行解密。本发明通过关联S6a口与S1-MME口同一用户的信息,获取一套完整的解密参数用于解密,安全高效。

著录项

  • 公开/公告号CN104038934A

    专利类型发明专利

  • 公开/公告日2014-09-10

    原文格式PDF

  • 申请/专利权人 武汉虹信技术服务有限责任公司;

    申请/专利号CN201410307424.2

  • 申请日2014-06-30

  • 分类号H04W12/02;H04W24/02;

  • 代理机构武汉科皓知识产权代理事务所(特殊普通合伙);

  • 代理人严彦

  • 地址 430073 湖北省武汉市武汉东湖新技术开发区东信路5号烽火光通讯产业大楼4楼

  • 入库时间 2023-12-17 02:09:03

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-08-08

    授权

    授权

  • 2014-10-15

    实质审查的生效 IPC(主分类):H04W12/02 申请日:20140630

    实质审查的生效

  • 2014-09-10

    公开

    公开

说明书

技术领域

本发明属于通信网络协议监测分析领域,特别涉及LTE非接入层密文解密方法。

背景技术

3GPP长期演进技术(LTE)作为目前最热门的移动通信技术,相比第三代移动通信(3G) 技术,LTE具有更高数据速率和更安全的通信方式,同时LTE的网络结构也发生了很大变化。

LTE的无线接入部分仅由多个演进后的增强节点eNodeB(Enhanced Node B)组成,核 心网部分主要由移动管理实体(Mobility Management Entity,MME)、服务网关(Serving  Gateway,S-GW)、分组数据网络网关(Packet Date Network Gateway/PDN Gateway,P-GW)、 归属签约用户服务器(Home Subscriber Server,HSS)及策略和计费控制单元(Policy and  Charging Rules Function,PCRF)等组成。本发明中实时信令监测分析系统的信令采集点正是 基于LTE核心网架构的部分节点进行部署,主要通过对S1-MME(eNodeB和MME之间的)、 S6a(HSS和MME之间的)、S10、S11等接口进行原始信令数据采集,然后进行信令解析和 多接口关联生成呼叫详细记录(Call Detail Record,CDR)。

LTE系统为了提高安全性,设计了双层安全保护机制,一层是无线接入层安全,另一层 是非接入层(Non-Access-Stratum,NAS)信令安全。NAS信令安全包含对数据的完整性保护 和加密过程,完整性保护是校验传递的数据是否完整无缺失,加密保护是将数据通过一定算 法转换成密文后传输,故接收到数据后需要先进行完整性校验再解密后,才能进一步得到正 确的解码结果。本发明的主要目的即:从监测的多个网络接口中提取解密需要的相关信息, 完成对S1-MME接口的NAS消息解密。

要完成NAS消息的解密,难点是怎样获取完整的解密参数,具体需要从S6a接口获取解 密的根密钥Kasme,从S1-MME接口获取其它参数,需要解决以下几个问题:怎样将S6a口 与S1-MME口同一用户的信息关联,用户的解密参数由哪些构成,怎样计算并动态维护用户 的解密参数,因为该结构中的参数要从不同消息中取得,且这些参数是变化的。

发明内容

为了解决上述问题,本发明提出了一种LTE核心网实时信令监测分析系统的非接入层解 密方法。

本发明技术方案为一种LTE核心网实时信令监测的非接入层解密方法,包括以下步骤,

步骤一,从S6a口提取与NAS解密相关的参数并保存,包括认证令牌AUTN、随机访问 参数RAND、期望结果参数XRES和根密钥Kasme;

步骤二,通过S1-MME口S1AP层消息管理用户上下文;

步骤三,通过S1-MME口NAS层消息提取与NAS解密相关的参数,根据步骤一所得根 密钥Kasme计算出解密密钥Knasenc;

步骤四,提取加密消息的密文部分,结合解密相关的参数进行解密。

而且,步骤一实现如下,

捕获S6a口的鉴权信息消息对Authentication Information Request/Answer,解析出多组鉴 权向量,每组鉴权向量包括认证令牌AUTN、随机访问参数RAND、期望结果参数XRES和 根密钥Kasme;

根据所得鉴权向量更新内存数据库,所述内存数据库用于存储AUTN、RAND、XRES 与Kasme的对应关系,以每组鉴权向量中的AUTN、RAND和XRES组合作为键,该组鉴权 向量中的Kasme作为值。

而且,第二步中关于通过S1-MME口的S1AP层信令管理用户上下文实现如下,

S1-MME口利用MME-UE-S1AP-ID和MME的IP地址为键值建立哈希表1,利用S-TMSI 为键值建立哈希表2,利用IMSI为键值建立哈希表3,三个哈希表中均存储用户上下文指针; 动态维护分别以MME-UE-S1AP-ID和S-TMSI为键的哈希表1和哈希表2的键值,用新的键 值替换旧的键值;用户上下文中存储S-TMSI和IMSI,没有时默认填全1,使三个哈希表建 立关联;

其中,MME-UE-S1AP-ID为MME侧对UE的标识,MME为移动管理实体,S-TMSI为 临时移动用户识别码,IMSI为国际移动用户识别码。

而且,步骤三提取所得与NAS解密相关的参数存入解密参数数据结构,所述解密参数数 据结构中包括解密参数KSI、Kasme、context_sate、cipher_algorithm_type、Knasenc、 uplink_nas_sqn、uplink_nas_over_flow、downlink_nas_sqn和downlink_nas_over_flow,

KSI为密钥组标识,用于标识根密钥Kasme;

context_sate为UE安全上下文的状态,分别用0表示NOT CURRENT,用1标识 CURRENT;

cipher_algorithm_type为加密和解密所用算法的ID;

uplink_nas_sqn、uplink_nas_over_flow、downlink_nas_sqn、downlink_nas_over_flow分 别是上下行消息的序列号和溢出值,用于计算上下行COUNT,所述COUNT为消息序列号。

而且,步骤三通过S1-MME口NAS层消息提取与NAS解密相关的参数过程中,包括对 附着请求消息Attach Request或跟踪区更新请求Tau Request的处理,对鉴权消息对 Authentication Request/Response的处理,对安全模式消息对Security mode Command/Complete 的处理,对于S1-MME口的其它消息的处理。

而且,对附着请求消息Attach Request或跟踪区更新请求Tau Request的处理,包括以下 步骤,

步骤A01,捕获S1-MME口的附着请求消息Attach Request或跟踪区更新请求Tau  Request,提取关键的字段KSI存于用户上下文;

步骤A02,确认相应用户上下文中是否存在解密参数数据结构,是则进入步骤A03,否 则直接返回,结束过程;

步骤A03,判断步骤A01中提取的KSI值是否为无效值,是则清空相应用户的解密参数 数据结构,结束过程,否则进入步骤A04;

步骤A04,将步骤A01中提取的KSI值与解密参数数据结构中的KSI比较,相等则相应 用户的解密参数能够用来解密,结束过程,不相等则直接返回删除相应用户的解密参数数据 结构,结束过程。

而且,对鉴权消息对Authentication Request/Response的处理,包括以下步骤,

步骤B01,捕获S1-MME口的鉴权请求消息Authentication Request,提取字段AUTN、 RAND和KSI,保存于用户上下文中;

步骤B02,捕获S1-MME口的鉴权响应消息Authentication Response,提取字段RES,保 存于用户上下文中;

步骤B03,以用户上下文中的AUTN、RAND和RES作为键值,在内存数据库中查找对 应的根密钥Kasme,找到则进入步骤B04,未找到则返回,结束过程;

步骤B04,判断相应用户的解密参数数据结构是否存在,不存在则创建解密参数数据结 构,并将各成员初始化为0,否则直接将解密参数数据结构成员初始化为0;

步骤B05,将步骤B03中查找到的Kasme更新到相应用户的解密参数数据结构,同时将 步骤B01存于用户上下文中的KSI更新到解密参数数据结构;

步骤B06,结束过程。

而且,对安全模式消息对Security mode Command/Complete的处理,包括以下步骤,

步骤C01,捕获S1-MME口的安全模式命令消息Security mode Command,提取字段KSI、 Type of ciphering algorithm、Sequence number,得到关键字段,Type of ciphering algorithm为 加密算法类型、Sequence number为序号;捕获S1-MME口的安全模式完成消息Security mode  Complete,提取关键字段Sequence number;

步骤C02,确认相应用户的解密参数数据结构存在,且解密参数中的KSI与步骤C01中 提取的KSI值相等,若均满足则进入步骤C03,否则直接返回,结束过程;

步骤C03,将步骤C01提取的字段更新到解密参数数据结构中,包括将Sequence number 赋给对应的uplink_nas_seq或downlink_nas_seq,然后将解密参数中的context_sate置为1, 将uplink_nas_over_flow和downlink_nas_over_flow置为0;

步骤C04,利用解密参数中的Kasme与Type of ciphering algorithm经过标准算法 HMAC-SHA-256推导得到解密密钥Knasenc,并存入解密参数数据结构中;

步骤C05,结束过程。

而且,对于S1-MME口的其它消息的处理,包括以下步骤,

步骤D01,捕获S1-MME口的其它消息,提取字段Security header type、Sequence number, Security header type为安全头类型;

步骤D02,确认相应用户的解密参数数据结构存在,存在则进入步骤D03,否则直接返 回,结束过程;

步骤D03,当Security header type为2时,表示相应消息是加密消息,将步骤D01提取 的字段Sequence number更新到解密参数数据结构,当Sequence number为255即最大值时, 将对应的uplink_nas_over_flow或downlink_nas_over_flow溢出计数值加1,然后进入步骤 D04;当Security header type为其它值时,是非加密消息,直接返回,结束过程;

步骤D04,结束过程。

而且,步骤四实现如下,

确认相应用户上下文中的解密参数数据结构存在,且解密参数中context_sate为1;

计算COUNT值,包括从解密参数中提取downlink_nas_over_flow和downlink_nas_sqn, 得到消息方向对应的计数器NAS_OVERFLOW,根据下式计算出COUNT值,

COUNT=0x00|NAS_OVERFLOW<<8|NAS_SQN

其中,NAS_SQN是8bit的序列号,最大值为255,NAS_SQN是8bit的序列号,最大值为255, NAS_OVERFLOW是16bit的计数器,每当NAS_SQN达到最大值,则NAS_OVERFLOW加 1;

提取出加密消息中的密文部分的数据及长度,从解密参数中取得加密算法的类型和解密 密钥Knasenc后进行解密。

本发明从不同消息中获取解密相关参数,并保证当前用户的解密参数与待解密消息是对 应的。对于未加密消息,可直接解析;对于加密消息,不能直接解析,则首先获取密文部分, 然后取出对应的解密参数进行解密,最后调用解析函数解析该消息。包括通过捕获S6a接口 和S1-MME接口的信令数据分别建立用户上下文,特别关注这两个接口上与鉴权和安全保护 过程相关的信令,从中提取与非接入层解密相关的参数。S6a接口负责提取解密参数中的根 密钥,并建立内存数据库,存储鉴权向量与根密钥的关系,S1-MME口负责提取并推导其它 解密相关参数,通过关联S6a口与S1-MME口同一用户的信息,获取一套完整的解密参数用 于解密,安全高效。

附图说明

图1为现有技术中的LTE安全过程图。

图2为本发明实施例的NAS加/解密示意图。

图3为本发明实施例的NAS消息解密处理整体流程图。

图4为本发明实施例的对Attach request、TAU request消息的处理流程图。

图5为本发明实施例的对鉴权过程消息的处理流程图。

图6为本发明实施例的对安全保护过程消息的处理流程图。

具体实施方式

本发明基于软件技术应用在LTE核心网实时信令监测系统中。以下根据附图和实施例对 本发明具体实现进行说明。

本发明实施例的基本原理为:关注S6a口的鉴权过程,建立鉴权向量(AV)与根密钥 Kasme之间的关系;捕获S1-MME口信令数据,通过该接口的S1AP层信令管理用户上下文, 特别关注S1-MME口的鉴权和安全保护过程,通过该接口NAS层信令提取该过程中相关参 数存入该用户上下文中的解密参数数据结构,即一个用户对应一份解密参数;关联S6a口与 S1-MME口的用户信息,以便S1-MME口的用户能找到其对应的根密钥Kasme,将根密钥 Kasme填入解密参数数据结构;根密钥Kasme与解密参数数据结构中的加密算法EEA经过 标准算法HMAC-SHA-256推导得到解密密钥Knasenc,该解密密钥与对应的用户的解密参数 一起对NAS密文进行解密。

因为解密的前提首先要解决S6a口与S1-MME口用户信息关联的问题,本发明进行具体 说明如下:

现有技术中LTE系统涉及S6a口和S1-MME口的安全过程如图1所示。用户终端设备 UE向MME发起消息101,即附着请求(Attach request)或跟踪区更新请求(TAU request); MME收到请求后向HSS发起消息102,即鉴权信息请求(Authentication information request); 消息103即回送鉴权信息回复(Authentication information answer),HSS在消息103中通过 一个或多个鉴权向量(AV)来响应,每个鉴权向量由随机访问参数(RAND)、认证令牌 (AUTN)、期望结果参数(XRES)和根密钥(Kasme)组成;MME发送消息104给UE, 消息104即带有RAND和AUTN参数的鉴权请求(Authentication request);UE将验证收到 的AUTN,核实通过后生成期望结果参数(RES),并通过消息105将RES带给MME,消息 105即鉴权响应(Authentication response);MME通过比较HSS产生的XRES与UE产生的 RES,如果相同则鉴权成功,MME将发起消息106启动NAS完整性保护过程,消息106即 安全模式命令(Secutity mode command);UE检验完整性是否合法,通过发送消息107启动 机密性保护过程,其后的NAS消息将被加密,同时该消息可能也被加密,消息107即安全模 式完成(Security mode complete)。

通常资料中提到的关联方法都是通过IMSI(国际移动用户识别码)关联,S6a口通过捕 获Authentication Information Request消息可获得IMSI,然而S1-MME口很难获得IMSI。只 有当用户终端(UE)第一次附着或LTE网络不能通过临时身份标识(GUTI)识别用户而发 起Identity认证过程时会携带IMSI,其它情况下一般只携带GUTI,而这些过程出现的几率较 小,因而S1-MME口很难建立IMSI与用户信息的关系,进而难以通过IMSI将S6a口与 S1-MME口关联。下面提出本发明中的关联方法:

鉴权向量由随机访问参数(RAND)、认证令牌(AUTN)、期望结果参数(XRES)和根 密钥(Kasme)组成。在S6a口Authentication Information Answer消息会携带多组鉴权向量, 而MME会选择其中一组未使用过的鉴权向量中的AUTN和RAND发给UE进行网络认证。 UE根据自己存储的参数和收到的鉴权向量参数,计算出RES。通过比对XRES与RES是否 相等完成网络对UE的认证,相等则认证成功,表明该组鉴权向量对应的根密钥Kasme可用 于解密;否则认证失败,UE退出连接。认证成功后,本发明即通过该组鉴权向量中的AUTN、 RAND和XRES将S6a口与S1-MME口的用户信息关联。

实施例中,NAS解密需要的参数有EEA、KEY、COUNT、BEARER、DIRECTION、 LENGTH,可参考图2中的NAS加/解密过程图,该图中以加密算法EEA为例,在发送端对 NAS信令消息进行加密,在接收端进行解密。接收端通过获取的密钥(KEY)、算法(EEA) 等解密参数生成一组密钥流(KEYSTREAM BLOCK),该密钥流与接收到的密文 (CIPHERTEXT BLOCK)做异或运算后得到明文消息(PLAINTEXT BLOCK)。下面对图2 中各参数进行说明:

1.EEA是选择的加密算法的类型;

2.KEY即根密钥Kasme通过计算推导出的解密密钥Knasenc,长度是128bit,而Kasme 是256bit,将其运算的结果进行截取得低128bit;

3.COUNT是消息序列号,其本身为24bit的字符串,在加密算法采用EEA系列算法时, 在高位补8bit零构成32bit消息序列。

COUNT=0x00|NAS_OVERFLOW<<8|NAS_SQN     (1)

其中NAS_SQN是8bit的序列号,最大值为255,NAS_OVERFLOW是16bit的计数 器,每当NAS_SQN达到最大值,则NAS_OVERFLOW加1。

COUNT只在新的EPS(Evolved Packet System演进的分组系统)安全上下文建立时 才清0,且要分别按上下行消息方向来计算对应COUNT值;

4.BEARER是5bit的承载ID,对于NAS消息,默认为0;

5.DIRECTION表示此待解密NAS消息的传输方向,1bit,0表示上行消息,1表示下 行消息,规定UE到MME方向为上行;LENGTH是待解密NAS消息的长度,单位 为bit。

参见图3,是本实施例提供的NAS消息解密处理具体流程,为便于实施参考起见,下面 将以接口为单位,按照该流程图的步骤详细介绍本发明的NAS解密方法。

步骤一,从S6a口提取与NAS解密相关的参数并保存,包括AUTN、RAND、XRES、 Kasme。为建立鉴权向量(AV)与根密钥Kasme之间的关系,主要是从S6a口消息中提取与 NAS解密相关的参数。

该接口上与NAS解密相关的消息有Authentication Information Request和Authentication  Information Answer,具体操作如下:

第一步,捕获S6a口的鉴权信息消息对Authentication Information Request/Answer,解析 出鉴权向量AUTN、RAND、XRES、Kasme。

第二步,保存第一步的解析结果,可以采用数据库实现。本领域技术人员可以自行采用 现有技术选择建立内存数据库,建议采用Redis内存数据库。由于鉴权数据量小,且为了读 写数据更快速,本实施例预先建立Redis内存数据库,存储AUTN、RAND、XRES与Kasme 的对应关系。消息Authentication Information Answer含多组鉴权向量,以每组鉴权向量中的 AUTN、RAND和XRES组合作为键,该组鉴权向量中的Kasme作为值。这样,本发明实施 例和现有技术不同,用AUTN和RAND、XRES一起作为关联字段,实现将S6a口与S1-MME 口关联。

第一步解析出鉴权向量后,即可更新Redis内存数据库。清空该数据库,即清除上次鉴 权过程保存的鉴权向量,将此过程中提取的鉴权向量存入数据库。

第三步,结束该过程。

步骤二,通过S1-MME口S1AP层消息管理用户上下文。

分析S1-MME口的数据包,根据本发明前面的分析,该接口携带IMSI的消息较少,难 以建立IMSI与用户信息的关联,而大部分与用户相关的消息(UE-associated signalling)会携 带MME侧对UE的标识MME-UE-S1AP-ID,只有寻呼消息(PAGING)和初始UE消息 (INITIAL UE MESSAGE)不带MME-UE-S1AP-ID,但会携带S-TMSI或IMSI。S-TMSI即 临时移动用户识别码,是IMSI的临时“代表”。因此S1-MME口可利用MME-UE-S1AP-ID和 MME的IP地址为键值建立哈希表1,利用S-TMSI为键值建立哈希表2,利用IMSI为键值 建立哈希表3,三个哈希表中均存储用户上下文指针。

S-TMSI是一个临时标识,网络上会经常改变该值;MME-UE-S1AP-ID在一次S1连接 中是不变的,但S1连接释放后重新连接时,该值会改变。因此本实施例动态维护分别以 MME-UE-S1AP-ID和S-TMSI为键的哈希表1和哈希表2的键值,用新的键值替换旧的键值。

用户上下文中必须存储S-TMSI和IMSI,没有时默认填全1,以使三个哈希表能够建立 关联。下面以S-TMSI为键值的哈希表2的更新为例进行说明:

当消息中即携带MME-UE-S1AP-ID又携带S-TMSI时,先通过MME-UE-S1AP-ID和 MME IP地址为键值查找哈希表1,未找到该键值则新建一个哈希节点;找到该键值则提取对 应的用户上下文中的S-TMSI(暂定为旧S-TMSI)与当前消息携带的S-TMSI(暂定为新 S-TMSI)比较,若不相等则将旧S-TMSI哈希节点中对应的用户上下文信息拷贝到新S-TMSI 哈希节点,然后用新S-TMSI哈希节点替换旧S-TMSI在哈希表2中的节点;相等则不用更新 哈希表2的键值。

步骤三,通过S1-MME口NAS层消息提取与NAS解密相关的参数,根据步骤一所得 Kasme,计算出解密密钥Knasenc。实施例的步骤一已将Kasme保持在Redis内存数据库中, 本步骤从Redis内存数据库中获取Kasme即可。

该接口上与NAS解密相关的消息主要有Authentication Request、Authentication Response, Security mode command、Security mode complete等。

具体实施时,本领域技术人员可以自行设定保存相关参数的数据结构。实施例中,解密 参数数据结构nas_uncipher_parameter用C语言定义如下:

其中,KSI是3bit的密钥组标识,用于标识根密钥Kasme,通过比较加密消息中携带的 KSI与对应解密参数数据结构中的KSI,来判断当前解密参数中的根密钥Kasme是否可用来 解密该条消息;context_sate是UE安全上下文的状态,有两种状态,分别用0表示NOT CURRENT(非当前),用1标识CURRENT(当前);cipher_algorithm_type是加密算法ID, 解密也是该算法;Knasenc是最终通过计算得到的解密密钥,uplink_nas_sqn、 uplink_nas_over_flow、downlink_nas_sqn、downlink_nas_over_flow分别是上下行消息的序列 号和溢出值,用于计算上下行COUNT。

为了建立和维护上述解密参数数据结构,在步骤三中S1-MME口需要特别关注附着和跟 踪区更新过程中的鉴权和安全保护过程。下面将针对相关消息的处理进行详细说明:

1)对消息Attach Request或Tau Request的处理,具体参见图4:

第一步,捕获S1-MME口的Attach Request消息或Tau Request消息,提取字段KSI, 提取的关键字段KSI存于用户上下文;

第二步,确认该用户的解密参数数据结构存在,即该用户上下文中是否存在解密参 数数据结构,是则进入第三步,否则直接返回,结束过程;

第三步,判断第一步中提取的KSI值是否为“111”,“111”表示该KSI标识的Kasme 为无效值,无法用于解密;如果该KSI为“111”,则清空该用户的解密参数数据结构, 结束过程,否则进入第四步;

第四步,将第一步中提取的KSI值与解密参数数据结构中的KSI(即前面提取的KSI 值)比较,相等则说明该用户的解密参数可用来解密,结束过程,不相等则直接返 回删除该用户的解密参数数据结构,结束过程。在第一次提取解密参数的过程中, attach request或tau request消息是最开始的消息,但是当第一次提取解密参数的过程 结束后,该用户就有了完整的解密参数数据结构,然后如果再次收到attach request 或tau request,通过提取该消息的KSI,如果KSI为有效值,则后面的加密消息的解 密可以直接用目前已有的解密参数来解密。

2)对Authentication Request/Response消息对的处理,具体参见图5:

第一步,捕获S1-MME口的Authentication Request消息,提取字段AUTN、RAND 和KSI,保存于用户上下文中;

第二步,捕获S1-MME口的Authentication Response消息,提取字段RES,保存于用 户上下文中;

第三步,以用户上下文中的AUTN、RAND和RES作为键值,在Redis内存数据库 中查找对应的根密钥Kasme,找到则进入第四步,未找到则返回,结束过程;

第四步,判断该用户的解密参数数据结构是否存在,不存在则创建解密参数数据结构, 并将各成员初始化为0,否则直接将解密参数数据结构成员初始化为0;

第五步,将第三步中查找到的Kasme更新到该用户的解密参数数据结构,同时将第 一步存于用户上下文中的KSI更新到解密参数数据结构;

第六步,结束过程;

3)对Security mode Command/Complete消息对的处理,具体参见图6:

第一步,捕获S1-MME口的Security mode Command消息,提取字段KSI、Type of  ciphering algorithm(加密算法类型)、Sequence number(序号),得到关键字段;捕 获S1-MME口的Security mode Complete消息,提取关键字段Sequence number;

第二步,确认该用户的解密参数数据结构存在,且解密参数中的KSI与第一步中提 取的KSI值相等,若均满足则进入第三步,否则直接返回,结束过程;

第三步,将第一步提取的字段更新到解密参数数据结构中,注意将Sequence number 赋给对应的uplink_nas_seq或downlink_nas_seq,然后将解密参数中的context_sate 置为1,将uplink_nas_over_flow和downlink_nas_over_flow(即消息方向对应的 NAS_OVERFLOW)置为0;

第四步,利用解密参数中的Kasme与Type of ciphering algorithm经过标准算法 HMAC-SHA-256推导得到解密密钥Knasenc,并将其存入解密参数数据结构中;

第五步,结束过程。

4)对于S1-MME口的其它消息的处理

对于此类消息,是与用户鉴权和安全保护过程无关的消息,本实施例通过提取消息 中的字段Sequence number来更新解密参数数据结构中的对应字段,以便计算解密的 COUNT值。具体步骤如下:

第一步,捕获S1-MME口此类消息,提取字段Security header type(安全头类型)、 Sequence number;

第二步,确认该用户的解密参数数据结构存在,存在则进入第三步,否则直接返回, 结束过程;

第三步,当Security header type为2时,表示该消息是加密消息,将第一步提取的字 段Sequence number更新到解密参数数据结构,当Sequence number为255即最大值 时,将对应的uplink_nas_over_flow或downlink_nas_over_flow溢出计数值加1,然 后进入第四步;当Security header type为其它值时,是非加密消息,直接返回,结束 过程;

第四步,结束过程。

步骤四,提取加密消息的密文部分,结合解密参数进行解密。

通过前面的步骤,本实施例完成了所有解密参数的提取和更新,下面将根据解密参数对 密文进行解密。为方便说明,假设当前加密消息为下行消息,关于步骤四中利用解密密钥与 对应的用户的解密参数一起对NAS密文进行解密的具体解密步骤如下:

1.确认该用户上下文中的解密参数数据结构存在,且解密参数中context_sate为1,即为 CURRENT状态,则可继续解密,否则返回,结束解密过程;

2.计算COUNT值,包括从解密参数中提取downlink_nas_over_flow和downlink_nas_sqn, 根据公式(1)计算出COUNT值;

3.提取出该消息中的密文部分的数据及长度(即LENGTH),参照本发明中图2NAS加 /解密过程图中所需的输入,从解密参数中取得相应信息后进行解密。其中,主要包括 EEA是选择的加密算法的类型,根据解密参数中cipher_algorithm_type得到,KEY为 解密密钥Knasenc。而BEARER=0,DIRECTION根据此待解密NAS消息的传输方向 而定。

本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技 术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不 会偏离本发明的精神或者超越所附权利要求书所定义的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号