好的,这是系列文章的第十一篇。我们将进入第七章的最后一个,也是技术上最具挑战性的部分——当IMS的“围墙花园”面对外部开放互联网时,该如何构筑一道坚不可摧的“边境防火墙”。
深度解析 3GPP TR 33.937:7 Supporting Mechanisms and Solution Alternatives (Part 3 - 开放代理握手:构筑IMS的边境防火墙)
本文技术原理深度参考了3GPP TR 33.937 V18.0.0 (2024-03) Release 18规范中,关于“Chapter 7.5 UC protection framework for non-IMS interconnection: the Open Proxy Handshake”的核心章节,旨在为读者揭示在IMS网络与非IMS网络(如开放互联网VoIP)互通时,如何解决最根本的信任问题,建立一套主动的、基于密码学的身份验证框架。
引言:李雷的“边境”难题
在之前的探索中,我们的工程师李雷已经成功地为他的IMS网络设计了一套由“补充业务”和“IMR+CI”构成的多层次、智能化的内部防御体系。对于来自网内或其他可信运营商的呼叫,这个体系已经能做到精准识别和有效拦截。
然而,李雷心中始终有一个巨大的隐忧。他看着网络流量监控图,发现绝大多数难以处理的骚扰和诈骗呼叫,都来自同一个地方——那些匿名的、不受管制的、位于开放互联网上的非IMS VoIP服务提供商。这些网络,如同IMS“围墙花园”之外的“法外之地”,它们不遵循IMS的严格认证规则,主叫号码伪造在这里是家常便饭。
李雷的防御体系在面对这些“幽灵”般的攻击时,显得力不从心。IMR系统虽然能根据行为模式进行猜测,但始终无法确信“敌人到底是谁”。他意识到,仅仅在“城内”加强治安是不够的,必须在“边境关口”(IBCF - Interconnection Border Control Function)建立一套严格的身份查验机制,将所有试图伪造身份的“非法入境者”拒之门外。
这个问题,正是TR 33.937在7.5节中,通过引入一个名为“开放代理握手(Open Proxy Handshake, UC-OPH)”的框架,试图解决的核心挑战。这不再是简单的骚扰识别,而是上升到了网络与网络之间的**信任建立(Trust Establishment)和身份认证(Identity Authentication)**的层面。
1. 核心目标:在“零信任”的世界里重建信任 (7.5.1 Objectives)
UC-OPH框架的设计目标非常明确,它直指IMS与非IMS互通场景下最棘手的几个痛点。
Focus on non-IMS interconnection and address the main threats identified in this scenario:
- Forged sender/domain identity threat.
- Forged network information threat (IP spoofing with UDP transport).
- Attacker versatility threat.
- DoS threat on IBCF functions in the receiving domain.
深度解析:
UC-OPH的“作战目标清单”清晰地列出了它要消灭的四大核心威胁:
- 伪造的发送者/域名身份:这是最根本的问题。攻击者可以声称自己是任何人(
From: [email protected])。 - 伪造的网络信息(IP欺骗):在使用UDP传输SIP消息时,攻击者可以轻易地伪造源IP地址,让防御方无法从网络层追溯其来源。
- 攻击者的多变性:攻击者可以以极高的频率变换其身份(号码、IP地址、域名),让基于静态黑名单的防御完全失效。
- 对IBCF的DoS威胁:如果验证一个呼叫的合法性需要消耗大量的CPU资源(例如,复杂的解密运算),那么攻击者就可以通过发送海量的伪造呼叫请求,来耗尽IBCF的资源,从而导致其瘫痪。
为了实现这些目标,UC-OPH的设计遵循了几个关键原则:
- 安全:至少在信令层面实现安全交换,防止窃听和篡改。
- 可扩展:能够适应大规模的互联网络。
- 高效:避免在接收端进行大量的非对称加密运算,以抵御DoS攻击。
- 灵活:支持临时、偶发的通信,无需在两个网络之间预先建立永久的安全隧道。
2. “开放代理握手”:一个五步的“通关文牒”流程 (7.5.3 Basic principles)
UC-OPH的核心思想,是借鉴了现实世界中办理签证和通关的流程。它不再轻信来访者(呼叫)的“口头声明”(SIP INVITE消息),而是要求对方必须经过一套严格的、分步骤的“认证和授权”流程,才能获得进入IMS网络的“通关文牒”(Token)。
这个流程被分解为五个核心步骤:
2.1 步骤一:授权阶段 (Authorization phase in the sending domain)
- 现实类比:一个国民(UE)想要出国(呼叫IMS网络),他首先需要向本国的外交部(发送方的出站代理 - Outbound Proxy)申请护照(ticketA)。
- 技术实现:发送方UE发起呼叫,该请求被其归属的出站代理拦截。出站代理对UE进行身份认证,确认是自己的合法用户后,为其生成一个包含呼叫信息的、经过数字签名(证明其真实性)的“票据A”(ticketA)。
2.2 步骤二:通知阶段 (Notification phase)
- 现实类比:国民拿到护照后,需要向目的地国家的大使馆(接收方的边界网关 - IBCF)递交签证申请(发送一个通知消息 - NOT,其中包含ticketA)。
- 技术实现:发送方(UE或其代理)向接收方IMS网络的IBCF发送一个轻量级的“通知”消息,这个消息携带了ticketA。这个阶段,IBCF会进行“返回路由能力检查”,即验证这个请求确实是来自其声称的网络,而不是IP地址欺骗。这类似于大使馆要确认这份申请材料确实是从申请国寄来的。
2.3 步骤三:授权阶段 (Authorization phase in the receiving domain)
- 现实类比:大使馆收到签证申请后,开始内部审核。它会查询本国的入境黑名单、评估申请人的访问目的等,最终决定是否批准签证。
- 技术实现:IBCF在确认了通知消息的真实性后,开始执行IMS域内的PUCI策略。它会查询黑白名单、调用IMR系统进行评分等,最终决定是拒绝这个呼叫,还是允许它继续。
2.4 步骤四:令牌分发 (Token distribution)
- 现实类比:签证获批!大使馆向申请人颁发一张签证(令牌 - Token),同时,将该签证的存根信息同步给本国的边境口岸(P/S-CSCF)。
- 技术实现:如果IBCF决定允许呼叫,它会生成一个唯一的、此次呼叫专用的“令牌”(Token)。这个令牌通过一个“呼叫接受”消息(ACCEPT-Call)发回给发送方,同时,IBCF将这个令牌的信息传递给IMS网络内部将要处理该呼叫的CSCF。
2.5 步骤五:INVITE请求处理 (INVITE request processing)
- 现实类比:国民手持护照和签证,终于来到了目的地国家的边境口岸。他向边防官员出示所有证件。
- 技术实现:发送方UE现在才正式发送包含了那个“令牌”的SIP INVITE消息。这个消息被直接路由到在步骤四中指定的那个CSCF。
- 最后验证:CSCF收到INVITE后,做的第一件事就是检查其中的令牌是否有效,是否与IBCF之前同步给它的存根信息匹配。只有在验证通过后,呼叫才会被最终接续到被叫用户(如李雷)。
李雷的“安全感”: 他现在明白,当一个来自开放互联网的VoIP电话打给他时,它不再是一个“说来就来”的不速之客。它必须经过这样一个层层盘查、环环相扣的“签证和通关”流程。只有那些身份真实、意图明确、并获得了授权的呼叫,才能最终到达他的耳边。这从根本上杜绝了匿名和伪造身份的可能。
3. 两种模式:有“外交关系” vs. 无“外交关系” (7.5.4 Detailed principles)
UC-OPH框架的精妙之处在于,它还根据发送方网络和接收方网络之间是否存在预先建立的信任关系(即共享密钥),设计了两种不同的“签证”办理流程。
3.4.1 无共享密钥场景 (No shared secret) - “陌生人”流程
The proposed protocol exchange is shown below; Figure 7.5-2: Protocol exchange when no shared secret is available between domains
- 现实类比:两个没有建立“外交关系”的国家。公民申请签证的过程会非常繁琐,需要反复确认信息。
- 技术实现:在“通知阶段”,IBCF不能仅凭ticketA就相信对方。它会发起一个三步握手式的确认流程(NOT → NOT-ACK → NOT-CONF),这类似于TCP的三次握手或SCTP的Cookie机制。通过这个带有挑战-应答性质的交互,IBCF可以强有力地验证发送方的网络地址是真实的,极大地提高了抵御IP欺骗和DoS攻击的能力。整个过程是无状态的,IBCF无需为每个请求都保存中间状态,这对于防御DoS攻击至关重要。
3.4.2 有共享密钥场景 (A shared secret is established) - “盟友”流程
The proposed protocol exchange is shown below; Figure 7.5-3: Protocol exchange when a shared secret is available between domains
- 现实类比:两个已经建立了“外交关系”并共享了“外交密码本”(共享密钥 KAB)的盟国。公民申请签证的过程会大大简化。
- 技术实现:由于双方拥有共享密钥,发送方可以用这个密钥对ticketA进行消息认证码(MAC)计算,生成一个无法伪造的“签名”。接收方IBCF收到后,用同一个密钥进行验证。一旦验证通过,就可以100%确信这个请求来自可信的“盟友”,无需再进行繁琐的三步握手确认。这大大提高了处理效率。
4. 总结:从被动过滤到主动认证的飞跃
“开放代理握手”(UC-OPH)框架,是TR 33.937中提出的最具前瞻性和根本性的解决方案之一。它标志着PUCI的思想,从在网络内部对可疑流量进行被动过滤,跃升到了在网络边界对所有未知流量进行主动认证的新高度。
- 解决了核心痛点:它直面非IMS互通场景下最致命的“身份伪造”和“网络欺骗”问题。
- 变被动为主动:它将防御前线从网络内部,推到了网络的最边缘,将来犯之敌拒之门外。
- 引入了密码学保障:它不再依赖于行为分析等“猜测性”的技术,而是引入了基于密码学的、可验证的信任机制。
对李雷而言,UC-OPH就像是为他的IMS“城邦”建立了一套现代化的海关和签证系统。虽然这套系统的建设和推广(需要大量非IMS网络的支持)是一个漫长而艰巨的过程,但它指明了通往真正安全的、可信的全球IP通信的最终方向。它告诉我们,面对一个混乱的外部世界,仅仅加高自家的城墙是不够的,建立一套行之有效的、国际化的“身份查验规则”,才是长治久安的根本。
FAQ 环节
Q1:UC-OPH框架听起来非常安全,为什么它没有被大规模部署? A1:主要有两大挑战:1. 部署复杂性:UC-OPH需要通信的发送方和接收方网络同时进行升级和部署才能工作,这是一个典型的“先有鸡还是先有蛋”的问题。任何一方单独部署都无法获得收益。2. 标准化与生态:它需要在更广泛的IETF等标准组织中获得共识,并被大量的非IMS VoIP服务商所采纳,形成一个庞大的生态系统。这是一个漫长的推动过程。相比之下,像STIR/SHAKEN这样专注于解决号码认证一个点的方案,其部署目标更聚焦,因此在美国等地区得到了更快的推广。
Q2:UC-OPH中的“令牌(Token)”和我们平时登录网站用的Token有什么区别? A2:它们在概念上是相通的,都是一种“授权凭证”。区别在于应用场景和生命周期。网站的Token通常用于证明用户在一段时间内的登录状态。而UC-OPH中的Token,是一次性、一事一议的,它只对某一个特定的呼叫(从某个主叫到某个被叫)有效,一旦该呼叫建立或失败,这个Token就作废了。这种“一次一密”的设计,极大地提高了安全性,防止了令牌被盗用并发起其他呼叫。
Q3:无共享密钥场景下的“三步握手”听起来会增加呼叫建立的延迟,这会影响用户体验吗? A3:会的,这确实是该方案的一个代价。相比于直接发送INVITE,UC-OPH增加了一到两个来回的信令交互,这可能会给呼叫建立带来几百毫秒的额外延迟。然而,设计者认为,对于一次全新的、跨越不受信任网络的呼叫,用这点延迟换取根本性的安全保障是值得的。而且,这种复杂的握手通常只在第一次通信时需要,一旦呼叫建立,后续的通信或未来的呼叫,可以采用更简化的流程。
Q4:为什么UC-OPH要区分有/无共享密钥两种场景? A4:这是为了在安全性和效率之间取得平衡。对于那些频繁通信、有商业合作关系的运营商(盟友),通过带外方式(如线下交换)预先建立共享密钥,可以在后续的每一次呼叫中都使用高效的认证流程。而对于那些完全陌生的、偶发一次通信的网络(陌生人),虽然无法预设信任,但通过稍显复杂的无密钥流程,依然可以建立起一次临时的、可靠的信任关系。这种设计的灵活性,使得UC-OPH既能服务于“熟人社会”,也能适用于“陌生人社会”。
Q5:UC-OPH和STIR/SHAKEN是什么关系?可以替代吗?
A5:它们是解决同一个核心问题(身份伪造)的两种不同技术路径,各有侧重。STIR/SHAKEN更专注于主叫号码的认证,它在SIP INVITE消息中加入一个携带签名信息的Identity头域,证明这个号码是经过授权使用的。它的流程相对简单,对现有呼叫流程的改动较小。UC-OPH则是一个更全面的会话建立授权框架,它不仅仅认证号码,还验证网络路径、分发令牌、管理呼叫准入,它在呼叫建立前增加了一个独立的“握手”阶段。两者可以看作是互补甚至可以结合使用的。例如,在UC-OPH的ticketA中,可以包含STIR/SHAKEN生成的签名信息,作为身份强度的证明。