趙云輝
(北京江南天安科技有限公司,北京 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值的變化。這種模式可以很好地應對不同的網絡,達到既保證應急廣播的處理效率又達到有效防御重放攻擊的效果。
應用密碼技術可以達到保護業務的目的,但通用的密碼技術未必適用于各類業務場景。結合業務特點,優化密碼算法和應用模式,才能達到既安全有效又快捷易用的目標。實踐表明,采用本文中描述的防重放攻擊模式的密碼模塊,在實際應用中達到了預期目的,對各類應急廣播的傳輸通道都能達到有效的防御效果。