完整性保护

Integrity Protection

定义

完整性保护(Integrity Protection)通过MAC(消息认证码)或AEAD(认证加密)机制,确保控制面信令和用户面数据在传输过程中未被篡改。LTE/5G对RRC信令和PDCP层数据提供完整性保护,采用128-EIA系列算法,与空口加密(128-EEA)配合实现机密性与完整性双重保障,是安全架构的核心机制。

算法与密钥

  • 128-EIA1(SNOW 3G):3GPP legacy
  • 128-EIA2(AES-CMAC):广泛部署
  • 128-EIA3(ZUC):国密算法

完整性密钥(KRRCint、KUPint)由密钥管理流程派生,与加密密钥分离。NIA0表示空完整性,仅用于测试。

防护作用

完整性保护防止信令篡改(如切换命令被篡改)、重放攻击(通过COUNT/序列号)、中间人攻击。接收方计算MAC与报文中的MAC比对,不匹配则丢弃并可能触发安全告警。

典型应用场景

所有LTE/5G空口信令与用户面数据均需完整性保护。达希物联的物联网卡在运营商网络中自动享受完整性保护。

完整性保护是蜂窝网络的安全基石,达希物联的物联网卡在运营商网络中自动享受信令与数据的完整性保护。对于高安全要求的工业物联网、金融支付等场景,达希物联可配合端到端加密与完整性校验,为客户构建多层安全防护体系。

校验对不上时应丢掉整段而不是尝试纠错

完整性保护在报文上附一段消息认证码,接收端用同一把完整性密钥重新计算。对不上就说明比特被改过,或者用错了密钥、计数器。这一段不能靠纠错码去“修好”,因为改动可能是有意的,纠错会把改过的信令变成看起来合法的命令。正确动作是丢弃整段,并按协议计数失败次数。连续失败应触发安全告警,而不是悄悄重试直到碰巧通过。

加密和完整性回答两个问题。加密使旁人看不懂,完整性使旁人改了也能被发现。只加密不保护完整性时,攻击者虽然看不懂,仍可能翻转某些比特,把命令改成另一种仍然可解密的内容。空口上两者都要开。应用层若另有自己的校验,也不能取消空口这一层,因为空口信令本身不经过应用。

计数器超出窗口就按重放处理

同一密钥下,认证码还要绑上计数器,否则旧报文可以原样再送一次,校验仍然通过。接收端只接受计数器前进到一个有限窗口里的报文。落后太多的报文视为重放;突然超前太多则可能是失步。失步和篡改在日志里都可能写成校验失败,差别是失步时随后的正常新报文也全部失败,篡改通常是个别报文失败。处理失步要重新建立安全上下文,处理个别篡改则记录并丢弃即可。

窗口太小,正常的乱序重传会被当成重放;窗口太大,真正的旧报文更容易混进来。窗口应覆盖无线重排的范围,而不是覆盖应用层可以缓存的全部历史。切换之后计数器重新开始,旧窗口里的报文不能拿到新小区继续校验。

控制面被改写时用户面可能仍在收发

无线资源控制消息决定切换、承载和测量。这些消息的完整性失败若被忽略,终端可能执行一条被改过的切换命令,用户面在短时间内仍显示有收发,随后进入错误小区。只监控业务吞吐量,看不到这一类攻击或故障。判断要看信令失败计数是否上升,而不是只看有没有IP包。用户面自己的完整性从某一代网络开始也可以打开,它保护的是数据无线承载,替代不了控制面那把密钥。

达希物联的物联网卡在运营商空口上使用网络分配的完整性算法,卡内长期密钥只参与派生,不直接对每一条信令做运算。校验失败集中在某一小区,应怀疑该小区的安全配置或无线误码已经破坏了信令;所有小区都失败,再怀疑卡和网络的密钥是否一致。应用层仍需要对指令做自己的校验,空口完整性覆盖不到已经解密之后的平台内部转发。

用户面完整性开关和信令完整性不是同一把

信令完整性保护无线资源控制消息,用户面完整性保护数据承载上的分组。网络可以只打开前者。此时篡改业务包不一定被接入层发现,篡改切换命令则会被丢掉。看到“完整性已开启”时,要问清开的是哪一个平面、哪一条承载。测试里用空完整性算法通过信令,不代表用户面也允许空算法。两个平面的空算法开关应分别禁止出现在商用配置里。

失败计数也应分开。信令校验失败上升而用户面正常,终端可能很快失去连接;用户面校验失败上升而信令正常,连接还在,业务包却在变少。达希物联的卡参与派生这两把密钥的材料,但不在平台上显示每一把是否在用。模组诊断口才能看到当前算法。平台业务正常不能证明信令完整性仍在工作,因为失败可能还没累积到拆链。诊断口的失败计数才是这一层的直接证据。


相关链接

返回通信类知识库