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