1. 5G核心网SBA架构概述:从EPC到5GC的演进
大家好,我是老张。在5G安全这个领域摸爬滚打了快十年,今天咱们来聊聊5G核心网最核心的东西——SBA架构。说实话,我第一次接触SBA时也有点懵,但搞懂了之后你会发现,这玩意儿的设计思路其实挺优雅的。
1.1 从EPC到5GC:一次彻底的架构革命
先说说4G的EPC(Evolved Packet Core)。我记得2015年做4G核心网安全测试时,EPC的架构就像一栋老式办公楼——每个网元都是独立的实体,MME管移动性、SGW管用户面、PGW管外部连接。它们之间用GTP-C、Diameter这些协议通信,接口固定,扩展性很差。
到了5G,核心网变成了5GC(5G Core)。这不仅仅是升级,简直是推倒重来。5GC把原来EPC里那些「铁板一块」的网元,拆成了一个个独立的网络功能(NF)。
核心变化:
- 控制面与用户面彻底分离(CUPS)
- 服务化架构(SBA)取代传统点对点接口
- 网络功能虚拟化(NFV)成为基础
- 支持网络切片,一网多用
为什么会这样?说白了,4G时代那种紧耦合的架构,已经扛不住5G对灵活性、扩展性的要求了。你想想看,物联网、车联网、工业互联网,这些场景对网络的要求天差地别,总不能为每个场景都建一套专用网络吧?
1.2 SBA核心设计理念:服务化才是王道
SBA(Service-Based Architecture)的核心思想就八个字:服务注册、服务发现、服务调用。每个NF把自己提供的功能注册到NRF(网络存储库功能),其他NF需要时就去NRF查,然后直接调用。
我个人习惯把SBA比作一个微服务商城:
- NRF = 商城目录,告诉你哪个NF提供什么服务
- AMF = 接入管理服务,管用户注册和移动性
- SMF = 会话管理服务,管PDU会话
- UPF = 用户面服务,管数据转发
- AUSF/UDM = 认证和用户数据服务
我在项目中遇到过一件事:某厂商的5G核心网部署后,AMF和SMF之间的接口老是超时。排查了半天,发现是NRF返回的服务实例列表里,SMF的IP地址写错了。这就是典型的服务发现环节出问题——在SBA里,NRF的可靠性直接决定了整个网络的稳定性。
避坑指南:我曾经因为NRF的缓存策略没配好,导致NF注册信息过期后还在被调用。建议在生产环境中,NRF的心跳检测间隔不要超过30秒,服务实例的TTL(生存时间)设为60秒以内。
1.3 网络功能(NF)与微服务化
5GC里定义了20多种NF,每个NF都可以独立部署、独立升级、独立扩缩容。这跟微服务架构的理念完全一致。
咱们来看几个关键的NF:
| NF名称 | 全称 | 核心职责 | 安全关注点 |
|---|---|---|---|
| AMF | 接入和移动性管理功能 | UE注册、连接管理、移动性管理 | 信令风暴、DoS攻击 |
| SMF | 会话管理功能 | PDU会话建立、修改、释放 | 会话劫持、资源耗尽 |
| UPF | 用户面功能 | 数据包路由、转发、QoS执行 | 数据泄露、流量篡改 |
| NRF | 网络存储库功能 | NF服务注册、发现、状态管理 | 服务欺骗、信息泄露 |
| AUSF | 认证服务器功能 | 5G AKA认证、密钥派生 | 中间人攻击、密钥泄露 |
| UDM | 统一数据管理 | 用户签约数据、鉴权数据 | 数据篡改、未授权访问 |
嗯,这里要注意:微服务化虽然带来了灵活性,但也引入了新的攻击面。每个NF之间的通信都需要认证和授权,否则攻击者可以伪造NF身份,窃取用户数据或破坏网络。
1.4 SBI接口与HTTP/2协议基础
SBA里NF之间的通信接口叫SBI(Service-Based Interface)。它不再用4G时代的Diameter或GTP-C,而是全面拥抱HTTP/2协议。
为什么选HTTP/2?我总结了几点:
- 多路复用:一个TCP连接可以并发处理多个请求,减少连接开销
- 二进制分帧:比HTTP/1.1的文本协议更高效,解析更快
- 头部压缩:HPACK算法压缩请求头,减少带宽占用
- 服务器推送:服务端可以主动推送资源,减少交互次数
来看一个典型的SBI接口调用示例——AMF向SMF请求建立PDU会话:
POST http://smf.example.com:8080/nsmf-pdusession/v1/sm-contexts
Content-Type: application/json
Accept: application/json
3gpp-sbi-api-version: 1.0.0
3gpp-sbi-request-id: 550e8400-e29b-41d4-a716-446655440000
{
"supi": "imsi-310150123456789",
"pei": "imei-490154203237518",
"pduSessionId": 5,
"dnn": "internet",
"sNssai": {
"sst": 1,
"sd": "000001"
},
"servingNfId": "amf-001"
}
这个请求里,AMF告诉SMF:「有个用户(SUPI)要建立PDU会话,DNN是internet,网络切片是SST=1、SD=000001」。SMF收到后,会分配UPF资源,建立N4会话,然后返回响应。
安全警告:HTTP/2虽然高效,但它的多路复用特性也带来了新的攻击面。比如「请求走私」攻击——攻击者利用HTTP/2的帧重组漏洞,把恶意请求混入正常请求流中。我在一次渗透测试中,就成功利用了这个漏洞绕过了某厂商的API网关认证。
另外,SBI接口的认证机制也很关键。3GPP规定NF之间必须使用TLS双向认证(mTLS),并且要基于OAuth 2.0的客户端凭证授权。说白了,每个NF调用其他NF的服务前,都得先向NRF申请一个access token,然后带着这个token去调用。
token的格式通常是JWT(JSON Web Token),里面包含了调用方NF的ID、角色、权限范围等信息。接收方NF验证token的签名和有效期后,才决定是否提供服务。
我建议你在做安全测试时,重点关注这几个点:
- mTLS证书是否强制校验?有没有跳过证书验证的配置?
- OAuth token的过期时间是否合理?太短影响性能,太长增加泄露风险
- NRF的token签发接口有没有做速率限制?防止暴力破解
好了,这一章的内容就到这里。SBA架构是5G核心网的基石,理解它你才能明白后面那些安全攻防手法是怎么来的。
公众号:蓝海资料掘金营,微信deep3321