赵云辉
(北京江南天安科技有限公司,北京 100088)
应急广播通常是指一个地区发生重大灾害、突发事件等公共危机时,以广播的形式向全社会提供迅速快捷的信息发布,第一时间把需要公开的灾害消息或灾害可能造成的危害传播到普通民众,使民众在第一时间知道发生了什么事情,应该如何撤离、避险或采用合理的方式使生命、财产、健康等损失降到最低。
随着广播电视业务信息化和网络化的发展,过去的盘带拍摄、制作、播出已全面数字化,传统意义上的制作、播出安全已全面扩展至信息系统的信息安全。同时,随着融合媒体和云计算的出现,给整个广电行业的信息安全带来了巨大挑战。
目前,国外的应急系统更多的是采用行政管理手段进行管理,没有采用安全技术进行保护。2017年美国中部时间周五晚上11 点42 分(北京时间周六下午1 点42 分),达拉斯156 个紧急警报器突然启动。美国德克萨斯州达拉斯市官员称,此次是由于电脑黑客入侵,达拉斯所有紧急警报系统在夜里鸣叫了90 min 左右,是至今出现的最大规模的紧急系统入侵事故。
我国高度重视应对突发事件的应急广播工作,近年来颁布了相关规划和标准文件,对全国应急广播体系建设提出了明确要求。标准中明确要求,要采用基于SM2、SM3 的密码算法对应急广播信息进行数据签名,以确保应急广播信息的发布者身份可验证、传输的信息内容防篡改。
由于广播系统的网络部署方式一般采用单向、无线传输方式,接收终端单向接收数据进行处理后播发,发送端无法根据反馈判断播发的内容是否正确;接收端也无法判断接收的数据是否为合法的发送端发出,且无法确认接收的内容是否完整、未篡改。
目前,有部分广播网络采用了DVB、TS 等有线传输方式。这些传输方式多基于IP 网络,传输方式被攻击的可能性更大。对于攻击者来说,采用TCP/IP 协议的有线传输网络更容易被攻破。
针对广电网络来说,重放攻击是一个更容易实现和攻击效果更明显的方法。重放攻击(Replay Attacks)也被称为重播攻击或回放攻击,攻击者通过再次发送一个目标主机已接收过的数据包,以此达到欺骗主机系统的目的,一般用于主机系统的身份认证过程,会破坏认证的正确性。重放攻击行为一般是由拦截并重发该数据的攻击方发起。攻击者利用网络监听或者其他方式盗取通信过程关键数据,然后再把它重新发给相关服务器。重放攻击在任何网络通信过程中都可能发生,是计算机世界中黑客们最常用也是最简单的攻击方式之一。
根据重放攻击消息的接收方与消息的原定接收方的关系,重放攻击可分为3 种。
(1)直接重放:即将获取的消息重放给原来的验证端,直接重放的发送方和接收方均不变。
(2)反向重放:即将原本发给接收方的消息截获并反向重放给发送方。
(3)第三方重放:即将获取的消息重放给同一区域内的其他接收方。
根据重放攻击发生的网络通信协议的不同阶段,可以将重放攻击分为以下两类。
(1)在当前协议交互的过程中进行攻击,重放的消息来自当前协议交互之外。例如,交错攻击的对像是至少需要两次交互或多次交互的协议,著名的例子是Lowe 对NSPK 协议的攻击。经典重放攻击是对当前交互过程进行攻击,攻击者使用之前监听到的正常的协议交互过程中使用的消息,并在当前协议交互过程中重放它们,对协议的当前交互过程进行攻击。例如,Denning 和Sacco 对NSSK 协议的攻击,就是经典重放攻击的一个著名实例。
(2)在当前回合内攻击中,重放的消息来自协议当前回合,即攻击使用监听到的当前正在进行的协议交互过程使用的消息直接发送给接收方,破坏正常的协议交互过程,使接收方无法做出正确的后续操作,从而达到攻击破坏的目的。
还有一种分类方式是针对攻击者对消息重定向的目的地进行分类,分类如下。
(1)偏转重放攻击:攻击者将重放消息重新定向,发送给不同于原接收者的第三方,发送给原发送者,也称为反射重放攻击;攻击者将重放消息将发送给第三方,即不同于原发送者和原接收方的第三方,也称为重定向攻击。
(2)直接重放攻击:攻击者通过延时的方法(可能涉及不同的协议回合),将消息传送给目的地。
针对不同的网络协议、网络组网模式以及业务系统的逻辑特性,攻击者会选取适用的重放攻击方式进行破坏行为。一般业务系统会采用各类密码技术(或设备)进行安全加固,抵御针对网络或业务逻辑的攻击。一般来说,采用密码技术的防御手段难以抵御重放攻击,因为部分重放攻击方法根本不需要对监听或截取的消息进行解密,直接对获取到的消息进行发送攻击即可,因此需要对密码算法进行改进或增加其他方式以防御重放攻击[1]。
针对重放攻击的特点和攻击方式,防止重放攻击的通用方法是在通信过程中使用不重复数据,使每次协议通信的过程都区别于前一次或后一次。
该方法的优点是发送和接收双方不需要时间同步,双方记住使用过的随机数,如发现报文中有以前使用过的随机数,就认为是重放攻击。它的缺点是需要额外保存使用过的随机数,若记录的时间段较长,则保存和查询的开销较大。
该方法的优点是不用额外保存其他信息,缺点是认证双方需要准确的时间同步。同步越好,受攻击的可能性越小。但是,当系统很庞大、跨越的区域较广时,要做到精确的时间同步并不容易。
加流水号即双方在报文中添加一个逐步递增的整数,只要接收到一个不连续的流水号报文(太大或太小),就认定有重放威胁。该方法的优点是不需要时间同步,保存的信息量比随机数方式小;缺点是一旦攻击者对报文解密成功,就可以获得流水号,从而可以每次递增流水号来欺骗认证端。
针对有两次及以上交互过程的模式,采用挑战应答方式能取得更好的防御效果。一方先产生一个随机数,接收方收到此随机数后再产生一个随机数,将两个随机数发送给对方。接收方一方面确证接收的数据的完整性,另一方面要确认随机数是否为自己之前发送的,以此保证通信过程的连续性和关联性。
实际中,可以将增加随机数的方法和增加时间戳的方法组合使用,这样只需保存某个很短时间段内的所有随机数,且时间戳的同步也不需要太精确。需要说明的是,挑战应答方法在实际中使用得更广泛。
目前应急广播系统采用了SM2、SM3 算法的数字签名机制来进行保护,以此实现接收端对信息发送端的验证和接收到信息完整性的校验,如图1 所示。从系统的部署来看,是在发送端集成了密码机而在接收端集成了验证用的密码模块。应急广播的认证密码模块对于接收的指令的认证是通过认证密码模块完成的[2]。
图1 应急广播消息保护示意
根据应急广播的业务形态,针对重放攻击的模式,标准采用了在应急广播的指令中增加了通用协调时(Universal Time Coordinated,UTC)时间,并且对指令和增加的UTC 做数字签名,以此防御重放攻击。其中,UTC 时间是一个32 bit 的数据,规定该时间因素为单向增加的一组数据,即该数据只能是增量数据,以前一次通过认证的“时间”作为基准,下一次认证请求中的“时间”必须大于该基准时间,等于及小于该时间的认证均被判为非法请求。
此方式可以达到抵御重放攻击的效果,但是针对广电网络的传输方式和业务特点会存在一些问题,即广电网络中采用TS 流等传播方式时,通过网络传输的多包数据或由于路由不同存在后发先至情况,导致接收端认为后续数据非法,从而影响应急广播业务的正常处理。
在终端的密码模块上进行改进设计,增加“短时有限”机制,对接收数据中的时间参数进行有限的容错处理。处理原则是在设置的短时间内,允许后面命令中的“时间”小于前面的时间,前提是从上一次通过认证的“时间”为起始,至目前认证命令的真实时间间隔必须是短时间的,并且此时间对应的指令与前面验证通过的指令是有关系的。设定终端的判断时间为t;n为数据包内时间要素的差值。在某个时间点,如果接收到多个数据包后进行验证的数据包时间要素小于前面验证通过的数据包时间要素,并且两个数据包中时间差值小于n值,这种情况下后面的数据包可以进行正常的验证运算;否则,终端将此包直接丢弃。只有短时的且数据包内的时间要素差值是有限制的,认证请求才被容忍,二者缺一不可。
举例来说:t=5s,n=10。
情况1:假定前次通过认证的“时间要素”值为0x00010000,本次认证中的“时间要素”值为0x00009994,则本次n=6。如果本次收到包的时间与前次通过认证的数据包接收的时间间隔小于5 s,则符合短时有限容忍策略,判为合法(注:符合短时,也符合有限的要求)。
情况2:假定前次通过认证的“时间要素”值为0x00010000,本次认证中的“时间要素”值为0x00009994,则本次n=6。如果本次收到包的时间与前次通过认证的数据包接收的时间间隔大于5 s,则不符合短时有限的容忍策略,判为非法(注:不符合短时的要求)。
情况3:假定前次通过认证的“时间要素”值为0x00010000,本次认证中的“时间要素”值为0x00010000,则直接判为非法(注:不存在同时可能,每条数据或指令时间要素必不相同)。
情况4:假定前次通过认证的“时间要素”值为0x00010000,本次认证中的“时间要素”值为0x00010009,则此数据进行正常处理流程,判为合法(注:符合时间要素正常增长的要求)。
在具体业务场景下,可以根据具体的网络部署情况或传输协议特点设定不同的t与n值。此数据在密码模块初始化时写入,后续业务处理过程中直接使用。根据业务的应用效果,此数值可以进行优化。此数值非常关键,涉及到防重放攻击的抵御效果,因此在密码模块中对此数值需要进行安全保护,需要密钥认证通过后,才能对此数值进行改写。
在实际应用中,终端上的密码模块也可以根据负载情况进行t值和n值的动态变化,即根据前一个t区间验证错误的情况进行统计计算,从而决定n值的变化。这种模式可以很好地应对不同的网络,达到既保证应急广播的处理效率又达到有效防御重放攻击的效果。
应用密码技术可以达到保护业务的目的,但通用的密码技术未必适用于各类业务场景。结合业务特点,优化密码算法和应用模式,才能达到既安全有效又快捷易用的目标。实践表明,采用本文中描述的防重放攻击模式的密码模块,在实际应用中达到了预期目的,对各类应急广播的传输通道都能达到有效的防御效果。