嗨各位,Kazma 又來了!
今天的主題是 Sub-GHz,個人覺得是小海豚最強大的功能之一,所以可能會有三到四天都在介紹這個技術跟他的應用,同時這也是他受到電信管制射頻器材管理辦法限制的原因,沒辦法大量進口,甚至需要簽自用切結書,不能作為商業用途,原文如下:
根據電信管制射頻器材管理辦法第 18 條第 1 項第 2 款:
二、除衛星行動地球電臺及衛星小型地球電臺外,輸入供自用之無線電信終端設備或低功率射頻電機,應填寫自用切結書,切結僅供自用,不作為販賣或其他商業用途,並檢附符合相關技術規範之證明文件;其輸入數量限制如下:
(一)自行攜帶輸入者,一次至多不得逾五部。
(二)郵寄輸入或其他非自行攜帶方式輸入者,一次至多不得逾二部。
(三)同一自然人或法人輸入同廠牌型號,一年內以十部為限。
那也因為能力越大責任越大,所以每天都要放一次資安倫理宣導。
請注意,透過 Flipper Zero 學習的資訊技術與知識,目的在於提升個人的技術能力和資安意識。我們強烈呼籲大家,絕對不要使用所學知識從事任何違法行為。您的合法使用是我們的期望,也是您自身責任的一部分。
圖片來源:https://docs.flipper.net
首先,我們先從這個名詞開始介紹。
GHz 是一種頻率的單位,代表的是千兆赫茲,同時一千兆赫茲等於十億赫茲。而顧名思義 Sub-GHz 代表的就是低於千兆赫茲,也就是說這個名詞本身代表的其實是一個頻率範圍。所以舉一反三有一個 5G 網路中的專有名詞: Sub-6GHz 代表的就是六千兆赫茲以下的頻段,不過這不在今天的討論範圍。
而我們知道光速是一個常數,所以根據光速還有波長跟頻率的關係式我們可以得知,如果使用 Sub-GHz 這種相對低頻率的波段,波長就會相對應得更長,以至於他有以下這些好處:
這也是為什麼使用無線電波比較不容易受到障礙物影響,也跟我們今天的主題--穿牆術扣合。
圖片來源:https://docs.flipper.net
上面這張圖片是 flipper 的 Sub-GHz 選單,快速跟各位介紹上面的功能:
圖片來源:https://docs.flipper.net
Flipper 使用了 CC1101 這款由 Texas Instruments 開發的低功耗無線收發器,還有配備能夠收發五十公尺訊號的無線電天線,這組芯片和天線都是專門設計來處理在 300 MHz 到 348 MHz、387 MHz 到 464 MHz 以及 779 MHz 到 928 MHz 的信號。
我們可以透過這個功能分析目標訊號的頻率。
Flipper Zero 會顯示大於閾值且強度最高的訊號,預設的閾值是 RSSI(Received Signal Strength Indicator)大於 -90 dBm,而 Momentum 把這個 Config 改成可以直接透過左右鍵去調整閾值大小,如下圖所示:
(截圖功能真好用XD)
使用這功能的時候還是要盡可能地靠近裝置跟收發的天線,否則還是會有可能會有很多雜訊或是被干擾。
這功能蠻好用的,我們可以在不知道頻率的情況下,啟用 Hopping 的功能,就會在特定的頻率間反覆跳躍,我們可以從 Read -> Config 去調整這個設定,如下圖:
可以看到 Momentum 開啟 Hopping 的方式會順便調整他的閾值,開啟後也會看到上面的頻率消失,接著讀取的時候就會:
圖片來源:https://images.app.goo.gl/dJ9XwKbZzgJcZrsK8
抱歉,我發現這功能之後就一直很想放這張圖XD
這個選項可以讓我們在讀取的時候消除背景雜訊,移除重複的訊號片段,自動修正一些錯誤。
Flipper 提供我們在掃描訊號時鎖定我們的鍵盤,通常這個功能可能會用在長時間監聽訊號,而要避免誤觸的時候會用到。
在無線通信中,我們需要透過 modulation 把原始數據轉換成無線信號,這樣使得數據可以透過無線電波傳輸。而這過程通常是透過改變無線電波的某個屬性(如幅度、頻率或相位)來攜帶訊息。
而根據剛剛的說明我們可以把 modulation 用屬性歸類成兩種基本的類型,根據帶寬又可以再往下細分:
舉例像是平常車子內聽的電台就是 FM 87.5 MHz 到 108.0 MHz 的頻率段。
而因為 Flipper Zero 不是軟體定義的無線電(Software-Defined Radio,SDR),它無法自動識別和調整接收信號的調製方式。因此,在掃描之前,需要我們手動設置正確的調製模式。如果沒有事先設置正確的調製就無法正確地解調和記錄數據。
因為讀取方法很多,所以這邊舉一種參考。
如果我們的目標訊號是 Flipper 已知協議的話,我們可以透過 Read 來解析訊號,如果無法識別的話可以用 Read_RAW,如果懶得識別頻率可以先嘗試 Hopping:
首先我們可以透過 Frequency Analyzer 來偵測目標訊號的頻率
接著透過 Read 的 Config 去調整我們想收到的頻率,頻率表如下:
圖片來源:https://docs.flipper.net
接著就開讀
圖片來源:https://docs.flipper.net
如果成功捕捉到的話,可以透過判斷是否有鎖頭來確定是否有加密,沒有的話則可以儲存。
圖片來源:https://docs.flipper.net
這個功能讓我們可以手動添加一個虛擬的無線遙控器,直接與接受裝置配對,特別是當我們弄丟原本的遙控器時很實用。
而相比於單純的複製原本訊號,直接跟接收器配對可以讓我們在涉及到需要身份驗證或加密系統時可以讓新遙控器被接收裝置接受和信任。
使用這個功能我們需要先選擇正確的協議,詳細可以參考官方文件:
https://docs.flipper.net/sub-ghz/add-new-remote#3iGlU
圖片來源:https://docs.flipper.net
我們可以到官方文件看到 Flipper Zero 目前支援的裝置和廠商:
https://docs.flipper.net/sub-ghz/supported-vendors
他們也很鼓勵我們如果發現自己的裝置不在列表中可以去官方論壇留下裝置資訊,他們會盡可能地增加裝置覆蓋率。
那有趣的是,這邊官方特別提到:
他說他們可以 decode dynamic 的訊號,只是基於安全原因不給你存而已,那既然韌體是開源的,我們有必要來看一下這部分怎麼寫的,這部分會在之後的文章帶大家深入討論。
儘管 Flipper Zero 可以接收範圍在 300-348 MHz、387-464 MHz 和 779-928 MHz 的所有頻率的信號。但是根據法律和規範,我們只能用它來發射民用許可頻率的信號,以防止干擾重要的通信服務(如緊急服務通信)。
而各地區的限制都有所不同,請各位詳閱官方這部分的文件以避免觸法:
https://docs.flipper.net/sub-ghz/frequencies
其中臺灣許可的發射頻率範圍在:
如果確定發射的頻率在法律許可的範圍後,我們可以到下面的位置解鎖發射限制:
Momentum -> Protocols -> Sub-GHz Bypass Region Lock
OK 今天的 Sub-GHz 基礎介紹大概就到這邊。
而大家有沒有想過如果我們可以用 Flipper Zero 複製隔壁鄰居的車子遙控器或是車庫鐵門,那我們是不是就能夠飛天遁地、橫行無阻、控制世界了。當然沒那麼簡單,但各位又會想,可是路邊的遙控器店老闆不是很輕鬆就能複製家裡的遙控器嗎?所以肯定還是有方法的嘛。沒錯,大家問的問題都很好,明天就會來跟各位揭曉這些問題的答案,請各位敬請期待!