新聞中心
Github 搜: "ggerganov/kbd-audio"

成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比信陽網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式信陽網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋信陽地區(qū)。費用合理售后完善,十多年實體公司更值得信賴。
該項目的原理
主要目標是利用按鍵盤按鍵作為副聲道產(chǎn)生的聲音,以便猜測所鍵入文本的內(nèi)容。為此,該算法將包含音頻記錄的訓(xùn)練集以及在該記錄期間鍵入的相應(yīng)鍵作為輸入。使用此數(shù)據(jù),算法可 了解不同按鍵的聲音是什么,然后嘗試僅使用捕獲的音頻來識別聲音。從某種意義上講,該訓(xùn)練集是針對特定的設(shè)置的-鍵盤,麥克風(fēng)和二者之間的相對位置。更改這些因素中的任何一個都會使該方法無效。另外,當前的實現(xiàn)可以實時進行預(yù)測。
實施中涉及的主要步驟如下:
- 收集培訓(xùn)數(shù)據(jù)
- 創(chuàng)建預(yù)測模型(學(xué)習(xí)步驟)
- 按鍵檢測
- 預(yù)測檢測到的按鍵的按鍵
收集培訓(xùn)數(shù)據(jù)
在當前的實現(xiàn)中,擊鍵之間的聲音被簡單地丟棄。在實際按下之前和之后,我們僅將音頻保持在75-100毫秒之內(nèi)。這有點棘手,因為按鍵和程序捕獲的事件之間似乎存在隨機延遲-最有可能涉及硬件和軟件因素。
例如,這是在鍵盤上按字母“ g”的完整音頻波形如下所示:
從圖中可以看出,在壓力峰值之后不久還有一個附加的釋放峰值。Keytap只是忽略發(fā)布峰值。這里可能有可能提取其他信息,但是為了簡單起見,數(shù)據(jù)被丟棄。最后,此鍵的訓(xùn)練數(shù)據(jù)如下所示:
顯然,75 ms的窗口對鍵入速度施加了一定的限制-如果在此時間段內(nèi)擊鍵重疊,則會混入不同鍵的訓(xùn)練數(shù)據(jù)。
另一個觀察結(jié)果是,某個鍵的可用訓(xùn)練波形越多-越好。組合多個波形有助于減輕環(huán)境噪聲。此外,根據(jù)用戶按下按鍵的方式,各個按鍵的聽起來可能略有不同,因此可能會捕獲各種按鍵可能發(fā)出的聲音。
創(chuàng)建預(yù)測模型
人們可以在這里獲得很大的創(chuàng)造力-機器學(xué)習(xí),人工智能,神經(jīng)網(wǎng)絡(luò)等。Keytap 使用非常簡單的方法。對于每個培訓(xùn)密鑰,我們執(zhí)行3個步驟:
- 對齊收集的波形的峰值。這有助于避免在檢測到按鍵事件之前進行隨機的時間延遲(前面已說明)。
- 基于相似性度量的波形更精細的對齊。有時,峰值并不是最好的指標,因此我們使用更精確的方法。
- 對齊波形的簡單加權(quán)平均。權(quán)重由相似性度量標準定義。
我們不希望直接應(yīng)用步驟2,因為相似度指標的計算可能會占用大量CPU資源。因此,步驟1有效地縮小了對齊窗口的范圍并減少了計算量。
在第3步之后,我們?yōu)槊總€鍵最終得到一個平均波形。稍后將其與實時捕獲的數(shù)據(jù)進行比較,并用于預(yù)測最可能的密鑰。
按鍵過程中使用的相似性指標是互相關(guān)(CC):
在此,Ai和Bi是被比較的兩個波形的波形樣本。較高的CC值對應(yīng)于多個相似的波形。也可以使用其他相似性度量。
按鍵之間間隔的時間信息可能會集成到預(yù)測模型中。到目前為止,我已經(jīng)避免了這樣的方法,因為它們很難實施。
按鍵檢測
Keytap使用相對簡單的閾值技術(shù)來檢測原始音頻中的按鍵事件。顯然,我們希望用戶按下按鍵時會出現(xiàn)一個巨大的峰值,所以這就是我們想要的。該閾值是自適應(yīng)的-它相對于過去幾百毫秒的平均樣本強度而言。
這種方法絕對不是完美的,我希望我知道如何做出更可靠的方法來檢測新聞事件。我也不喜歡與當前閾值處理技術(shù)相關(guān)聯(lián)的free參數(shù)。
預(yù)測檢測到的按鍵的按鍵
一旦識別出潛在的按鍵事件,我們就可以確定波形中峰值的位置,并計算該部分波形與訓(xùn)練數(shù)據(jù)中所有平均波形的相似性度量。我們允許在峰周圍有一個小的對齊窗口(如前所述)。我們期望最高相似性度量將對應(yīng)于所鍵入的密鑰。
一些觀察
我注意到,當算法無法檢測到正確的密鑰時,它仍會預(yù)測附近的密鑰。鄰近,因為它位于真鑰匙旁邊。為此,我可以想到2種解釋:
- 鍵盤上的附近按鍵會發(fā)出類似的聲音
- 在這種方法中,按鍵相對于麥克風(fēng)的位置對于預(yù)測非常重要
我認為選項1不太可能。
另一個觀察結(jié)果是,與非機械鍵盤相比,機械鍵盤更容易受到此類攻擊。
按鍵2
我很確定可以實現(xiàn)一種根本不需要收集訓(xùn)練數(shù)據(jù)的預(yù)測方法。假設(shè)用戶以某種已知語言(例如英語)鍵入文本,則與該語言的N-gram有關(guān)的統(tǒng)計信息與檢測到的按鍵的相似性度量結(jié)合起來足以檢測出正在鍵入的文本。實際上,它歸結(jié)為打破替代密碼。
Keytap2是嘗試演示這種攻擊的一種嘗試。我仍在努力-我停留在根據(jù)其CC對按鍵進行聚類的部分。但是我認為至少我已經(jīng)準備好了替代密碼破解部分。在實際工作時會嘗試提供更多詳細信息。
網(wǎng)站題目:輸密碼時一定要靜音!Github上有黑客通過麥克風(fēng)盜取密碼
轉(zhuǎn)載來源:http://m.fisionsoft.com.cn/article/cdhdihc.html


咨詢
建站咨詢
