航空ACARS系統接收解碼與其安全性
*本文作者:OpenATS,本文屬 FreeBuf 原創獎勵計劃,未經許可禁止轉載。
MH370 出事之後,伴隨著這個航班的話題一直是熱門,航空的安全問題也引起了全球人們的關注。事發之後,英國Inmarsat公司提供了MH370飛機與衛星的握手資料,並提供了技術支援,對飛機可能失事的位置進行了估算。
Inmarsat為英國衛星電信公司。此公司所經營的商業通訊衛星,無論在航海、航空、通訊都有著廣泛的應用,目前已經發展到第五代Inmarsat衛星。Inmarsat所有衛星分佈在距離地球35700km左右的地球同步軌道上,屬於高軌道衛星,通訊覆蓋範圍非常廣,一直都是船舶在大海中與外界通聯的重要通訊衛星。其實不僅僅在海事領域,航空領域也有著重要的應用。很多人知道飛機在飛行的時候有一個ADS-B自動報告系統,不斷髮送自己的實時位置,這個系統是防撞系統的一部分,而另一個比較重要的系統便是ACARS。ACARS是通訊定址報告系統,是飛機與航空公司通訊的一個重要途徑。此係統會將飛機的4D資料(經緯度、海拔、速度等)還有各種感測器資料經過此鏈路傳送給航空公司,讓航空公司實時得到飛機的一些資料,比如發動機健康狀態、飛機艙門的開啟關關閉狀態等等資訊,對飛機進行維護和排程等工作。
MH370跟衛星通訊的便是ACARS服務,ACARS的通訊鏈路有HF、VHF、L波段三條鏈路,其中VHF一般為近地時使用,由於VHF波段的特性,傳輸距離受到限制,HF在此方面會彌補一些不足。當飛機遠離大陸的時候,比如跨海洋飛行,就只能靠L波段的衛星通訊鏈路來與地面控制中心進行聯絡。飛機可以通過Inmarsat衛星提供的AERO鏈路進行短訊息、語音還有自動報告系統的相互通訊。其飛機到衛星的上行頻率為:1545~1547MHz之間,衛星與地面站的下行鏈路採用的為C波段3.6GHz。
當然,租用衛星鏈路的費用是非常昂貴的。事發當時,MH370的衛星服務已經過期,所屬航空公司沒有續費,按照常理來說,MH370是沒有衛星通訊資料的。但是,此係統有個重要特性,那就是衛星載荷屬於透明轉發。簡單來說,飛機到衛星的資料,衛星是不經過處理的,直接變頻以C波段3.6GHz的頻率大功率下傳,而地面站會不斷接收訊號後,進行解調和解碼工作,得到飛機發送的原始資料並存儲到資料庫中。當系統對資料進行檢索,如果發現某飛機並沒有開通服務或者服務到期沒有續費後,便不會把這些資料傳送給航空公司。所以Inmarsat公司完全沒有責任提供MH370的資訊,而事發後,Inmarsat公司對MH370提供了原始資料支援,從資料庫中調取了MH370與衛星通訊的資料,與MH370通訊的衛星便是位於東經64.5°附近的Inmarat3-F1衛星,此衛星為Inmarsat第三代通訊衛星,於1996年發射,重量為2068kg。
以下是馬來西亞政府給失聯人員親屬報告中公開的衛星資料,報告並非衛星原始資料,而是經過篩選出一些有用資訊的資料。
真正的衛星原始資料(來源Inmarsat公司某高管):
在搜尋MH370的時候,搜尋隊唯一可靠的資料參考便是這份衛星資料,可以根據資料大概推算出飛機失事的時間。我們可以看到最後一次飛機通過AERO的R通道傳送握手資料包的時間為UTC 0:19分,而後續再也沒有跟衛星進行通訊。MH370飛機的AES ID為35200217 ,澳大利亞地面站的GES ID為305。搜尋隊根據衛星資料中的時間、BFO、BTO資料,來進行粗略的飛機飛行路徑估算,向著可能墜毀的方向進行了大面積的搜尋,最後結果是大家眾所周知的:一無所獲。
那麼什麼是BTO呢,BTO(Burst Timing Offset,瞬時時間偏移)就是訊號由飛機發送後,到達衛星產生的時間偏差。由於飛機發送握手資料時,會附帶上傳送資料的時間,這個時間是非常精確的,取自飛機上GPS授時系統。而無線電的傳輸速度為固定的光速,這樣就可以根據BTO的資料,大概計算出飛機到衛星之間的距離。
BFO(Burst Frequency Offset,瞬時頻率偏移),簡單來說就是衛星接收到的頻率與標準頻率產生的頻率偏移量。為什麼會產生偏移呢?這裡牽扯的知識就是著名的多普勒頻移,可能都多少了解些多普勒頻移,常用的例子就是火車由遠至近產生的聲音變化,也就是所說的紅移和藍移。在無線電通訊中,多普勒頻移為非常常見的現象。應用範圍也非常廣泛,比如多普勒雷達。飛機在飛行時,速度會非常快,這時候會產生一個隨飛機速度變化而變化的頻移現象。根據多普勒頻移計算公式,由於發射頻率f,無線電傳播速度C還有頻率偏移 △f都為已知,飛行速度可以估算,可以計算得到飛機相對於衛星位置的餘弦角度,再結合別的資料進行了推算,並且做了大量飛機飛行資料的對比,目前推測出了飛機可能墜毀於印度洋。
其實,Inmarsat3-F1的衛星軌道並非是固定不變的,Inmarsat3-F1這顆衛星的軌道相較於赤道平面傾斜角度大概為4.94°,這就意味著它的軌道平面跟赤道並非完全平行。也就是說,隨著時間變化,它在地面的垂直投影會呈現一個以赤道為中心的南北移動的8字形,衛星也是在以一個相對於地面較小的速度的移動。所以在計算時也要考慮這部分資料,並且飛機處在一個立體位置,飛機的高度上升下降都會造成多普勒頻移現象。
在事發之後,英國科學家Duncan I. Steel 在他的自己網站上( http://www.duncansteel.com/ ),根據公開的一些資料,根據自己的知識對MH370可能飛行方向做出了非常詳細的計算和模擬,對這些計算和推算感興趣的同學可以去鄧肯的網站看一下他的文章。
回到前面提到的ACARS服務,ACARS在VHF段根據不同地區和國家的頻率而不同,我國大陸的頻率在131.450MHz,飛機在此頻率上傳各種感測器的資訊。國內提供航班實時資訊的某軟體就是採用了此係統資料,包括飛機關閉艙門、進入滑行狀態等等都在ACARS系統中有著詳細的定義,他們的資料主要來源是通過從航空公司購買。
ACARS採用的調製方式為MSK,與傳統的MSK編碼略有不同,採用1200Hz和2400Hz對報文進行編碼,以1200Hz的正半波表示0,負半波表示1,以2400Hz相位π的正弦訊號表示0,以2400Hz相位0的正弦訊號表示1。
已經有不少軟體可以直接對其訊號進行解調和解碼工作,對141.450MHz訊號進行了採集和解碼。在VHF頻段我們使用Acarsd軟體進行了解調和解碼便得到了原始的ACARS資料:
Inmarsat衛星針對航空系統的服務叫做AERO服務,AERO分為了AERO-L、AERO-H 、AERO-H+、 AERO-C等不同業務,提供了語音、短訊息、傳真、資料等業務。ACARS除了承載著航空ATS(空中交通服務)系統外,還承載著航空公司運營控制(AOC)和航空公司行政通訊(AAC)訊息。
衛星到飛機的返向鏈路同樣工作於L波段,這方面的接收解碼工作非常簡單,L波段的下行訊號非常強,甚至可以使用GPS天線改造一下濾波器便可以順利接收,下面為使用Airspy的接收頻譜,就不放出解碼資訊了。
針對衛星下行到地面站的資料,目前還國際上還沒有多少人接收成功。本人搭建了一個接收環境用於驗證。因為頻率為3.6GHz,採用了很久之前中星六號衛星電視的高頻頭,其中有少部分頻率覆蓋範圍為3.4~4.2GHz,本振頻率為5150MHz,剛好涵蓋此頻率。之前的C波段高頻頭為線極化,而衛星下行訊號為右旋圓極化,直接接收會損失3dB。所以做了一個極化片,這樣高頻頭可以接收圓極化訊號。而高頻頭中含有22K開關,電壓跟極化方向一定要對應。高頻頭的阻抗為75歐姆,使用了一個75歐姆轉50歐姆的轉換器,防止訊號損失較多。在北京,成功接收並解碼來自太平洋上空的Inmarsat4-F1(140.5°E)衛星的AERO下行訊號,可以計算得到兩個衛星下行訊號頻率大概為3614MHz左右。
用JAERO軟體解碼後可以得到飛機與地面站通訊的一些短訊息和通訊資訊。
ACARS作為航空系統中的一個重要的組成部分,有著非常重要的作用。考慮到航空系統中的鏈路相容性和緊急情況的問題,大部分用的是未加密通訊,也同時帶來了相應的隱患。在2013年荷蘭HITB黑客大會上,其中一個議題就是講傳送偽造飛機的ACARS資料達到控制飛機的目的。ACARS是未經過任何加密的,任何人都可以竊聽和偽造資料,這並不意味著僅僅靠偽造ACARS資料就可以將飛機進行控制,作為飛機駕駛員的操作標準是,當ACARS與空管命令產生衝突時,以空管命令為準,或者通過語音電話核實。當然,語音電話也是可以偽造的,技術門檻要更高一些。我相信作為一名真正的黑客,是不會以飛機為目標進行破壞行為的。
幾個月前,德國總理默克爾的飛機在飛往參加G20峰會的路上,出現系統故障,導致飛機緊急返回的情景。在關鍵時刻,機組人員只能通過衛星電話與地面控制中心取得聯絡,安排返程和降落。自從MH370事件之後,人們充分意識到了在關鍵時刻衛星通訊的重要性,國際民用組織(ICAO)推出新的標準,讓民航所有飛機飛行員每15分鐘報告一次位置。
衛星通訊作為偏遠地區和遠離大陸地區的唯一可靠的通訊方式,承載著眾多人的安全,隨著衛星通訊的加快發展,相信隨著航空ATN網路的推進,飛機失蹤這類事情不會再次重演,航空管理系統也會越來越完善。
*本文作者:OpenATS,本文屬 FreeBuf 原創獎勵計劃,未經許可禁止轉載。