压在透明的玻璃上c-国产精品国产一级A片精品免费-国产精品视频网-成人黄网站18秘 免费看|www.tcsft.com

李琦:聲納信號:安卓圖案鎖的噩夢

DSC_2700

李琦? 清華大學副教授

摘要:手機圖案鎖是保護移動設備用戶隱私的一種重要防護手段。然而利用手機的硬件傳感器可以非常容易突破這道防護。在這個報告中,將展示了一種利用聲納信號破解安卓圖案鎖的新型方法。這種方法的破解效果不受手機所在環境的影響,而且可以同時遠程破解大量用戶的手機圖案鎖。基于真實商用手機的實驗驗證表明此方法的攻擊準確率超過90%以上。

圖案鎖大家都不陌生,包括現在手機的鎖屏,根據調研報告發現有40%的用戶是用圖案鎖來保護他們的手機,有些人說我是用密碼來鎖屏,有很多現實應用包括用的微信、支付寶很多也是用圖案鎖進行密碼保護的,針對圖案鎖和密碼鎖它的安全機制,包括沙箱,沙箱可以保護應用,包括基于(英)基于硬件的防護,一定程度上可以很好的解決用戶圖案鎖竊取密碼的安全性。

基于這樣的保護方式是不夠的,手機里面有各種各樣硬件的資源,有很多傳感器,這里面的傳感器大家也不陌生,有NFC,有攝像頭,有麥克風等等,利用這些硬件的資源比較方便的得到用戶的隱私信息,基于硬件傳感器來對待攻擊,這種在學術界也有很多人提出,有人提出因為大家在輸密碼或者是圖案鎖的時候,手機會晃動,根據手機晃動的幅度用機器學習的方式可以知道什么樣的手機晃動幅度他在輸入什么樣的密碼。還有一個類似的,在手機晃動過程中如果一個攻擊人可以控制或者是使用手機里面的攝像頭,根據晃動幅度也可以推測用戶輸什么樣的密碼,針對圖案鎖也是類似,現在也有很多的工作在做,大家會留意到當我們劃過手機屏幕,手機屏幕會有一些油漬痕跡,通過這個痕跡可以很好的推斷圖案鎖,? 我們在使用應用的時候會滑動屏幕,? 我怎么去推斷哪些劃痕或者是油漬是用戶輸入圖案鎖的痕跡,現在有wifi的信號,做智能醫療,很多是利用Wifi的信號來推斷的,用Wifi信號來推斷一個人是否摔倒,根據Wifi信號的推斷,就可以知道一個干擾物體大概在做哪些動作。

還有一個,某個用戶在輸入圖案鎖的時候,可以用照相機不斷拍他的輸入圖案鎖的動作,右圖,我可以連續拍他的動作,推測手勢微小的幅度來推斷他輸入什么樣的圖案鎖,這種是比較典型的,現在的攻擊方式推斷圖案鎖攻擊,攻擊能力非常有限,第一個油漬,剛才我也提到了,我們在使用手機過程中會不斷的劃屏,在屏幕上留下的油漬是非常多的,從一定程度上可以確定是有問題的,比如拍照,拍照(英)有一個問題,不會有任何干擾,拍的過程中不會有人遮擋拍的圖像。還有一個拍的過程中不能離受害者太遠,也不能太近,太遠誤差太大,太近受害者本身就能觀察到,我們需要考慮到是不是有一種比較準確的不受環境干擾的攻擊,我們就想到在手機里面是有量身器,用量身器本身的功能來推斷用戶所使用的圖案鎖,能不能裝一個應用,讓應用能夠在用戶輸入圖案同時能夠播放一種聲音,這種聲音會在用戶輸入圖案的過程中受到手指的干擾,通過干擾信號來知道用戶在劃什么樣的圖案,這個效果跟剛才提到的,剛才提到的所有攻擊恢復用戶圖案是一個一個去分析的,如果可以遠程讓手機能夠通過聲納信號來推斷,理論上可以同時來分析對于手機的圖案鎖,這樣一個攻擊或者是恢復圖案鎖的能力是非常大的。

我們恢復圖案鎖攻擊是怎么做的,想法是有的,需要假設的是在手機里面用戶可以控制的惡意軟件,這個惡意軟件在用戶輸入圖案的時候,讓軟件來放聲音,聲音是一個人耳聽不見的高頻聲音,一般是感知不到的,另外一個動作去捕獲揚聲器發出的聲音,這個聲音是被手指頭干擾的,通過把這個聲音上傳到可以處理聲音文件的服務器,需要有網絡連接的權限把文件傳到服務器,服務器可以很準確的推斷該用戶在使用什么樣圖案鎖來鎖屏,這里就有幾個工作要做,第一個? 我們要檢測用戶什么時候輸入圖案鎖。第二個分析找到哪些聲音信號是被用戶手指所干擾的,分析干擾信號,我們怎么檢測用戶的解鎖或者是用戶劃圖案鎖的行為,第一個在手機鎖屏到屏幕解鎖的過程中,手機有一個廣播信號,鎖屏的時候處于非交互模式,當手機重新打開是一個交互模式,從非交互模式到交互模式這個手機會有一個(英),只有捕獲了這個消息,知道用戶在輸入鎖屏或者是解鎖手機的圖案鎖,大家會問那我不用圖案鎖來鎖手機,只是在應用里面來鎖某個應用是不是就沒用?我們有另外一個方式可以檢測用戶用圖案鎖的過程,你們在用手機的時候是不是有這樣的行為,第一個輸入支付寶,微信的時候,輸入過程中是不是抬手進行的,只要我們在檢測手機是有突然的手機抬起行為,按現在的研究發現很大的情況下用戶輸入圖案鎖,還有一個我們在解鎖應用的時候,我們首先有一個動作需要找到應用,用戶行為是不斷的滑屏幕,滑完屏幕再點屏幕,這個過程就可以預測如果用戶在使用APP的時候使用圖案鎖,我們只要在用戶手指劃屏幕點屏幕的同時,讓我們的分析過程開始工作也可以找到用戶在用圖案鎖保護某個應用的過程,用戶輸入圖案鎖,接下來的工作比較簡單,我們可以讓應用去發一個聲音,記錄被手指干擾聲音反射的信號,這里是需要聲音信號,我們需要一個特別的設定,第一個為什么我們設成這么一個(英)信號,我們需要把這個信號分析,還有一個聲音信號是18至20分貝,一般人耳是聽不到的,其實發完信號以后,當用戶手指在屏幕上劃的時候,放聲音這個聲音會被手指干擾,大家可以從這個圖里看到,如果手沒劃到聲音信號是平的,如果手指一旦在屏幕上劃了以后,這個聲音信號就會產生波動,只要我們找到受手指干擾波動信號我們就很容易哪些聲音信號是跟輸圖案鎖的過程相關。

接下來要做的事情我們要設置一個聲音信號,這個聲音信號跟信號處理相關,在聲音的過程中是把信號做一個綁定,我們要做的就是把兩個信號解開,是解決我們分析聲音號的關鍵,我不知道大家有沒有做信號處理的背景,這是信號處理是非?;镜闹R,我本身也不是通信專業出來的,只是做這個工作現學去研究了一下這方面的技術,這方面就不展開講了,拿到聲音信號要想的是我們怎么去找,大家劃這個線在圖案鎖的過程中是有連續過程,這個線很復雜,如果完全恢復一個完整的劃線圖案是非常復雜的,我們在劃的過程中是有各種轉折點,我們的想法如果把這個線按轉折點切分成不同的片段,這樣我們的分析過程就比較簡單了,基于剛才恢復出來的信號,就按不同轉折點把聲音向切成不同的片段我們怎么找到手指轉折的信號點?根據信號發現手指在轉的過程中信號相對比較恒定,手指在轉的瞬間信號是比較穩定的,我們找到恒定信號把用戶輸圖案鎖的聲音切成不同的片段,根據不同的片段我們可以做比較簡單的分析工作,根據剛才說的聲音信號恢復出來是這么一個圓圈的信號分布,如果從一個直面看過來就是右圖所示的一個不同的圈,手指在不同地方開始劃的時候,我們在圈上找到哪些點是用戶點擊屏幕的那幾個起點和終點,把它的起點終點相互的數字算出來,這里我就不展開講了,我們可以計算出手指在屏幕中劃動的相對距離,從一個麥克風到揚聲器,從麥克風到揚聲器的距離,這兩個距離會發生變化,根據我剛才說的信號差距,可以利用這個公示可以計算出手指在移動前,移動后相對距離是多少,得到這個相對的距離,底下做的工作就比較簡單了,圖案鎖是3乘3的格子,我們就分析所有可能手指移動片段的特征,3乘3的格子,從一個點到其他八個點相對的移動距離,從一個格子點從一個點到其他八個點的可能性,九個點,我們分析了72組可能的移動距離的變化趨勢,根據這個趨勢跟我們剛才分析得到計算出來的移動變化做比較,計算相似度,在計算相似度的過程中,移動有兩種可能,不同手機有不同配置,一個是在移動過程中手機移動的距離,移動那條線,揚聲器和麥克風的中間位置,還有一個移動的時候,麥克風和揚聲器是在手移動的同一側,這樣我們可以簡單的把手指移動距離規劃成一種手指移動的可能,根據手指移動的可能得到了72組所有的可能移動距離,計算相似度,任何手指移動過程中,手指移動的某一條線跟我們計算出來的72條線的每一條線可能性是最相近的,就為每條線分配相似值,根據相似值構造出相似數,左面一二三五八的移動范圍,就可以根據每條線移動的可能性構建相似度的數,根據這個數就可以計算前五種可能性,前五種大家比較了解,在安卓手機里面輸五次失敗以后,你的手機就會被鎖屏,我們挑選了前五種最有可能的用戶的圖案鎖行為,用戶圖案鎖輸入行為是一二三五八,根據實驗發現,在一二三五八可能性很高,覆蓋里是0.94,0.92,0.96計算起來是最高的,第二高是一三五七,一三五七和一三五八移動距離是比較近的,根據這樣我們可以拿到所有的有可能跟用戶圖案鎖相近的幾種移動行為,根據這個我們就可以恢復出可能的用戶圖案鎖行為,根據我們的實驗發現,這種分析相對來說我們第一次就能找到用戶輸入圖案鎖正確的圖案。

這種攻擊方式相對是比較簡單也比較直觀,也是比較有特點的,跟之前所有的分析圖案鎖的攻擊來比我們這個攻擊非常隱秘,第一個我們是在用戶輸入圖案鎖的過程中來推斷用戶的行為,這個應用不會給用戶手機額外消耗很多電,這樣我們使用的聲納信號人耳是聽不到的。

第二個推斷的方式非??尚校皇苡脩舡h境或者是用戶行為的干擾。最關鍵的我們有非常好的行為,讓我們的攻擊方式在不同用戶手機上推斷他們的圖案鎖,我們實現了這么一個攻擊場景。

首先需要一個惡意軟件,在三星C9和華為P9 Plus做一個采集,讓志愿者來輸,找了五位同學,分別用他們自己喜歡的習慣來進行恢復,我們采集他們的信號,這是我們整個推斷行為的準確率,我們有四條線,我們收集用戶第一次輸入圖案鎖的分析,一次行為,只分析用戶一次輸入圖案鎖的行為,第一次準確接近達到了70%,之后我們嘗試了五次,準確率達到了95%,如果多次收集用戶圖案鎖的行為,收集七次,準確率可以達到100%,這種分析效果準確率相對比較高的。

用戶不同,設自己圖案鎖的時候有不同的習慣,有些用戶輸入的圖案鎖會比較復雜一些,有的可能比較簡單一些,在我們的場景下是線條多的比較安全,還是線條少的比較安全,在特定的攻擊場景下線條多,準確率越高,如果是五條線,基本上我們只測試一次或者是只試一次準確率就能達到70%,在這個特定下越多越不安全。

我們又做了一個實驗,每個用戶對于圖案鎖有不同的習慣,有些可以拿一個手來輸入,右邊第三個圖,還有一種習慣是一個手拿手機,另外一個手劃,還有一個是手機豎著拿,另外一個手來劃,不同的輸入習慣對我們的推斷分析還是比較有影響的,這三個大家可以猜一猜三個手勢那種手勢準確率最高,哪種準確率最低,第一個就是手機橫著放是準確率最高,第三個手機率一個手來輸是準確率最低,因為手指在劃的時候,對手機干擾信號是最小的,準確率相對比較低,從總體來說準確率能達到70%左右,理論上沒有太大的差別,還是有一定的差距,大概在10%左右。

用戶在輸入圖案鎖很關鍵的輸入圖案鎖的速度,有些人輸的很快,有些人會輸的很慢,輸圖案鎖的速度對我們的推斷也是有影響的,一般輸入很快或者是很慢都會有一定的影響,影響不會很大,差距在5%左右,從一般人的用戶輸入行為來說一般都不會太快,因為太快本身輸入的錯誤率就很高,如果很慢,大家也沒這個習慣,輸字母一個個點,這個也很容易出錯,對于正常的速度來說準確率還是非常好的。

另外一種大家會想到你們用的是聲納信號,是不是我在手機邊上放一個干擾物信號是不是就可以被干擾,我們也做了實驗,在實驗中用了兩組實驗,第一種實驗是使用靜態的干擾信號。第二個是動態的干擾信號,靜態干擾信號就放一個手,放在被分析手機的周圍,距離可能是20厘米至60厘米,還有一組干擾實驗讓這個手不斷在屏幕面前晃動,看這樣的晃動是否對我們的分析有影響,從實驗結果來說,靜態一個手放在手機邊上對我們沒有干擾,我們是對移動的物體進行分析,靜止狀態對聲音信號不會有任何的干擾變化,由于靜態的物體對聲音的影響直接可以過濾掉,對于動態的手指會有非常大的影響,手距離手機只有20厘米的時候可以準確的降到40%。

從原始來看,20厘米對我們的攻擊雖然有一定的影響,20厘米在你手機邊上晃,用戶自己輸圖案的時候很尷尬,20厘米輸的過程中一個手在不斷的在你屏幕上劃,這種場景是不存在的,如果移動手的距離超過40厘米的時候,攻擊就會超過10%,在現在這個情況下還是比較有效的恢復圖案鎖的方式。

我們做了另外一個實驗,在不同的環境中,第一個環境在咖啡廳,星巴克,還有一個辦公室,星巴克里面的噪音比較大,有打電話,有使用電腦的噪音,辦公室里比較安靜,另外我們拿了兩個手機做實驗,第一個是三星C9,另外一個是華為P9,在咖啡廳和辦公室對我們的分析幾乎沒有什么影響,差距在1%左右,但是手機型號對我們的攻擊是有影響的,為什么三星的要比華為高5%左右,因為三星手機屏幕大,這個也是比較直觀可以解釋的現象,有幾個跟大家討論一下,我們的攻擊需要假設有一個用戶或者是攻擊者需要在手機上安裝APP軟件,我們需要收集聲音,在放聲音收集聲音需要一個麥克風權限,這個是比較敏感的權限,需不需要麥克風權限,允許,這個是比較大的問題,我們發現這不是一個問題,我們分析APP,我們發現(英)上,如果大家用過(英)會把APP分成不同的類別,有天氣預報的,還有通訊的,娛樂的,在(英)(英)和(英)APP使用需要麥克風權限非常多,超過55%和52%APP都需要麥克風權限,我們能不能把我們的APP偽裝成這些類別的應用權限,這樣我們是不是有可能讓用戶來下載,當時找學生來做了這么一個實驗,把我們剛才做實驗的APP直接上傳(英),聲稱我們的APP是(英)的APP,我們那個同學也很實誠,名字也沒改,直接放上去,(英)網站就直接放出來了,我們做的事情趕緊把它下下來,如果真有用戶安裝以后這個問題可能就比較大了,從一個方面來看,我們分析涉及的權限是比較小的,直接編了這么一個APP來做,如果把一個APP重新打報或者是偽裝成一個游戲或者是偽裝成娛樂的正常軟件,我們在里面直接安裝,在用戶輸入的時候能夠收集聲音。

針對這個問題我們怎么防御,鎖屏的時候需要放聲音,放聲音APP是需要在后臺來放,我們可以做的事情,如果不讓后臺的應用來發聲,是不是我們的問題就解決了,這個肯定解決了,我們(英)在(英)沒法這么做,谷歌很多的應用還需要用應用能夠在后臺發聲音,如果大家熟悉(英),他就需要通過放聲音能夠讓用戶遠程啟動谷歌的應用,直觀來說我們沒辦法用野蠻的方式讓麥克風不能在后臺使用。另外一個方式我們用戶在使用過程中一旦麥克風在使用的時候,我們可以通知用戶警告用戶,最近微信或者是最近的(英)版本是有一個新手機,跟同學討論過程中發現我跟他們的微信討論,開著微信語音的時候,在手機上面沒出現微信在使用麥克風,不知道這個怎么設定的,最近我發現這個警告沒了,這是比較有效至少讓用戶感知到是有一些非正常的應用在使用麥克風。

第三種可能的防御方式,我們需要使用高頻的聲音來作為信號,如果我們限制手機發聲的頻率,相比來說就比較好檢測,如果用戶發出的聲音是人耳一下子聽到了,就知道這是有異常的,相當于我們手機的硬件需要重新做設定,這個復雜度比較高。

最后一個實驗比較簡單,通過應用更新就行,讓用戶輸入圖案鎖隨機化,大小隨機化,圖案鎖的位置可以隨機化,這樣達到的效果,沒法準確預先計算用戶手指劃動屏幕的位置,這樣可以“很好”的解決這個問題,這個很好解決也給用戶的使用造成困難,圖案一會兒變大,一會兒變小的情況下,用戶輸入都會有些困難,這些方式也是我們需要找一個比較好的折中,我們驗證可以來緩解剛才提到的攻擊的方式。

今天給大家講的我們發現一種新的應用傳感器軟件,麥克風和揚聲器來構造的恢復用戶手機圖案鎖的攻擊方式,這樣的好處,非常隱秘,同時分析大量用戶的圖案鎖,我們的實驗表明我們的分析效果非常好,準確率很高。(速記)

上一篇:劉惠明:沙箱內持久化:行之有效的沙箱攻擊新思路

下一篇:邵國安:主持人