無線鍵鼠監聽與劫持

管理員賬號

2017-01-19

小編說:鍵盤是生活中最常見的硬件之一,無線鍵鼠由于其方便美觀受到很多人的青睞,那么它的安全性如何呢?面對攻擊我們又如何防護呢?本文選自《硬件安全攻防大揭秘》。

1.無線鍵鼠的興起

鍵盤連接到計算機有多種方式,有線鍵盤鼠標在生活中最常見,適用范圍也很廣泛,但有線連接不僅對操作距離有限制,而且給攜帶造成了不便。不僅如此,繁雜的線纜還很容易把桌面弄得凌亂不堪。無線鍵鼠非常好地解決了上述問題。無線鍵鼠又分為藍牙類型和2.4GHz 類型,文中所指的無線鼠標一般指2.4GHz 類型。值得注意的是,雖然藍牙鍵鼠的工作頻段也是2.4GHz 頻段,使用的卻是藍牙通信協議,符合藍牙標準。而2.4GHz 類型的鍵鼠主要指利用專屬無線協議開發的無線產品。2.4GHz 類型的無線鍵鼠,一般在計算機的USB 接口處插上一個適配器,鼠標和鍵盤通過電池供電。

2.無線鍵鼠的基本原理

無線鍵鼠與有線鍵鼠的主要區別在于信號傳輸方式。有線鍵鼠利用導線傳輸信息,而無線鍵盤利用無線電傳輸信息。早期的無線鍵盤使用27MHz 的頻段,當時的無線接收器相對現在的集成芯片來說要大得多。目前大多數產品都工作在2.4GHz 的ISM(工業、科學、醫療)頻段。下面我們大致介紹無線鍵盤的工作原理。當按下鍵盤時,鍵盤內部的單片機利用矩陣掃描的原理檢測到是哪個按鍵按下了,相應按鍵有相應的編碼;單片機利用無線收發模塊把按鍵信息通過無線電傳播出去;電腦端插在USB 接口上的適配器收到相應的數據后會通過USB 向電腦操作系統傳輸按鍵的輸入信息。這樣就完成了一次按鍵信息的傳送,下面將詳細介紹無線通信的硬件部分和通信數據部分。

3.硬件部分

如果想真正了解鍵盤的構造、基本原理等信息,拆解是非常直接有效的方法。

上圖為某無線鍵盤的拆解圖。右下部分是一個電池槽,紅色的線是一根電源線,為單片機和無線模塊供電。目前市場上最常見的就是這種薄膜式鍵盤。薄膜式鍵盤取代機械鍵盤的原因并非機械鍵盤的品質不夠好、手感不佳。機械鍵盤的手感、使用壽命都要優于薄膜鍵盤,只是因為成本過高而逐漸退出市場。最近因更追求產品的品質,機械鍵盤又逐漸流行起來。

薄膜式鍵盤內部共分三層,實現了無機械磨損,其特點是低價格、低噪音和低成本,已占領市場絕大部分份額。我們現在經常使用的就是薄膜鍵盤。薄膜式鍵盤架構很簡單,除了上下蓋、鍵帽之外,拆開鍵盤之后,還會看到橡膠帽(但事實上現在都是用硅膠制成)、三片薄膜、電路板,以及電路板上的IC。再檢視薄膜的話,還可以看到導電的印刷涂料。薄膜式鍵盤的原理相當簡單,三片薄膜中,最上方為正極電路,最下方為負極電路,中間為不導電的塑料片。

接著,在上方放按壓模塊(通常包括鍵帽、鍵帽下方活動模塊,以及橡膠帽),當手指從鍵帽壓下時,上方與下方薄膜就會接觸通電,完成導通。

然而,我們更關注的是它的射頻部分。也就是它采用了哪款芯片,完成對數據的傳輸。這樣我們才能更方便地找對方向進行研究。

上圖為無線鍵盤的射頻部分,用的是Nordic 公司設計的nRF24L01 芯片。黑色方塊即為該芯片,周圍是該芯片正常工作所需的外圍器件,例如電容、電阻等器件。左邊黃色蛇形的圖案是PCB 天線。它是利用印制電路板上的導線作為天線的一種方式。這種天線的好處是相對于外置天線體積更小,而且更廉價,但缺點是距離較短,適用于對距離沒有嚴格要求的地方。這款無線收發芯片是了解無線鍵鼠通信基本原理的關鍵部分,有助于我們對無線鍵盤的研究,下面將介紹該芯片的一些基本情況。

nRF24L01 是Nordic 公司設計的一個具備協議解析功能的單芯片無線收發器,適合低功耗的無線應用場景。nRF24L01 工作在全球開放ISM 頻段(工業、科學和醫用頻段),頻率范圍內2.400GHz~2.4835GHz。因為nRF24L01 僅僅是一個無線收發器,沒有集成單片機,所以在使用時需要配合單片機和少量的外圍器件工作。我們可以通過SPI 接口對nRF24L01 進行操作和配置。通過SPI 接口可以讀寫nRF24L01 內部的寄存器,完成對其的配置和其他所有的操作。

該無線設備采用GFSK 調制方式。用戶可以修改無線設備的信道、輸出功率和數據速率。nRF24L01 支持三種速率250kbit/s、1Mbit/s 和2Mbit/s。目前應用廣泛的是2Mbit/s 的數據傳輸速率。

下圖所示為Nordic 公司官方給出的電路參考設計原理圖。大多數公司都是據此進行開發的,除非一些公司對某些方面有特殊的需求才會對該原理圖調整。許多廠家會據此進行二次開發,生產出該芯片的模塊。

下圖為該芯片的成品模塊

該模塊只引出了必要的電源及控制接口,其他外圍電路都已經集成在模塊上。這樣的好處是使用更方便,不需要關心芯片的外圍電路和天線部分。天線的設計是電路設計上的難點,細小的失誤都可能對通信距離產生較大的影響。所以很多廠商都采用設計成熟的模塊,而不是自己重新設計這一部分。

上圖為該模塊的引腳順序圖,可以與單片機進行連接。相應的引腳功能如下。

模塊保留了用戶需要用到的8 個接口。其中1 號和2 號引腳為電源接口,為該模塊供電。3 號引腳為芯片使能接口,用于設置芯片是工作在接收模式還是發送模式。4 號至7 號引腳是用于SPI 通信的四條連線。CSN 用于片選芯片,也就是芯片的SPI 通信使能。SCK 是單片機為SPI 通信提供的通信時鐘。MOSI 是單片機向模塊發送數據的數據接口,MISO 是模塊向單片機發送數據的數據接口。8 號引腳IRQ 在接收到數據時通過電平跳變來通知單片機模塊已經收到了數據。這種方式的好處在于單片機在沒有收到數據時可以完成其他任務,不需要一直查詢該模塊是否收到數據。當然,這個接口也可以不用,不過如上所述,需要一直查詢是否收到了數據,這種方式是非常低效的。采用這種方式帶來的另外一個缺點是一直使單片機處于工作狀態,不利于休眠,會造成功耗大幅度提高。

通過上述物理接口就可以達到配置和操作nRF24L01 的目的。了解硬件是不夠的,對通信的數據的學習仍然是一門必修課。

4.通信數據部分

nRF24L01 支持數據包的自動裝配,自動發送確認包和重發數據包。它支持1 至32 字節的負載長度。能把收到的包自動分解,得到需要的負載部分。nRF24L01 擁有6 個通信信道,最多支持1 對6 的星形網絡。

上圖為nRF24L01 的數據包格式,其中包括了1 個字節的前導碼、3 至5 字節的地址、9 個比特的包控制段、0 至32 字節的負載段及CRC 校驗碼。數據包內各個部分在整個通信中扮演著不同的角色,有著不同的作用,下面將對它們做詳細介紹。

前導碼用于讓接收端的解調器和輸入的比特流同步。這里的前導碼的長度是一個字節,序列是01010101 或者10101010。至于具體是哪種前導碼,與緊接在前導碼后面地址的第一個比特有關。如果地址的第一個比特是1,則前導碼被自動設置為10101010。如果地址的第一個比特是0,則前導碼被自動設置為01010101。這些措施用于保證有足夠的過度時間來穩定接收器。簡單地說,前導碼的存在主要是為了讓后續的數據流接收更加穩定。

這里的地址是發射器發送給接收器的。地址用于該數據包被正確的接收器偵測和接收,而不是被其他設備錯誤地接收到。當我們在接收器中寫入地址后,可以方便地過濾掉不是發送給自己的數據包,保證接收到的數據包至少地址是正確的。我們可以通過設置名為AW 的寄存器,調整地址的寬度到3 個、4 個或者5 個字節。

上圖為數據包中的包控制字段(Packet Control Field),它涉及對數據包的控制工作,主要包括負載長度字段(Payload Length)、包識別字段(PID)和自動應答的非確認標志(NO_ACK)。包控制字段包含6 比特的負載長度字段。當該器件作為接收端設定為動態負載長度時,該負載長度字段用于指示負載有多長,以便于快速讀取負載。當設定為靜態負載長度時,就用不到該字段了,因為每次的負載長度都是固定的。

兩個比特的包識別字段用于檢測接收到的包是新的還是重傳的。包識別字段是為了防止同樣的負載被多次送到單片機中重復處理。當發送端每次發送新的數據包的時候,包識別字段的值都會增長。在接收端的器件會根據包識別字段和循環校驗碼(CRC)決定該數據包是重傳的還是新的。當多個數據包丟失后,這次的包識別碼就可能和上次的一樣,如果這樣的話,nRF24L01 會比較兩次的循環校驗碼。如果兩次的循環校驗碼相同,最新接收的數據包就會被認為是上次接收數據包的備份而被丟棄。

可選的自動應答特性控制著非確認標志(NO_ACK)。當自動應答這個特性被利用時,這個標志才有效。設置這個標志為1,告訴接收器這個包是不需要被自動應答的。

負載(Payload)是用戶定義的數據內容。它的長度可以是0 至32 字節。用戶可以把需要傳輸的數據放在負載字段里傳輸。循環冗余校驗碼用于數據包的錯誤檢測。在數據發送前,發射器會根據發送的數據產生循環冗余校驗碼。當接收器接收到數據時,也會根據接收到的數據產生循環冗余校驗碼。最后,接收器會計算接收到的數據校驗碼,并和直接接收到的校驗碼進行比對,如果相同則認為數據在傳輸過程中沒有出錯,如果不相同就認為出錯了,需要采取重傳或者其他措施。該字段可以被設定為1 個或者2 個字節,并且從地址開始計算,也包括了包控制字段和負載。

5 如何防御

有線鍵盤記錄器在有些單位或者某些場景,作為按鍵日志記錄設備是必須使用的。請不要隨意取下,以免引起不必要的誤會。

對于個人而言,有線鍵盤記錄器這種攻擊手段要防御說容易不容易,說難也不難。說容易是因為這種外接設備肉眼可見,說難是因為要用軟件檢測非常難,幾個簡單的防御方法如下。

首先,提高防范意識。使用臺式機前檢查一下,看看后面是不是被裝了“小尾巴”。當然,每次都看太麻煩,可以選擇將機箱放在肉眼可見的桌上,沒事瞅一眼。使用筆記本電腦的話,隨時看下就好。

其次,不熟悉的人送的鍵盤,不要隨意接受!或者發現自己的鍵盤有被拆卸過的痕跡,也需要注意!也許,鍵盤里面,就藏著一塊電路板,在你不經意時,竊取了你的賬號和密碼,繼而以此為突破口竊取更多的機密。當然,還是自己去市面上買的鍵盤相對放心。

再就是,輸入關鍵信息時,用軟鍵盤輸入比較好,前提是電腦本身的軟件安全要做好,如果中了木馬被錄屏就沒辦法了。

對于無線鍵盤監聽的防御,很簡單,不使用無線鍵鼠就行!特別是在辦公室用臺式機或者筆記本電腦時,完全沒必要使用無線鍵盤,手機和iPad 用屏幕鍵盤就可以。如果必須要用無線鍵盤,可以考慮自己做一個轉換的硬件,將USB 有線鍵盤轉換成藍牙或者無線鍵盤,至于方法,與無線鍵盤記錄器是一個原理。

最后,安全沒有絕對,但也不要被謠言所恐嚇,保持良好心態,小心謹慎,定期更換強密碼很重要。特別是對于掌握公司或者機關單位重要賬號密碼的工作人員,請提高自我安全防范意識。

警告:非法竊取他人信息是違法行為,本節內容僅供學習參考!切勿犯錯!

我們將在下次的推送中向您介紹一個無線鍵鼠的監聽與劫持的經典案例《MouseJack》:MouseJack能利用無線鼠標和鍵盤存在的一些問題,達到偽裝成鍵盤并實現任意按鍵的效果。

讀者評論

相關博文

  • 經典案例之MouseJack

    經典案例之MouseJack

    管理員賬號 2017-01-20

    關于無線鍵鼠的監聽與劫持有兩個比較有參考價值的案例。其中之一就是MouseJack,它能利用無線鼠標和鍵盤存在的一些問題,達到偽裝成鍵盤并實現任意按鍵的效果。造成的危害是可以偽裝鍵盤輸入任意命令控制計算機,甚至通過命令腳本下載病毒或者木...

    管理員賬號 2017-01-20
    284 0 0 0

推薦用戶

国际官方棋牌下载中心 山西快乐10分钟开奖走势图 中国体育彩票新疆11选5 十一选五黑龙江一定 黑龙江11选5走势图 北京拾赛车开奖结果 000031股票行情 快乐十分任三怎么玩 北京快三今天开奖号码 比较好的股票配资公司 湖北11选5选号技巧