第1章:SBA服务化架构安全机制
各位好,我是老张。在5G核心网里摸爬滚打了这么多年,今天咱们聊聊SBA架构的安全机制。说实话,这个话题我每次讲都觉得特别重要——因为它是整个5G核心网的“命门”。
1.1 基于OAuth 2.0的NF授权
先说说OAuth 2.0。很多人一听这个就觉得是互联网的东西,跟通信网没关系。其实不然。5G核心网引入SBA后,NF之间要互相调用服务,总不能谁都能调吧?
我当年第一次看到3GPP规范里写OAuth 2.0时,第一反应是:这帮人是不是把互联网那套直接搬过来了?后来仔细一看,嗯,确实借鉴了,但做了不少定制。
核心逻辑是这样的:
- NF消费者:想调用别人服务的NF,比如AMF想从UDM拿用户数据
- NF生产者:提供服务的NF,比如UDM
- NRF:网络存储库功能,也是OAuth 2.0里的授权服务器
说白了,NRF就是那个“发通行证”的。NF之间不能直接信任,都得通过NRF来验证身份。
关键点:5G里的OAuth 2.0用的是Client Credentials Grant模式。NF之间没有用户参与,所以不需要授权码流程。
1.2 Token颁发与验证
Token怎么发?我给大家画个流程图,这个图我当年给客户讲的时候,他们都说一看就懂。
Token里都装了什么?我拆开给大家看:
{
"iss": "https://nrf.5gc.mnc001.mcc001.3gppnetwork.org",
"sub": "amf-001",
"aud": ["udm", "ausf"],
"exp": 1700000000,
"scope": "nudm-sdm:query nausf-auth:authenticate",
"nfType": "AMF",
"plmnId": {"mcc": "001", "mnc": "001"}
}
这里有个坑,我当年踩过。scope字段一定要写对,少一个权限,NF调用就失败。我记得有一次现网故障,查了半天,最后发现是scope里少写了一个服务名。
避坑指南:我曾经遇到过一个案例,NF消费者拿到的Token里scope写的是“nudm-sdm:query”,但实际调用的是“nudm-sdm:subscribe”。结果NRF验证通过,UDM却拒绝了。所以scope一定要精确匹配。
1.3 Token验证机制
NF生产者收到Token后怎么验证?不是直接去NRF问,那样太慢了。用的是JWT(JSON Web Token)签名验证。
具体流程:
- NF消费者从NRF拿到JWT格式的Token
- 调用服务时,把Token放在HTTP Authorization头里
- NF生产者用NRF的公钥验证签名
- 检查exp时间是否过期
- 检查scope是否包含所需权限
你想想看,如果每次调用都去NRF验证,那NRF得扛多大压力?所以用JWT签名验证,NF生产者本地就能完成,效率高得多。
个人经验:我建议在生产环境中,Token的过期时间不要设太长。3GPP推荐是1小时,但我个人习惯设30分钟。太长了不安全,太短了NF频繁申请Token也浪费资源。
1.4 NSSF安全策略
NSSF是网络切片选择功能。说白了,就是决定用户该用哪个切片。安全方面,NSSF主要做两件事:
- 切片选择策略验证:确保用户只能访问授权的切片
- 切片隔离:不同切片之间的数据不能互相访问
我记得有一次做切片安全测试,发现一个漏洞:某个用户通过修改切片选择参数,竟然能访问到企业专网切片。后来查出来是NSSF没有做参数校验。
关键安全措施:
- NSSF必须验证UE的签约数据,确认用户有权访问该切片
- 切片选择参数(S-NSSAI)必须做完整性校验
- NSSF与NRF之间的通信必须使用TLS加密
1.5 NEF安全策略
NEF是网络开放功能,它把5G网络的能力开放给第三方应用。这玩意儿安全风险最大——因为它是内外网的接口。
NEF的安全策略主要包括:
| 安全维度 | 具体措施 | 我遇到的坑 |
|---|---|---|
| 认证授权 | 第三方应用必须通过OAuth 2.0认证 | 有次第三方应用证书过期,NEF没做校验 |
| API安全 | 所有API调用必须使用HTTPS | 有人用HTTP直接调,数据明文传输 |
| 速率限制 | 限制第三方应用的调用频率 | 某应用疯狂调用,差点把NEF打挂 |
| 数据脱敏 | 对外暴露的用户数据必须脱敏 | IMSI直接暴露给第三方,这是大忌 |
嗯,这里要注意。NEF对外暴露的API,一定要做速率限制。我曾经见过一个案例,某个第三方应用因为代码bug,每秒发了几万次请求,直接把NEF搞宕机了。
重要提醒:NEF的数据脱敏不是可选项,是必选项。用户的位置信息、IMSI、MSISDN这些敏感数据,对外暴露前必须做脱敏处理。3GPP规范里写得很清楚,但实际部署中经常被忽略。
1.6 本章小结
SBA的安全机制,说白了就是三件事:谁可以调用(认证)、能调什么(授权)、怎么调(安全传输)。OAuth 2.0解决了前两个问题,TLS解决了第三个问题。
我个人觉得,5G核心网的安全设计比4G强太多了。4G时代,核心网网元之间基本是裸奔,全靠物理隔离。5G引入了服务化架构,安全机制也跟上了。
但话说回来,再好的机制,部署不到位也是白搭。我见过太多案例,规范写得明明白白,实际部署时各种偷懒。所以大家在实际工作中,一定要把安全机制落到实处。