郭 偉,閆連山,王小敏,陳建譯,李賽飛
(1.西南交通大學 信息科學與技術學院,四川 成都 610031;2.廣州鐵路(集團)公司 電務處,廣東 廣州 510088)
中國列車控制系統第三級CTCS-3 (Chinese Train Control System of Level 3)是我國針對300 km/h及以上速度的客運專線所規劃和制定的列控技術標準體系。有別于以往局限在專網內部的傳輸方式,CTCS-3級列控系統是以無線閉塞中心RBC (Radio Blocking Center)生成相應的列車行車許可命令,通過GSM-R(GSM for Railway)傳送至列車,并以此控制列車運行,因此對數據傳輸的安全性有極高要求。作為面向鐵路應用的專用移動通信系統,GSM-R的安全機制完全繼承自公網GSM系統,而后者在實際使用中已經暴露出了諸多安全缺陷,無法滿足列控系統信號安全通信的需求[1-2]。為此,我國參考歐洲列車控制系統ETCS (Europe Train Control System)系列規范[3-5],于2008年制定了《CTCS-3級列控系統規范:鐵路信號安全通信協議-Ⅱ》(RSSP-Ⅱ,Railway Signal Safety Protocol-Ⅱ)[6]及其配套子協議[7],規定了信號安全設備之間通過開放式網絡進行安全相關信息交互的功能結構和協議。RSSP-Ⅱ協議的層次如圖1所示,其中消息鑒定安全層和安全應用中間子層被用于提供安全服務。
消息鑒定安全層MASL (Message Authentication Safety Layer)的主要功能是為通信報文附加消息鑒別碼MAC (Message Authentication Code),從而實現對通信報文的數據源鑒別及完整性保護,防范可能的偽造和篡改。MASL層所采用的MAC方案(以下簡稱為MASL-MAC)是基于ISO/IEC 9797-1標準[8]所給出的CBC-MAC建議方案3(通常稱為ANSI Retail MAC)改進而來,底層分組密碼為DES算法。安全應用中間子層SAI (Safe Application Intermediate sub_layer)的主要功能是為通信數據包添加序列號SN(Sequence Number)、執行周期EC(Execution Cycle)計數器或三重時間戳TTS(Triple Time Stamp)校驗標志符,防范對通信數據包的重復、亂序、插入、刪除和延遲。結合SAI層所附加的上述校驗標志符,改進后的MASL-MAC方案可以較好地抵御針對ANSI Retail MAC的各類已知攻擊。
作為我國CTCS-3級列控通信系統的核心安全協議,RSSP-Ⅱ協議的安全性對高速鐵路的運營安全起到了至關重要的作用,而消息鑒別碼方案又可被視為整個協議安全功能的核心。本文將從RSSP-Ⅱ協議所采用的消息鑒別碼方案入手,對RSSP-Ⅱ協議的安全性展開研究。
消息鑒別碼作為密碼本源之一,是實現數據完整性和數據源鑒別的重要工具。在針對MAC方案的分析中,通常包括三方,即消息的發送者、接收者以及敵手。發送方和接收方將使用同一個共享密鑰,并依據同樣的MAC算法,分別計算得到一段認證標簽(通常稱為MAC值或Tag),接收者通過比對收到的標簽和計算得到的標簽,即可以判斷消息是否被篡改。敵手的目標則是欺騙接收者接收并非由發送者所發送的消息。依據攻擊所用的消息,敵手的攻擊條件可以分為[9]:
(1)已知明文攻擊:敵手能夠得到一些消息及對應的MAC值。
(2)選擇明文攻擊:敵手能選擇一些消息,并得到對應的MAC值。
(3)自適應選擇明文攻擊:攻擊者先選擇一個消息,并得到相應的MAC值,下一個消息的選擇依賴以前的消息和MAC值。
敵手通常可以通過在線監聽等方式,輕松掌握大量已知明文及其MAC值,而選擇明文攻擊則要求敵手能夠有機會使用加密機,這一條件在真實場景中極難實現。
敵手的攻擊目標包括:
(1)存在性偽造:敵手在不知道密鑰的情況下,可以構造新消息的MAC值,但無法指定消息的內容,因此這一消息可能沒有任何意義。
(2)選擇性偽造:敵手可以確定其選擇消息的MAC值。
(3)通用性偽造:敵手可以計算任意消息的MAC值。這一攻擊較前兩種情況更具威脅。
(4)密鑰恢復:敵手一旦成功恢復出密鑰,即可進行任意偽造。因此密鑰恢復比偽造攻擊更具破壞性,理想情況下,密鑰恢復具有窮搜索攻擊的復雜度。
在對實際系統的攻擊中,存在性偽造所得到的消息可能毫無意義,因此通常無法構成直接威脅,但如果敵手能夠在已知明文條件下,在當前計算邊界條件內實現通用性偽造或密鑰恢復,則將對方案安全性構成致命威脅。
CBC-MAC算法是一種以分組密碼算法為核心、基于密碼分組鏈接鏈CBC (Cipher Block Chain)模式構造的消息鑒別碼。1999年,CBC-MAC方案成為ISO/IEC 9797-1國際標準[8],并給出6種推薦結構。RSSP-Ⅱ協議所采用的MASL-MAC方案即來源于其中的第3種推薦結構(通常被稱為ANSI Retail MAC或簡稱Retail MAC),并進行了小幅改進。ANSI Retail MAC實際上是在原標準CBC-MAC結構的尾部,額外增加了一輪DES解密和一輪DES加密操作,并使用不同密鑰分別完成加密和解密。MASL-MAC則在Retail MAC基礎上,在最后一輪加密中采用了一個全新的密鑰,從而將密鑰個數從2個增加到3個。兩種算法的詳細描述如下,結構分別如圖2(a)和圖2(b)所示。

(a)ANSI Retail MAC

(b)MASL-MAC圖2 ANSI Retail MAC和MASL-MAC結構示意圖
Retail MAC的密鑰由2個56位的DES密鑰組成,即K=(K1,K2),輸入消息X則被分割為64 bit的塊D1,D2,…,Dq,若切割后的最后一個消息塊Dq的長度不是64 bit,則用0補齊。使用DES算法,以密鑰Ki加密64 bit的消息塊Y的過程表示為DES(Ki,Y),解密過程表示為DES-1(Ki,Y),⊕表示按位異或運算,最后輸出的MAC值由此得出。
( 1 )
Retail MAC的輸出變換定義為
g(x)=DES(K1,DES-1(K2,x))
( 2 )
MASL-MAC算法的密鑰由3個DES密鑰組成,即K=(K1,K2,K3)。與標準的Retail MAC的區別在于末尾的輸出變換函數g′(x)增加了一個額外的密鑰K3替代原有加密密鑰K1,g′(x)的定義如下
g′(x)=DES(K3,DES-1(K2,x))
( 3 )
目前對于CBC-MAC算法的攻擊思路,其基本思想均來源于文獻[10]提出的區分迭代MAC和隨機函數的通用方法,即利用生日攻擊原理得到一對MAC碰撞消息(即一對擁有相同MAC值的不同消息),并以此識別MAC的內部碰撞。在此基礎上,文獻[11]進一步提出了一個針對基于DES分組密碼的Retail MAC方案的密鑰恢復攻擊,這一攻擊需要大約232.5個已知“明文/MAC”和3·256次離線計算(其中恢復K1需要257次MAC操作,恢復K2需要256次MAC操作),來恢復出全部的112 bit密鑰。針對Retail MAC的另一類攻擊是選擇性偽造,典型方案包括文獻[12,13]所提的偽造攻擊等。此類攻擊需要構造大量特定格式的選擇明文,從而依據生日悖論得到一對MAC碰撞消息,并進行后續的拼接偽造。此類偽造攻擊無需大量的計算,但卻需要由敵手選擇特定的明文,并得到相應的MAC值,所需的選擇“明文/MAC”對數目約為232.5。在實際環境中,這一攻擊條件極難實現。
有鑒于文獻[11]的密鑰恢復攻擊對Retail MAC方案帶來的威脅,MASL-MAC額外增加了一個密鑰K3,使得恢復密鑰K2和K3所需的計算量增加到了2112,因而總的離線MAC運算數量也提高到了257+2112,超出了目前的計算能力邊界。
此外,RSSP-Ⅱ協議還在SAI層為消息報文額外添加了唯一序列號、EC計數器或三重時間戳等校驗標志符[6]。其中EC和TTS這兩種校驗技術互斥,使用序列號和EC計數器防御機制時的SAI幀頭如圖3所示,使用序列號和TTS防御機制時的SAI幀頭如圖4所示。上述機制可以較好地防止對于消息的重放、亂序、插入和刪除。其中EC計數器或TTS機制,配合協議中對消息的傳輸延遲和應答延遲最大值的限制,可進一步保證消息的新鮮性與及時性。這些校驗標識符的存在,使得敵手即使掌握大量選擇“明文/MAC”對,并以此獲得了一對碰撞消息,但按照文獻[12,13]的攻擊方法,通過簡單拼接得到偽造消息,其校驗標識符依然無法通過接收端的合法性檢驗。

圖3 使用TTS時的SAI幀頭結構

圖4 使用EC時的SAI幀頭結構
表1比較了Retail MAC和MASL-MAC對已知攻擊方案的抵御能力。為敘述方便,此處引入文獻[8]對MAC攻擊復雜度的定義,使用四維數組(a,b,c,d)表示敵手所需要的資源, 其中:a表示所需分組
加密算法的離線MAC運算次數;b表示已知明文攻擊條件下,所需的已知 “明文/MAC”數目;c表示選擇明文攻擊條件下,所需的選擇“明文/MAC”數目;d表示所需的在線MAC驗證次數。

表1 MASL-MAC與Retail MAC對典型攻擊方案的抵抗能力
綜上所述,附加了SN、EC計數器或TTS時間戳等校驗標志符的MASL-MAC方案可以較好地抵御已知的各類攻擊方案。
根據MASL-MAC算法的特點,提出一種全新的部分密鑰恢復-偽造攻擊方案。該方案共分為3個步驟,前兩個步驟沿用了文獻[11]提出的密鑰恢復攻擊思想,同樣利用生日攻擊方法得到一對MAC碰撞消息,以此識別MAC內部碰撞并恢復出密鑰K1。步驟3中,本文所提方案并未按照文獻[11]的密鑰恢復攻擊思路去繼續恢復剩余的密鑰K2和K3,而是嘗試利用密鑰K1得到合法的偽造報文。完整的攻擊步驟詳述如下:
步驟1尋找碰撞消息對。通過在線監聽,積累大量的已知“明文/MAC”對,嘗試從中找到一對MAC值碰撞的消息對M和M′,即
MAC(K1,K2,K3)(M)=MAC(K1,K2,K3)(M′)
M≠M′
( 4 )
對于輸出摘要長度為64 bit的MAC算法,該攻擊大約需要232.5組已知明文(即“明文/MAC”對),根據生日悖論,成功率約為0.63[11]。

MAC(K1,K2,K3)(M)=DES(K3,DES-1(K2,Hq))

因此,敵手可以通過比較消息M和M′的最終輸出MAC值是否相等,恢復出正確的密鑰K1,此步驟需要完成257次離線MAC運算。
在恢復出密鑰K1以后,文獻[11]提出的密鑰恢復攻擊將繼續嘗試窮舉得到剩余的密鑰。因此對于Retail MAC,恢復剩下的密鑰K2需要256次MAC運算,而對于MASL-MAC,恢復剩下的密鑰K2和K3,則需要2112次離線MAC運算。本文所提方案則無需恢復密鑰K2和K3,而是直接利用密鑰K1進行在線偽造。
步驟3在線偽造。敵手在掌握了正確的密鑰K1后,即可根據在線截獲的任意“消息/MAC”對,實時偽造出任意數量的擁有相同MAC值的偽造消息。
例如,敵手通過在線竊聽,得到一個包含s個分組的消息M1=(D1‖D2‖…‖Ds)及其對應的MAC值MAC(K1,K2,K3)(M1)。由于敵手已經通過步驟1和步驟2得到了正確的密鑰K1,此時即可根據式( 1 )重新計算消息M1對應的中間變量Hs的值,即
此時,必然有
MAC(K1,K2,K3)(M1)=DES(K3,DES-1(K2,Hs))
攻擊者可重新構造一個包含t個分組的消息


MAC(K1,K2,K3)(M1)=MAC(K1,K2,K3)(M2)
( 5 )
那么必然有

( 6 )

( 7 )

( 8 )

( 9 )
則此時式( 5 )必然成立。步驟3原理示意圖如圖5所示。

圖5 攻擊步驟3原理示意圖
由此,敵手無需繼續恢復密鑰K2和K3,即可成功得到一個與消息M1具有相同MAC值的偽造消息M2。需要注意的是,偽造消息M2除了一個消息分組(即8 Byte數據)需要根據式( 6 )~式( 9 )計算得到,其余分組內容均可由敵手任意選擇,且計算消耗僅相當于單次MAC運算。上述攻擊中,步驟1和步驟2的復雜度與文獻[11]的密鑰恢復攻擊完全相同,而在步驟3中,每替換一條報文,計算消耗僅相當于一次MAC操作。因此,本文針對MASL-MAC方案所提出的部分密鑰恢復-偽造攻擊的總攻擊復雜度為(257, 232.5, 0, 0),這一復雜度已處于目前的計算能力邊界之內。
基于所提攻擊方案的上述特性,敵手可以通過中間人攻擊等方式,截獲在線發送的報文,并保持原報文中的序列號、EC計數器或TTS等校驗標志符不變,隨后可根據報文格式要求,任意偽造用戶數據,而其中僅有一個分組的8 Byte數據需要通過計算得到。由于偽造過程的計算消耗極低,這也意味著相應報文替換操作所帶來的延遲也極低,因此攻擊的延遲將不會對三重時間戳或EC計數器等校驗標志符的檢驗造成影響,可實現對RSSP-Ⅱ協議所傳輸報文數據的實時在線偽造攻擊。
為了方便進一步理解本文所提攻擊方案,并驗證其正確性與可行性,以下給出一個仿真攻擊示例。假設實際系統采用的密鑰KSMAC為(K1,K2,K3)
K1=0×00 01 02 03 04 05 06 07
K2=0×07 06 05 04 03 02 01 00
K3=0×00 10 20 30 40 50 60 70
64 bit密鑰中,每字節的最高比特為奇偶校驗位,在運算中會被忽略掉,對加密結果無影響,因此實際密鑰長度為56 bit。
表2給出了一個在未知密鑰K2和K3情況下,如何根據原始消息包構造偽造信息的示例,其中假設消息包的SAI層使用了SN和EC作為校驗標志符(幀頭結構如圖4所示)。


=0×00 00 00 00 00 00 01K=0×00 00 00 00 00 00 02

本文所提攻擊方案的成功率,實際完全取決于敵手在第一階段的數據積累過程中能否成功得到一對MAC碰撞消息。理論上,成功收集232.5個“明文/MAC”對,將有0.63的概率得到一對MAC碰撞消息,但在實際環境中,這一條件幾乎不可能實現。主要是因為RSSP-Ⅱ協議共定義了3個密鑰層級[14],從高到低分別是傳輸密鑰KTRANS、驗證密鑰KMAC和會話密鑰KSMAC,而本方案攻擊的對象僅為最底層的會話密鑰。RSSP-Ⅱ協議規定每次建立安全連接之前,通信雙方都需要重新協商得到新的會話密鑰,而通信斷線和RBC切換等情況都將導致重新建立安全連接,因此會話密鑰KSMAC的生存周期相對較短。與此同時,本文所提攻擊方案的步驟1所要求收集的“明文/MAC”對,必須是由同一會話密鑰所生成。一旦會話密鑰變更,則必須重新開始數據的積累。文獻[15,16]討論了CBC-MAC結構在生日攻擊情況下的理論安全界,借用這一結論,表3給出了在不同數量已知明文情況下,找到一對MAC碰撞的理論概率。

表3 不同已知明文數量情況下的攻擊成功概率
在表3中,221(約210萬條消息)是NIST[17]所規定的64 bit MAC算法密鑰生存周期內的最大消息處理數目。在此情況下,預期的碰撞發生概率將低于百萬分之一,可滿足一般安全場景的需求。根據CTCS-3系列標準,RBC與列車之間在密鑰生存周期內所需的最低通信數據量約為214,遠低于NIST所給出的安全邊界,這也意味著通常情況下,RSSP-Ⅱ協議仍能提供足夠的安全防護能力。然而,在某些特殊情況下,通信數據量是否可能超出或接近221的理論安全邊界,仍有待進一步驗證。
《鐵路通信安全協議RSSP-Ⅱ》是我國CTCS-3級列控通信系統的核心安全協議,其安全性對高速鐵路的運營安全起到了至關重要的作用。然而長期以來,學界對于這一協議的安全性缺乏足夠的理論研究成果。本文對RSSP-Ⅱ協議中的核心消息驗證碼算法MASL-MAC方案的安全性進行了研究,并借鑒文獻[11]所提密鑰恢復攻擊的原理,提出一個全新的“部分密鑰恢復-偽造”攻擊方案,給出了一個仿真攻擊示例。結果顯示,敵手在掌握232.5數量級的已知明文前提下,只需257次離線MAC計算,即可實時偽造任意數量的消息,且其校驗標識符可成功通過接收端的檢驗,攻擊成功率約為0.63。盡管在真實系統中,攻擊者在密鑰生存周期內通常無法得到足夠的已知明文以發起實際攻擊,但MASL-MAC方案的安全缺陷仍應引起學界和相關標準制定方的足夠重視,建議盡快采用國際或國內標準化的128 bit分組密碼(如AES或SM-4)替換現有的64 bit分組密碼DES,以進一步提高RSSP-Ⅱ協議整體的安全性。
參考文獻:
[1]劉亞林,范平志.GSM-R雙向認證與端到端加密[J].鐵路通信信號,2005,41(4):32-34.
LIU Yalin,FAN Pingzhi.Bi-directional Authentication and End-end Encryption in GSM-R[J].Railway Signalling & Comm,2005,41(4):32-34.
[2]楊義先,鈕心忻.無線通信安全技術[M].北京:郵電大學出版社,2005.
[3]CEN.EN 50159-2:Railway Applications-Communication,Signaling and Processing Systems-Part2,Safety Related Communication in Open Tansmission Systems[S].2001.
[4]ERTMS.ETCS Specification-Class 1 Subset-037:Euroradio FIS V2.3.0[S].2005.
[5]ERTMS.ETCS Specification-Class 1 Subset-098:RBC-RBC Safe Communication Interface V3.0.0[S].2012.
[6]中華人民共和國鐵道部.CTCS-3級列控規范:RSSP-Ⅱ鐵路信號安全通信協議V1.0[S].北京:中國鐵道出版社,2010.
[7]中華人民共和國鐵道部.CTCS-3級列控系統無線通信功能接口規范V1.0[S].北京:中國鐵道出版社,2010.
[8]ISO.ISO/IEC 9797-1:Information Technology-Security Techniques-Message Authentication Codes(MACs)-Part 1:Mechanisms Using a Block Cipher[S].1999.
[9]吳文玲,馮登國,張文濤.分組密碼的設計與分析[M].2版.北京:清華大學出版社,2009.
[10]PRENEEL B,OORSEHOT PC V.MDx-MAC and Building Fast MACs from Hash Functions[C]//Proceedings of Advances in Cryptology-CRYPTO 1995.Berlin:Springer Berlin Heidelberg,1995:1-14.
[11]PRENEEL B,OORSEHOT PC V.Key Recovery Attack on ANSI X9.19 Retail MAC[J].Electronics Letters,1996,32(6):1 568-1 569.
[12]BRINCAT K,MITEHELL C J.New CBC-MAC Forgery Attacks[C]//Information Security and Privacy.Berlin:Springer Berlin Heidelberg,2001:3-14.
[13]JIA K T,WANG X Y,ZHENG Y,et al.Distinguishing and Second-preimage Attacks on CBC-like MACs[C]//Cryptology and Network Security.Berlin:Springer Berlin Heidelberg,2009:349-361.
[14]ERTMS.ETCS Specification-Class 1 Subset-038:Off-line Key Management FIS V2.3.0[S].2010.
[15]NISHIMURA K,SIBUYA M.Probability to Meet in the Middle[J].Journal of Cryptology,1990,2(1):13-22.
[16]BELLARE M.The Security of the Cipher Block Chaining Message Authentication Code[J].Journal of Computer and System Sciences,2000,61(3):362-399.
[17]NIST.NIST Special Publication 800-38B.Recommended for Block Cipher Modes of Operation:the CMAC Mode for Authentication[S].2005.