一種基於SDR實現的被動GSM嗅探

軟體定義無線電(SDR)是一種無線電通信系統,簡單來說,就是通過數字信號處理技術在通用可編程數字信號處理硬體平台上,利用軟體定義來實現無線電台的各單元功能,從而對無線電信號進行調製、解調、測量。SDR架構放棄了傳統無線電電路中所有的硬體單元,包括變頻、混頻、濾波器、放大器、檢波器、解調器等,所有的處理,包括混混頻,濾波,解調等都是用軟體來完成的,完全是一種新的架構和技術。

其實,SDR技術和架構的無線電產品在軍用和商用無線電領域早已廣泛使用,近年來SDR技術已經被應用到了與大眾接觸最為密切的行動電話中了。

使用SDR嗅探監聽GSM網路的通信流量已經不是什麼新鮮事了,只要調到到特定頻率時,我們就可以使用SDR來捕獲無線電波。可捕獲的頻率範圍和帶寬隨不同的SDR設備而不同。本文中,我們將使用最便宜的RTL-SDR來嗅探GSM,RTL-SDR 是一個低廉的家用消費檔次的 DVB-T USB 介面的接收機,這些 DVB-T 接收機基於 Realtek 的 RTL2832U 晶元外加一個諸如 Elonics E4000 一類的高頻頭而構成,價格低廉到 20 到 25 美元的 RTL-SDR,它們無疑是目前最低廉的SDR硬體設備。

在詳細介紹之前,首先看看不同的GSM頻段。GSM是由國際電信聯盟指定的一組由GSM手機運行的預定頻率進行的操作。

從上圖可以看出,標註黃色的那兩個頻段正是印度所使用的GSM,但900頻段的使用國家為8個,1800頻段的使用國家為3個,這意味著其手機用戶要和其他國家的用戶共同使用同一頻段。

為了嗅探到GSM,我們首先需要識別GSM下行鏈路信道,這樣就需要知道你的手機正在運行的頻率,你可以通過獲得手機的絕對無線頻道編號 (Absolute Radio Frequency Channel Number -ARFCN )來獲得它。

ARFCN,是在GSM無線系統中,用來鑒別特殊射頻通道的編號方案,闡述了GSM 無線網路系統的Um 介面上的兩個物理無線電系統鏈路和通道。一個用於上行鏈路信號,一個用於下行鏈路信號。

下面以我使用的摩托羅拉G4為例來進行實例說明,在這款手機中,我可以通過在手機鍵盤上撥*#*#4636#*#*來獲得服務模式。由於對2G(GSM簡稱2G)的分析要比3G或4G要容易得多,所以我將手機切換到2G模式,分析如下所示。

從上圖的畫紅框的部分可以看出,我的ARFCN號是672,這樣就可以使用ARFCN號碼來計算出我的手機運行的確切頻率。通過使用簡單的ARFCN計算器,就可以知道我的手機正在運行的頻率。

現在,讓我們將RTL-SDR調整到特定頻率,並找出我們需要看到的內容。

我們可以清楚地看到該頻率上的GSM數據流,除此之外,我們還會掃描相關的所有GSM頻率,以便我們確認下行鏈路信道。推薦大家使用kalibrate-rtl工具來掃描相關的GSM頻率。

從上圖中,可以看到我的手機的下行鏈路信道,同時,kalibrate-rtl也給我們算出了偏移值,這將有助於你更好地校準你的SDR。

由於SDR接收的數據只是原始數據,所以沒有什麼實際意義。我們可以使用GR-GSM來解碼這些原始數據,並將其處理成有意義的信息。

與此同時啟動wireshark,這樣我們就將開始在wirehark中看到GSM數據包,我們也可以過濾出Gsmtap數據包。

如上圖所示,這是一個系統信息類型3數據包。由於MS在空閑模式下,與網路設備間的聯繫是通過廣播的系統消息實現的。所以藉助這個數據包,網路設備向MS廣播系統消息,使得MS知道自己所處的位置,以及能夠獲得的服務類型,在廣播的系統消息中的某些參數還能用於MS的小區重選。

由於A5演算法是一種序列密碼,它是歐洲GSM標準中規定的加密演算法,用於數字蜂窩行動電話的加密,加密從用戶設備到基站之間的鏈路。A5演算法包括很多種,主要為A5/1和A5/2。其中,A5/1為強加密演算法,適用於歐洲地區;A5/2為弱加密演算法,適用於歐洲以外的地區。所以我們只能看到一些沒有加密過的控制通道。

AUC(鑒權中心)是GSM系統中的安全管理單元,存儲鑒權演算法和密鑰,保證各種保密參數的安全性,向HLR(歸屬用戶位置寄存器)提供鑒權參數。存儲用以保護移動用戶通信不受侵犯的必要信息。AUC一般與HLR合置在一起,在HLR/AUC內部,AUC數據作為部分數據表存在。鑒權參數包括三組:RAND(Random Number,隨機數),SRES(Sign Response,符號響應),Kc(Ciphering Key,加密密鑰)。

不過由於 Ki或Kc永遠不會通過網路進行交換,因此無法通過空中嗅探加密密鑰。此外,Kc會在每次呼叫設置之前更改。這意味著每呼叫一次,就會出現一次不同的加密密鑰。如果我們有足夠強的計算能力,舊版本的A5可能就會被破解。目前已有研究已經通過在雲計算中建立了整個流程來破解A5 / 1加密, Kraken是可以用於此的一個工具。

我們無法使用RTL-SDR捕獲語音數據,因為在通話期間,會發生信道跳頻,而RTL-SDR的帶寬不足以一次捕獲整個範圍。所以,我們需要一個更好的SDR,要具有更多的帶寬,如HackRF或任何SDR設備。HackRF是一款由Michael Ossmann發起的開源軟體無線電外設,支持從30MHz到6GHz,最大帶寬20MHz。

我們的電話是如何被嗅探到的?

1.加密演算法的降級

由於許多舊的手機沒有足夠的計算能力來使用新的加密演算法,所以為了維持它們的運行,運營商必須支持舊的加密演算法,這就造成了即使我們想使用強大的加密演算法但迫於現實,也會被切換到較弱的加密演算法。

2. 有意關閉加密方案

在電信安全漏洞評估中,我們發現有時運營商在網路上的負載增加時會完全關閉加密方案,從而降低流量的載入,以便可以輕鬆容納更多的用戶。

3. 中間人攻擊

中間人攻擊者可以創建偽造的手機發射塔,讓附近的移動用戶使用發射塔,這樣就可以迫使MS根本不使用加密。

4.獲取sim卡的加密認證

在2015年,有消息說,美英間諜機構曾入侵世界最大SIM卡製造商金雅拓(Gemalto)公司,盜取加密密鑰,以便在未獲得許可的情況下獲取手機通信信息。

本文翻譯自:Passive GSM sniffing with Software defined radio - payatu ,如若轉載,請註明來源於嘶吼: 4hou.com/technology/524 更多內容請關注「嘶吼專業版」——Pro4hou

推薦閱讀:

乾貨 | 如何利用csi.exe繞過Windows Device Guard?

TAG:技术分析 | GSM | 移动安全 |