隐形的监控——无线键盘侦听
在用戶使用計(jì)算機(jī)時(shí),鍵盤是信息輸入的主要媒介,鍵盤輸入包含大量的私人機(jī)密信息,包括帳號(hào)密碼等,所以鍵盤偵聽被各種攻擊者所大量采用,成為一種普遍但是破壞力強(qiáng)大的攻擊方式。鍵盤偵聽主要通過鍵盤記錄器來實(shí)現(xiàn),所以大部分殺毒軟件都把鍵盤記錄器識(shí)別為惡意文件,各種高安全要求的網(wǎng)站例如網(wǎng)上銀行等,也都要安全ActiveX安全模塊來抵御鍵盤記錄器的威脅。
和傳統(tǒng)的有線鍵盤不同,在使用無線鍵盤時(shí),用戶信息不再直接輸入到用戶的計(jì)算機(jī)中,而是先在鍵盤內(nèi)將用戶的輸入信息轉(zhuǎn)化為相應(yīng)的射頻消息,然后將消息發(fā)送給適配器。適配器在接收到消息之后,會(huì)將消息按照規(guī)則轉(zhuǎn)化為用戶的輸入遞交給計(jì)算機(jī)進(jìn)行處理。在無線鍵盤的使用過程中,可以發(fā)現(xiàn)在鍵盤和適配器的射頻通訊如果被攻擊者進(jìn)行偵聽,就會(huì)導(dǎo)致用戶輸入的泄露。與傳統(tǒng)的鍵盤偵聽手段不同,直接監(jiān)聽射頻消息的攻擊過程十分隱秘,用戶完全無法察覺。
實(shí)驗(yàn)準(zhǔn)備
在對(duì)無線鍵盤偵聽的過程中,需要使用接收裝置接收射頻消息,這里選擇使用的是 Hackrf來對(duì)用戶輸入進(jìn)行偵聽,實(shí)驗(yàn)平臺(tái)為 kali Linux 。
在上一次對(duì)無線鍵盤研究中,已經(jīng)確定無線鍵盤和適配器的通信頻率為 2.4GHz,所以我們需要對(duì)這個(gè)頻段對(duì)射頻消息進(jìn)行監(jiān)聽。在上一次使用重放攻擊對(duì)用戶輸入進(jìn)行干擾的過程中,我們已經(jīng)獲得了一些按鍵的射頻消息,我們?cè)谏洗蔚幕A(chǔ)上展開。
?
實(shí)驗(yàn)過程
信號(hào)錄制完成之后,需要對(duì)信號(hào)進(jìn)行觀察。在對(duì)無線電信號(hào)的研究中,我們發(fā)現(xiàn)Audicty作為一款音頻處理軟件,在處理無線電信號(hào)時(shí)也有十分優(yōu)秀的效果,該軟件是免費(fèi)的,同時(shí)也有綠色版本,可供使用。這里首先使用Audicty導(dǎo)入錄制好的按鍵射頻信息。
選擇導(dǎo)入的文件之后,會(huì)出現(xiàn)如下的界面,讓用戶設(shè)置文件導(dǎo)入的格式。由于audicity本身是一個(gè)音頻處理軟件,所以需要對(duì)采樣率,編碼格式,聲道等信息進(jìn)行重新設(shè)置。
成功對(duì)導(dǎo)入格式進(jìn)行設(shè)置之后,audicity就開始導(dǎo)入數(shù)據(jù)了,導(dǎo)入數(shù)據(jù)的時(shí)間會(huì)根據(jù)計(jì)算機(jī)的性能和文件的大小有所變化,所以可能需要耐心等待,但一般來說正確設(shè)置導(dǎo)入格式之后,文件導(dǎo)入時(shí)間不會(huì)超過1分鐘。
成功導(dǎo)入數(shù)據(jù)之后如下圖所示,可以觀察到信號(hào)在圖中的具體變化情況,從圖中可以觀察到一系列的按鍵信號(hào)(紅色圈出的信號(hào))。
放大來看就可以看到具體的編碼了。具體的編碼如下圖所示,從圖中可以發(fā)現(xiàn)在正常的適配器的維持信號(hào)中出現(xiàn)了其他信號(hào)(紅色圈出的信號(hào)),經(jīng)過分析可以確認(rèn)這些是按鍵的信號(hào):
確定按鍵信號(hào)。由于在上一次實(shí)驗(yàn)中我們可以使用重放攻擊直接對(duì)無線鍵盤進(jìn)行攻擊,所以可以確認(rèn),在無線鍵盤和適配器通訊過程中,沒有使用到序列碼等安全機(jī)制,所以進(jìn)行以下操作。首先我們使用inspectrum進(jìn)行對(duì)信號(hào)的處理。在監(jiān)聽信號(hào)之前,我們首先需要獲取到不同按鍵的基準(zhǔn)信號(hào)作為對(duì)原始信號(hào)的參考標(biāo)準(zhǔn),同時(shí)對(duì)基準(zhǔn)信號(hào)的分析,也可以找出無線鍵盤的通信協(xié)議的格式。下面例舉一個(gè)按鍵B信號(hào)的處理過程。
在對(duì)基準(zhǔn)信號(hào)進(jìn)行處理的時(shí)候,可以使用inspectrum。Inspectrum是一個(gè)開源的無線電處理軟件,可以用來對(duì)射頻信號(hào)的分析,功能強(qiáng)大,可以在github上面找到。在kali上面可以使用下述方法安裝:
sudo apt-get installqt5-defaultlibfftw3-dev cmake pkg-configmkdir buildcd buildcmake ..makesudo make install
可以在終端中直接使用inspectrum命令打開inspectrum軟件,如下圖所示:
然后選擇需要導(dǎo)入要處理的文件,如下所示:
導(dǎo)入成功之后,可以看到和audicity一樣的信號(hào)圖,不同的是在inspectrum上面信號(hào)的顯示更加清晰。同時(shí)用不同的顏色標(biāo)注出更多的信息,比如說信號(hào)集中的頻率等。如下所示:
為了對(duì)信號(hào)的進(jìn)一步分析,需要通過inspectrum的強(qiáng)大功能導(dǎo)出信號(hào)的振幅圖。導(dǎo)出方式為在信號(hào)圖上點(diǎn)擊鼠標(biāo)右鍵選擇導(dǎo)出的無線電信號(hào)圖即可。如下所示:
接下來是對(duì)導(dǎo)出的振幅圖對(duì)信號(hào)進(jìn)行處理。使用inspectrum軟件的功能以等間隔的方式分隔振幅圖:
使用inspectrum導(dǎo)出不同振幅數(shù)據(jù),這些數(shù)據(jù)十分重要是后面處理的關(guān)鍵。振幅數(shù)據(jù)如下所示:
得到振幅數(shù)據(jù)之后,需要對(duì)振幅數(shù)據(jù)進(jìn)行相應(yīng)的處理轉(zhuǎn)化為01碼才能進(jìn)行按鍵信息的分析。我們使用相應(yīng)的腳本對(duì)信號(hào)進(jìn)行轉(zhuǎn)化。腳本如下所示:
?
#!/bin/pythonfileread=open("w",'r')filewrite=open("w1",'w+')s=fileread.read()fileread.close()i=0rows=s.split(',')for row in rows:#print rowif(row==""):print(num)i=i+1ifnum>-0.99:filewrite.write("1")else:filewrite.write("0")filewrite.close()print str(i)+"data has been deal"
轉(zhuǎn)化后的數(shù)據(jù)如下所示:
通過相同的方式獲取同一個(gè)按鍵的多條數(shù)據(jù)之后,就可以獲得了按鍵B的基準(zhǔn)信號(hào)。我們對(duì)其他按鍵可以用相同的方法進(jìn)行處理,簡化起見,這里只處理了有限的基準(zhǔn)信號(hào),獲得這些基準(zhǔn)信號(hào)。就可以實(shí)施無線鍵盤的偵聽攻擊。
首先使用hackrf錄制用戶正常的按鍵信號(hào),然后使用處理按鍵基準(zhǔn)信號(hào)的方法,使用inspectrum處理用戶的輸入的射頻數(shù)據(jù),獲取到用戶輸入的01序列,然后使用腳本將用戶輸入的01序列進(jìn)行比對(duì),比對(duì)成功之后,就可以確定用戶按下的按鍵為那一個(gè)。由于射頻信號(hào)接收的不穩(wěn)定,即使同一個(gè)信號(hào)在接收到的時(shí)候也存在誤差。所以在比對(duì)過程中需要設(shè)定可容忍出錯(cuò)的閾值,來減小接收誤差帶來的影響。但是這個(gè)閾值不能過大,防止出現(xiàn)按鍵的誤判。所以在寫判斷腳本時(shí),閾值的設(shè)置非常重要。成功設(shè)定閾值之后,就可以對(duì)按下的按鍵進(jìn)行判斷。在本次實(shí)驗(yàn)中只對(duì)字母按鍵進(jìn)行了有限的測(cè)試。測(cè)試結(jié)果顯示,按鍵偵聽的成功概率大約在50%到70%之間。下面是對(duì)按鍵B的實(shí)驗(yàn)結(jié)果:
按鍵B判斷正確:
按鍵B判斷錯(cuò)誤:
按鍵B判斷正確:
威脅分析:
在研究中發(fā)現(xiàn),目前已有不少針對(duì)無線鍵盤的竊聽攻擊,但是大多需要破解鍵盤和適配器之間的通訊協(xié)議。但是在本文的攻擊方式中,直接針對(duì)無線電信號(hào)進(jìn)行分析,對(duì)于沒有使用序列碼的無線鍵盤,信號(hào)本身不會(huì)存在變化,所以普通的加密手段沒有作用。同時(shí)通過無線電偵聽用戶無線鍵盤輸入的信息竊取方式十分隱蔽,不容易被發(fā)現(xiàn),所以對(duì)用戶的個(gè)人信息有很大的安全威脅。
安全建議:
對(duì)于無線鍵盤的生產(chǎn)廠商來說,直接分析無線電信號(hào)的攻擊方式可以通過添加序列碼來解決。使用了序列碼之后,每一次按鍵按下的無線電信號(hào)都會(huì)有所不同,這回增加攻擊者實(shí)施攻擊的難度和成本。同時(shí)生產(chǎn)廠商還可以使用加密的手段來加強(qiáng)防御。在序列碼的基礎(chǔ)上添加加密手段之后,可以防止攻擊者直接接觸到序列碼,通過大量數(shù)據(jù)分析出序列碼的產(chǎn)生規(guī)則,進(jìn)而偽造出正常的無線鍵盤數(shù)據(jù),來欺騙適配器進(jìn)行相應(yīng)的操作。通過序列碼和加密的手段,可以提高無線鍵盤的安全性,保證用戶的數(shù)據(jù)安全。
對(duì)于普通用戶而言,防御無線鍵盤攻擊最根本的手段就是不使用無線鍵盤,這樣可以徹底根絕射頻信號(hào)泄漏用戶輸入的現(xiàn)象,可能這樣的行為看上去有點(diǎn)因噎廢食,但卻是最根本的辦法。其次在挑選無線鍵盤的時(shí)候,用戶可以盡量選擇大廠商的無線鍵盤,因?yàn)榇髲S商往往在無線鍵盤采用了相應(yīng)的安全措施,可以保障無線鍵盤和適配器之間的通信安全需求。最后,在使用無線鍵盤的時(shí)候,盡量少輸入關(guān)鍵的個(gè)人信息,防止攻擊者的窺探,比如在輸入密碼的時(shí)候,盡量使用手機(jī)掃碼登錄的手段,這樣不僅可以防止無線鍵盤泄漏用戶密碼,也可以防止電腦中惡意軟件的竊聽密碼。
?
總結(jié)
以上是生活随笔為你收集整理的隐形的监控——无线键盘侦听的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大班认识计算机教案,认识电脑家族成员——
- 下一篇: vue--组合式Api、Pinia状态管