三、零信任控制平面设计:策略决策点(PDP)与策略执行点(PEP)分离、动态信任评估引擎架构、基于NIST SP 800-207的落地映射

好,咱们今天聊点硬核的。控制平面,说白了就是零信任架构的「大脑」。没有它,策略就是一纸空文。我个人习惯把控制平面比作交通指挥中心——它不负责开车,但决定每辆车该走哪条路、什么时候该停。

在传统电信核心网里,策略和执行业务往往是绑死的。比如一个SBC(会话边界控制器),既要处理信令,又要自己做鉴权。这有什么问题?你想想看,一旦策略要更新,你得一台台设备去改,运维成本高得吓人。我在项目中遇到过某省运营商,就因为策略更新不及时,导致VoLTE用户大量掉话——嗯,那场面,真是惨不忍睹。

3.1 PDP与PEP分离:为什么必须拆开?

零信任的核心思想之一,就是「决策」和「执行」必须解耦。PDP(策略决策点)只负责「想」,PEP(策略执行点)只负责「做」。这样设计的好处很明显:

  • 策略统一管理:所有决策逻辑集中到PDP,改策略只需改一处
  • 执行层轻量化:PEP只做简单的转发或阻断,性能开销小
  • 弹性扩展:PDP可以水平扩展,PEP可以按需部署

我曾经帮某运营商做5G核心网改造,他们原来的策略是写在每个UPF里的。结果呢?每次新业务上线,要协调十几个厂家同步修改,周期至少两个月。后来我们把策略决策抽离到独立的PDP集群,PEP只负责执行——上线周期直接缩短到一周。说白了,这就是架构的力量。

关键点:PDP与PEP之间的通信协议必须标准化。我个人推荐使用RADIUS或Diameter的扩展,或者干脆用gRPC。别自己造轮子,否则后期维护会让你想哭。

3.2 动态信任评估引擎架构

信任评估引擎,是PDP的核心组件。它不像传统防火墙那样只看IP和端口,而是综合多个维度的信息,实时计算「信任分数」。我习惯把它拆成三层:

3.2.1 数据采集层

这一层负责收集各种原始数据。包括但不限于:

  • 用户身份(从HSS/UDM获取)
  • 设备指纹(终端型号、OS版本、补丁级别)
  • 行为特征(呼叫频率、流量模式、位置变化)
  • 环境信息(时间、网络类型、接入方式)

嗯,这里要注意一点:数据不是越多越好。我曾经见过一个团队,采集了200多个字段,结果大部分都是冗余的。最后评估引擎反而因为噪声太多,准确率下降。我的建议是——先做特征工程,把真正有用的字段挑出来。

3.2.2 评估计算层

这一层是真正的「大脑」。它运行着多个评估模型:

  • 基线模型:基于历史数据建立正常行为轮廓
  • 异常检测模型:用机器学习识别偏离基线的行为
  • 风险评分模型:综合多个维度输出0-100的信任分数

我习惯用这样的伪代码来描述评估逻辑:

def evaluate_trust(session_context):
    score = 50  # 初始中立分数
    # 身份验证
    if session_context.auth_method == "biometric":
        score += 20
    elif session_context.auth_method == "password":
        score += 5
    # 设备合规
    if session_context.device_patch_level >= 202403:
        score += 15
    else:
        score -= 10
    # 行为异常
    if is_anomalous(session_context.behavior):
        score -= 30
    # 最终决策
    if score >= 70:
        return "allow"
    elif score >= 40:
        return "challenge"  # 要求二次认证
    else:
        return "deny"
避坑指南:我曾经把信任阈值设得太死,结果导致大量正常用户被误拦。后来我改用「动态阈值」——根据网络负载和风险等级自动调整。比如凌晨3点,阈值可以适当降低;但业务高峰期,阈值必须拉高。

3.2.3 策略执行层

这一层就是PEP的工作了。它接收PDP下发的决策结果,然后执行相应的动作:放行、阻断、重定向、或要求二次认证。注意,PEP不保存任何策略状态——它只做「一次性」的执行。这样即使PEP被攻破,攻击者也拿不到完整的策略信息。

3.3 基于NIST SP 800-207的落地映射

NIST SP 800-207是零信任架构的「圣经」。但说实话,它写得比较抽象。我结合电信核心网的特点,做了个落地映射表:

NIST 核心原则 电信核心网落地映射 我的实战经验
所有数据源和计算服务被视为资源 将SBC、MME、UPF、HSS等网元都视为受保护资源 别只保护信令面,用户面也要纳入保护范围
所有通信必须加密,无论网络位置 信令面用IPSec/TLS,用户面用IPSec或SRTP 我见过只加密信令面的案例,结果用户面被嗅探了
访问权限基于每个请求授予 每次会话建立都重新评估信任,不缓存结果 性能开销确实大,但安全收益值得
动态信任评估 PDP实时计算信任分数,支持自适应策略 建议用滑动窗口,别用固定时间窗口
持续监控和审计 所有PDP决策日志上报到SIEM,支持回溯 日志格式一定要标准化,否则后期分析会崩溃

你可能会问:NIST这套东西,在电信网里真的跑得通吗?我的回答是:能,但需要做适配。电信网对时延和可靠性的要求极高,你不能像企业网那样每步都做深度检查。我建议采用「分级评估」策略——

  • 首次接入:做全量评估(身份+设备+行为)
  • 会话进行中:只做轻量评估(行为异常检测)
  • 关键操作(如修改签约数据):触发重新评估

这样既保证了安全,又不会把核心网拖垮。

重要提醒:PDP本身必须是高可用的。我见过某厂商把PDP部署在单节点上,结果宕机后全网策略失效——所有流量都被放行,等于零信任变成了零安全。建议至少部署3节点集群,用Raft协议保证一致性。

3.4 整体架构图

下面这张图,是我自己画的零信任控制平面架构。它把PDP、PEP、信任评估引擎的关系讲清楚了:

零信任控制平面架构图 策略执行点 (PEP) 信令转发引擎 用户面处理引擎 策略执行代理 日志上报模块 策略决策点 (PDP) 策略引擎 信任评估引擎 身份管理模块 策略存储 数据源 HSS/UDM 设备指纹库 行为分析引擎 威胁情报 请求决策 下发策略 查询数据 返回结果 PDP负责决策,PEP负责执行,数据源提供评估依据

这张图里,我刻意把PDP和PEP画成了两个独立的盒子。在实际部署中,它们可以物理分离,也可以逻辑分离——关键是要保证通信链路的可靠性和低时延。我个人建议在5G核心网里,PDP部署在控制面云化平台,PEP部署在用户面网关上,中间用专线连接。

好了,这一章的内容就到这里。控制平面的设计,说白了就是「把脑子放在安全的地方,把手脚放在需要的地方」。下一章我们会聊策略的细粒度编排——嗯,那又是另一个有意思的话题了。


专注资料整理