想必你永遠不會想到,有一天你也會被自己的鍵盤出賣。 對,就是你每日敲擊的鍵盤。當指尖在鍵盤上跳躍,清脆的噼啪聲此起彼落時,你輸入的所有信息,包括那些情真意切的詞句,那些不欲人知的心事,還有你的網絡賬戶、銀行密碼…… 全都被它泄露了。 鍵盤,還能被黑??? 前不久,一個叫做Keytap的 “黑科技” 在國外火了。Keytap 通過監聽你敲擊鍵盤的聲音,就能還原出你輸入的內容。 而且,只需要通過你電腦里的麥克風,就能完成聲波采集的任務。 在一段發布于網上的 Demo 里,Keytap 作者展示了在 iMac+Filco 機械鍵盤環境中,這個算法的優秀程度,請看:
四步偷窺大法
搭建這樣一個 “偷窺” 打字的模型并不難,Keytap 算法也已經開源了。跟著做,只要如下四步:
一是,收集訓練數據; 二是,搭建預測模型,學習一下數據; 三是,檢測出有人在敲鍵盤; 四是,檢測出 ta 在打什么字。
收集訓練數據
Keytap 收集數據時,只保留每次敲擊前后 75-100 毫秒的音頻。 這就是說,并非連續取樣,兩次敲擊之間有一部分是忽略的。 這種做法是會犧牲一些信息量的。 從敲下按鍵,到程序受到指令,這之間有隨機延時,與硬件和軟件都有關系。 比如,按下 g 鍵的完整波形長這樣:
看圖像可以發現,敲擊時出現了一個峰值,而再過大約 150 毫秒,又有一個按鍵被抬起的小峰值。 這樣說來,100 毫秒之外的信息也可能有用,不過這里為了簡便就忽略了。 最終,收集到的數據長這樣:
除此之外,局限性還在于,如果兩次按鍵之間相隔不久,后者落在前者的后 75 毫秒之內,那數據可能就有些混雜了。
搭個預測模型
這個部分是最能發揮創造力的部分。Keytap 用了一個非常簡單的方法,分為三步:
1.把收集到的波形的峰值對齊。這樣可以避免延時帶來的影響。
2.基于相似度指標 (Similarity Metric) ,更精細地對齊波形。 需要更精確的對齊方法,是因為有時候峰值未必是最好的判斷依據。 那么,可不可以跳過峰值對齊呢? 之所以第 2 步之前要先做第 1 步,是因為相似度指標的計算很占 CPU。而第 1 步可以有效縮小對齊窗口 (Alignment Window) ,減少計算量。
3.對齊后,做簡單加權平均。權重也是用相似度指標來定義的。 完成第 3 步之后,每一個按鍵都會得出一個平均波形 (a Single Averaged Waveform) ,用來和實時捕捉的數據做比對。 Keytap 用的相似度指標是互相關(Cross Correlation, CC) ,長這樣:
這里,Ai 和 Bi 都是某個按鍵的波形樣本,比對就在它們之間進行。CC 值越高,表示兩者越相似。 當然,也可以用其他相似度指標來做。 順便一說,兩次按鍵之間的間隔時長,其實也可以用來預測的,但開發者怕麻煩就省略了,勇敢的少年可以去源代碼基礎上自行實驗。
檢測出在敲鍵盤
平均波形和比對標準都有了,可是麥克風實時收錄的聲音連綿不絕,該和哪一段來比對呢? 這就需要從連續的音頻里,找到敲擊鍵盤的聲音。 Keytap 用了一個非常簡單的閾值方法,在原始音頻里監測敲擊動作: 按下去的時候,會有一個大大的峰值,這就是偵測目標。 不過,這個閾值不是固定的,是自適應 (Adaptive) 的:根據過去數百毫秒之內的平均樣本強度來調整的。
檢測打了什么字
當系統發現有人在敲鍵盤,就用相似度指標來測到底按了哪個鍵,CC 值最高的就是答案。方法就像上文說的那樣。 現在,代碼實現已經開源了,傳送門見文底。 不過,作者在博客中說,這個方法目前只有機械鍵盤適用。
“薯片間諜”
聽音識字的研究不止這一個,去年一篇 Don’t Skype & Type!Acoustic Eavesdropping in Voice-Over-IP 的論文,也提出了 Skype & Type(S&T)鍵盤聲音識別算法。 和這個研究類似,根據網絡電話 Skepe 中傳出的打字按鍵聲音,在了解了被測者的打字風格和設備類型后,系統能復原敲下了什么。
整個算法搭建過程只有三步:收集信息、數據處理與數據分類。 研究人員事先收集語音電話中鍵盤敲擊聲,將這些聲音分為兩類,即按下聲與松開回彈聲,隨后提取它們的特征。 當聽到鍵盤聲時,算法先識別設備類型,再去識別為鍵盤中的哪個鍵。和 Keytap 不同的是,S&T 也能適用于非機械鍵盤了。
研究人員表示,在預測的最可能的前 5 個字母中,包含正確字母的準確率達到了 91.7%。 這篇論文發表在 ACM 亞洲計算機和通訊安全大會(ASIACCS 2017)上,地址: https://www.math.unipd.it/~dlain/papers/2017-skype.pdf 推測人類講了什么,AI 需要甚至只是一包薯片。
什么,覺得太離譜了?Naive。 MIT、微軟和 Adobe 開發的這種看似天方夜譚的算法,只需高速相機透過隔音玻璃,拍攝出薯片袋的振動,算法就會判斷說話人是男是女,甚至還原出說了什么。
研究人員表示,聲音傳播時觸碰到周圍的物體,會震動形成一股微妙的視覺信號,肉眼無法識別,但高速相機(每秒幀數 2000~6000 FPS)可以敏銳捕捉。
除了薯片袋子,研究人員還用鋁箔、水杯甚至植物盆栽進行了試驗,效果 “一如既往的好”。
這不是野生研究,相關論文 The Visual Microphone:Passive Recovery of Sound from Video 還登上了 2014 年的 Siggraph 計算機圖形學大會。 論文地址(注意科學前往):http://t.cn/EyZEZYI傳送門方法雖多,如果想自己動手搞一個,這些 Keytap 相關資源還是要收好: 博客地址: https://ggerganov.github.io/jekyll/update/2018/11/30/keytap-description-and-thoughts.html 代碼地址: https://github.com/ggerganov/kbd-audio Demo: https://ggerganov.github.io/jekyll/update/2018/11/24/keytap.html 噓,掩好口鼻,輕聲撤退。
責任編輯:xj
原文標題:一個讓我感到毛骨悚然的GitHub項目!
文章出處:【微信公眾號:嵌入式ARM】歡迎添加關注!文章轉載請注明出處。
-
算法
+關注
關注
23文章
4701瀏覽量
94826 -
GitHub
+關注
關注
3文章
481瀏覽量
17475
原文標題:一個讓我感到毛骨悚然的GitHub項目!
文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
【免費工具】華秋AI電路識別助手:讓電路設計與分析變得輕松高效!

LED 燈壞一顆全滅?這招讓故障 “無感自愈”,90% 工程師都在抄!

什么是算力一體機?讓生產線變智能的黑科技,TOP5國產品牌排行

陽臺儲能黑科技:配套電表讓發電、存電、用電一目了然!

自媒體別亂推!用好DeepSeek,讓你的內容“穩穩的”!
一個設置讓 KiCad 的視覺體驗提升一個檔次!

山澤HDMI 2.1的隱藏黑科技:為什么一根線能改變你的4K/8K體驗?
如何讓DAC5571穩定的輸出一個電壓值?
迅為RK3588開發板!黑神話悟空,啟動?
《黑神話,悟空》帶火了什么?

《黑神話:悟空》發售,這家傳感器上市公司暴漲30%漲停!什么情況?
揭秘能耗管理系統:如何讓你的建筑綠色又省錢?
FPC軟板二維碼標識功能?簡直是黑科技!
【蘋果神器來襲】錄音寶,讓你的通話錄音so easy!

評論