1. 欢迎大家订阅和关注,3GPP通信协议精讲(2G/3G/4G/5G/IMS)知识点,专栏会持续更新中.....敬请期待!
目录
1. 对于主要的LTE核心网接口,给出运行在该接口上数据的协议栈,并给出协议特征
2. 通常说的nas加密,指的是什么?常见的加密方式有哪些?解密的大致原理是什么?
3. 当一个s1mme接口信令只有一侧的,比如detach req信令只有e-NB侧的S1-AP Id和ip时,如何关联到上文
4. 基本了解移动用户上网的几大流程场景:attach, S1 release, service request,pathswitch,detach等基础信令流程;同时了解到这些流程对应到手机的哪些实际行为
1. 对于主要的LTE核心网接口,给出运行在该接口上数据的协议栈,并给出协议特征
1.接口协议栈
接口是指不同网元之间的信息交互方式。既然是信息交互,就应该使用彼此都能看懂的语言,这就是接口协议。接口协议的架构称为协议栈。根据接口所处位置分为空中接口和地面接口,响应的协议也分为空中接口协议和地面接口协议。
空中接口是无线制式最个性的地方,不同无线制式,其空口的最底层(物理层)的技术实现差别巨大。LTE空中接口是UE和eNodeB的LTE-Uu接口,地面接口主要是eNodeB之间的X2接口,以及eNodeB和EPC之间的S1接口。
协议栈的分层结构有助于实现简化设计。底层协议为上层提供服务;上层使用下层的提供的功能,上层不必清楚下层过程处理的细节。比较常见的分层协议有OSI七层参考模型和TCP/IP四层协议。
无线制式的接口协议也分层,粗略分为物理层(层一,L1,PHY)、数据链路层(层二,L2,DLL)、网络层(层三,L3,NL)。
物理层主要功能是提供两个物理实体间的可靠比特率传输,适配传输媒介。无线空口中,适配的是无线环境;地面接口中,适配的则是E1,网线,光纤等传输媒介。
数据链路层的主要功能是信道复用和解复用、数据格式的封装、数据包调度等。完成的主要功能是具有个性的业务数据向没有个性的通用数据帧的转换。
网络层的主要功能是寻址、路由选择、连接的建立和控制、资源的配置策略等。
eUTRAN和UTRAN的分层结构类似,但为了灵活承载业务、简化网络结构、缩短处理时延,rUTRAN接口协议栈以下功能从层三转移到层二:
(1)动态资源管理和Qos保证功能转移到MAC(媒介接入控制)层。
(2)DTX/DRX(不连续发射/接收)控制转移到MAC层。
(3)业务量测量和上报由MAC层负责。
(4)将控制平面的安全性(加密)和完整性保护转移到PDCP(Packet Data Convergence Protocol)分组数据汇聚协议。
LTE接口协议栈除了分层还分面:用户面协议和控制面协议。用户面负责业务数据的传送和处理,控制面负责协调和控制信令的传送和处理。
用户面的主要功能:头压缩、加密、调度、ARQ/HARQ。
控制面的主要功能:RLC和MAC层功能与用户面中的功能一致;PDCP层完成加密和完整性保护;RRC层完成广播,寻呼,RRC连接管理,资源控制,移动性管理,UE测量报告控制;NAS层完成核心网承载管理,鉴权及安全控制。
用户面和控制面都是逻辑上的概念。在层一,不区分用户面和控制面;在层二,数据功能处理开始区分用户面和控制面;在层三,用户面和控制面则由不同的功能实体完成。
在无线侧,用户面和控制面还在一个物理实体eNodeB上;而在核心网侧,用户面和控制面则完全实现了物理上的分离,分别安排在不同的物理实体上。
不同接口协议细节有所不同,但在架构上都可套用如图所示的三层两面协议栈通用模型。
S1-MME是e-NodeB连接MME的控制面接口
S1-MME协议栈
协议特征:
IP_protocol = 132 (SCTP)&& SCTP.payload_protocol_id = 18(S1AP)
S1-U是e-NodeB连接S-GW 的用户面接口
S1-U协议栈
协议特征:
GTP.version = 1 && UDP.port = 2152再根据teid匹配
S6a协议栈
协议特征:
IP_protocol = 132 (SCTP)&& (SCTP.payload_protocol_id = 46(diameter) ||(diameter.version = 1 && diameter.application_id = 16777251))
S11协议栈
协议特征:
GTP.version = 2 && UDP.port = 2123
2. 通常说的nas加密,指的是什么?常见的加密方式有哪些?解密的大致原理是什么?
NAS:非接入层(Non-Access stratum),位于终端UE和移动性管理实体MME内。NAS过程用于UE各MME间移动性管理与会话管理过程:支持移动性管理功能以及用户面承载的激活、修改与去激活,并负责NAS信令的加密与完整性保护。
NAS信令分为EMM(EPS Mobility Management);ESM(EPS Session Management)
EMM: 移动性管理-如注册和位置更新,GUTI重分配过程、鉴权过程、安全模式命令过程、标志过程、attach 、detach等几个模块功能。这些过程都是在非接入层信令连接建立基础之上才发起的
ESM: 会话管理-如通话建立。建立和维护UE 和PDN GW 之间的IP连接。包括:网络侧激活、去激活和修改EPS承载上下文;UE请求资源(跟PDN的IP连接,以及专用承载资源)
通常说的NAS加密是信令加密,加密方式(1)128-EEA1(2)128-EEA2(3)128-EEA3。
NAS 解密
1.从S6a接口的diameter包获取Kasme
DIMETER Authentication-Infomation answer中,获取Kasme
2.从S1-MME接口的包中获取加密类型
S1-AP/NAS-EPS Id-dowdlinkNASTransport,security mode command中,Fnas_eps.emm.toc.010 .... = Type of ciphering algorithm: EPS encryption algorithm 128-EEA2 (2)获取加密类型,EEA0表示不加密
3.从S1-MME接口的包中获取待解密消息
S1-AP/NAS-EPS Id-innitialcontextsetup 获取待解密消息
解密过程
1、将第一步获得的Kasme输入到下面的KASME/KeNB框中
2、algorithm distinguisher选择NAS-enc-alg
3、algorithm identity选择02
- algorithm输入第二步获取的加密类型
- KEY输入步骤4生成的Knasenc
- CIPHERTEXT BLOCK输入第三步待解密的内容
- 如果第四步的algorithm distinguisher和algorithm identity不太确定,可以多试几个组合,解密后的结果为0741开头的应该就是正确的。
1.选择pcap文件,替换加密bytes
解密原理
解密需要两个信息: 1 加密算法; 2 密钥。
加密算法:
加密算法在S1接口的security mode command/complete消息中,根据MME, ENODEB的加密算法优先级设置协商(明文)得出的,可以包的解析获取。目前可选的加密算法有3种:(1)128-EEA1(2)128-EEA2(3)128-EEA3。第一种和第三种算法的参考文档见链接: ETSI - Custodian, Security algorithms, codes, licences
第二种算法是国内线上普遍采用的,第三方的开源代码链接如下:
http://www.gladman.me.uk/
密钥派生过程:
(1)Kasme:
Kasme又称根密钥,NAS层用于加密及完整性的所有密钥,都是由根密钥Kasme派生得出的。Kasme由K,CK通过H M A C-SH A -256 算法生成,在S6a接口上明文传递,可以从S6a的包里解析获取。
- Knasenc:
由Kasme派生出的密钥分加密密钥(entryption key)和完整性密钥(integrity key),前者用来加密,后者用来验证消息的完整性。我们只关注加密密钥,在NAS层即为Knasenc。
Knasen是由根密钥Kasme,和一个辅助参数做为输入,通过HMAC-SHA-256算法得到。此密钥需要软件计算,线上数据包里不会明文传递。
得出加密算法和密钥之后,将密钥,密文长度,及其他辅助信息如上下行,序列号等作为加密算法的输入,根据算法计算,得出密钥流,然后将密钥流与密文流做异或运算,即可得出明文。
3. 当一个s1mme接口信令只有一侧的,比如detach req信令只有e-NB侧的S1-AP Id和ip时,如何关联到上文
首先根据e-NB的ENB-UE-S1AP-ID 与ip信息,设置过滤条件,关联出S1mme接口的报文
在找到核心网侧MME-UE-S1AP-ID和IP,设置过滤条件,得出关联报文,在得出的attach request 报文里找到imsi信息。
过滤条件取再或imsi得到如下报文,可以看到有create session response报文,报文里面含有teid+ip、MSISDN、IMEI等信息。
create session response报文同时会分配上行用户面数据携带的teid+ip(这个信息会通过s1mme接口intinal context setup req消息给到enb)
4. 基本了解移动用户上网的几大流程场景:attach, S1 release, service request,pathswitch,detach等基础信令流程;同时了解到这些流程对应到手机的哪些实际行为
attach对应行为手机开机
detach对应行为手机关机
S1 release 手机与网络侧链接断开,释放上下文信息
pathswitch:请求将业务数据的通道改变,就是将源SAE bearers 中的GTP节点切换到在在目标eNodeB中新建立的SAE bearers的GTP节点(X2切换)
service request:CC呼叫控制,SSS补充业务,SMS短信
S1释放过程有以下两种方式:
- eNodeB发起释放,原因是操作维护干预,不明原因的失败,用户休止状态,重复RRC
信令完整性检查失败,由于UE发生的信令连接失败而引起的S1释放等;
- MME发起的释放,由于鉴权失败,去附着等。
1.如果eNodeB检测发现需要与手机断开信令连接和所有的无线承载,eNode会向MME发送S1 UE Context Release Request,并且包含释放原因。注意:第一步只是考虑eNodeB初始化S1释放的过程。如果是MME初始化S1 release过程,则不需要考虑这步。
2.MME发送Release Access Bearers Request到S GW,请求释放所有和手机相关的S1-U承载。此消息既可以由从eNodeB发来的S1 Release Request消息触发也可以由MME的其他事件触发。
3. S GW释放所有eNodeB相关于该手机的信息,并且向MME返回Release Access Bearers Response,手机的S GW上下文其他的元素则不受影响。S GW保留对该手机承载配置的相关信息。S GW开始缓存到手机的数据包,并且初始化"Network Triggered Service Request" 过程。
4.MME发送S1 UE Context Release Command 给e-NodeB
5.如果RRC连接已经释放了,eNodeB会发送RRC Connection Release 消息 Acknowledged Mode到手机。
6.eNodeB通过向MME发送S1 UE Context Release Complete消息确认S1 Release。通过此消息该手机在MME和eNodeB间的信令连接被断开。MME删除了所有eNodeB的从手机MME上下文中得来的信息,但保留了其他的手机的MME上下文关于S GW的 S1-U配置信息。
Service Request
1.手机向eNodeB发送NAS:Service Request,这个消息被包含在RRC消息中。RRC消息可以用来封装S-TMSI和 NAS消息。
2.eNodeB向MME转送NAS消息。NAS 消息被封装在S1-AP: Initial UE Message中。
3.
4. MME发送S1-AP Initial Context Setup Request到eNodeB。这步为活动的EPS承载激活了无线和S1的承载。
5. eNodeB 开始处理无线承载的建立过程,并且user plane的安全也是在步建立的。当user plane的无线承载被建立起来了,Service Request也就结束了EPS 承载的状态将会在手机和网络间进行同步。如果没有无线的承载被建立起来,手机应该删除EPS 承载
6. 现在手机发送的上行数据可以通过eNodeB被转发到Serving GW。eNodeB通过Serving GW地址和TEID来转发数据。Serving GW继续转发数据到Serving GW。
7.
8. MME通过每个PDN连接发送Modify Bearer Request到Serving GW。这时Serving GW可以发送下行数据到手机。如果PDN GW请求手机的位置信息,并且手机的位置信息也被改变了,MME也会在该消息中包含User Location Information。
9. 如果RAT Type和上次使用的不一致,或者手机的位置信息被包含在消息中。Serving GW应该向PDN GW发送Modify Bearer Request。
10. 如果网络中动态的部署了PCC,PDN GW可以根据RAT Type通过IP CAN Session Modification过程来获取PCC规则。如果没有部署PCC,PDN GW可以使用本地的QoS策略。
11.
接口 | 可选 | 字段 | 可选 | 注释 | |
Initial UE Message /Service request | S1-MME | M | S_TMSI | M | 值同guti,可用于关联老的流 |
Additional guti | O | Old guti是从P-TMSI映射的值的时候,该guti并不是MME分配的guti,此时包里带Additional guti,additional guti才是MME分配的guti | |||
LAI | O | 位置信息 | |||
Authentication Information Request/Response | S6a | O | 当前的HSS中没有该用户的鉴权信息时,发起鉴权过程,S6A的包中会包含rand和key | ||
Authentication Request | S1-MME | O | KSI | M | |
RAND | |||||
Authentication Response | S1-MME | O | |||
Security Mode Command | S1-MME | O | NAS security algorithms | M | 更新加密算法 |
KSI | |||||
Security Mode Complete | S1-MME | O | IMEISV | O | 如果cmd中有IMEISV request,则complete中必须携带IMEISV。 此包开始用新的密钥加密,security header type为4,凭此判断更新密钥,并用新的密钥解密 |
Initial Context Setup Request | S1-MME | M | ERAB-ID | M | |
Initial Context Setup Response | |||||
Initial Context Setup Complete | |||||
Modify Bearer Request | S11 | M | MEI | C | |
Serving Network | CO | ||||
Modify Bearer Response | S11 | M | Cause | ||
MSISDN | |||||
Linked EPS Bearer ID |