鄭治華,石曙東,樊變霞,3
(1.湖北師范學(xué)院 物理與電子科學(xué)學(xué)院,湖北 黃石 435002;2. 湖北師范學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,湖北 黃石 435002;3.湖北師范學(xué)院 數(shù)學(xué)與統(tǒng)計(jì)學(xué)院,湖北 黃石 435002)
對(duì)Android系統(tǒng)屏幕圖案鎖的暴力破解
鄭治華1,2,石曙東2,樊變霞2,3
(1.湖北師范學(xué)院 物理與電子科學(xué)學(xué)院,湖北 黃石435002;2. 湖北師范學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,湖北 黃石435002;3.湖北師范學(xué)院 數(shù)學(xué)與統(tǒng)計(jì)學(xué)院,湖北 黃石435002)
摘要:SHA-1在許多安全協(xié)議中廣為使用,包括TLS和SSL、PGP、SSH、S/MIME和IPsec,曾被視為是MD5的后繼者。依托基于SHA-1加密算法的Android系統(tǒng)屏幕圖案鎖實(shí)例,對(duì)SHA-1加密算法完成了C語言實(shí)現(xiàn),同時(shí)對(duì)圖案鎖進(jìn)行了暴力破解,簡要探討了屏幕鎖安全性問題。 經(jīng)加密生成的160位消息也即鎖屏圖案的密文,存放在/data/system/gesture.key 文件中,這160位的消息摘要是以40個(gè)16進(jìn)制數(shù)存放的,只能通過16進(jìn)制文檔閱讀器方可看到。如圖3是以圖2(b)的鎖屏圖案路徑編碼“010403060708”為例,經(jīng)SHA-1加密后的密文內(nèi)容:"C0345DF789D7E46A0118022E77FF757C34CD9CB4"。 2)初始化各參數(shù)及緩存區(qū),載入gesture.key文件中鎖屏圖案加密后的消息EC;
關(guān)鍵詞:SHA-1;暴力破解;Android系統(tǒng)圖案鎖;隱私安全
中圖分類號(hào):TP309.1
文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-2714(2015)04- 0069- 04
doi:10.3969/j.issn.1009-2714.2015.04.014
收稿日期:2015—06—06
基金項(xiàng)目:國家自然科學(xué)基金(61471163)、湖北省自然科學(xué)基金(2012FFB01801)資助
作者簡介:鄭治華(1990—),男,湖北黃岡人,碩士研究生,研究方向?yàn)榇髷?shù)據(jù)安全、物聯(lián)網(wǎng)安全.
Google旗下Android系統(tǒng)在移動(dòng)操作系統(tǒng)市場(chǎng)上以壟斷性優(yōu)勢(shì)占據(jù)絕對(duì)主導(dǎo)地位,因而可以認(rèn)為,針對(duì)移動(dòng)智能設(shè)備遭到的攻擊在很大程度上講就是針對(duì)Android系統(tǒng)的攻擊,并且隨著大數(shù)據(jù)時(shí)代的到來和物聯(lián)網(wǎng)的興起,用戶對(duì)自己的隱私安全也越來越關(guān)注。自然,作為Android系統(tǒng)第一道防線——被廣泛使用[1]的屏幕圖案鎖的安全性到底如何就被推到了風(fēng)口浪尖。
0引言
Android系統(tǒng)屏幕圖案鎖作為一種隱私保護(hù)手段,無外乎就是鎖屏密碼的輸入、加密和存儲(chǔ)三個(gè)步驟的安全,一般來說,鎖屏密碼明文的加密和密文的存儲(chǔ)才是最關(guān)鍵的。Android系統(tǒng)屏幕圖案鎖加密過程如圖1:
圖1圖案鎖加密過程
針對(duì)Android系統(tǒng)屏幕圖案鎖的安全性有不少人已經(jīng)進(jìn)行了探討。從組合數(shù)學(xué)的角度討論鎖屏圖案的所有可能性問題時(shí),徐金成[2]得出的結(jié)論是985824種可能,并且采用字典的方式破解了鎖屏圖案。但由于鎖屏圖案編碼規(guī)則的復(fù)雜性,其得出的鎖屏圖案可能性總數(shù)是錯(cuò)誤的,這由福建師范大學(xué)的倪超凡[3]使用Mathematic軟件編程得到了正確的結(jié)果:389112,進(jìn)一步證明了破解效率可以更高。在具體編程實(shí)現(xiàn)上,杜謙[4]描述了SHA-1算法的實(shí)現(xiàn)過程,并討論了多語言實(shí)現(xiàn)的問題,而朱珍[5]則具體用了C++語言完成了SHA-1算法的實(shí)現(xiàn)。
1Android系統(tǒng)屏幕圖案鎖介紹
Android系統(tǒng)屏幕圖案由分布類似于9宮格的9個(gè)點(diǎn)組成,而作為輸入的密碼正是這9個(gè)點(diǎn)中4個(gè)以上點(diǎn)按順序連接成的一條帶方向的路徑。生成這樣路徑的具體規(guī)則是:1)路徑上點(diǎn)的數(shù)量不小于4,且不大于9;2)路徑不允許跳過途中必須要經(jīng)過的點(diǎn);3)如果路徑中間的點(diǎn)之前用到過的,那么這個(gè)點(diǎn)就可以被跳過。圖1列出了幾種常見的有向路徑,其中c圖的路徑是非法的。
圖2 幾種常見的鎖屏有向路徑
在Android系統(tǒng)中這9個(gè)點(diǎn)從左往右、從上往下編碼為0X00、0X01、……0X08,每一條合法圖案鎖屏路徑就可以用一串16進(jìn)制的數(shù)字來表示,也即待加密的明文。以圖2(b)的圖案為例,其鎖屏路徑編碼為“010403060708”,接下來就是用加密算法對(duì)其進(jìn)行加密,然后將加密后的密文進(jìn)行安全存放。
這里采用加密算法是SHA-1,SHA-1是安全散列算法中的一種,本質(zhì)是將一個(gè)不超過264位的明文消息生成一個(gè)160位的消息摘要。它有這樣三個(gè)特點(diǎn):1)由消息摘要反推原輸入消息,從計(jì)算理論上來說是困難的;2)想要找到兩組不同的消息對(duì)應(yīng)到相同的消息摘要,從計(jì)算理論上來說也是困難的;3)任何對(duì)輸入消息的變動(dòng),都有很高的概率導(dǎo)致其產(chǎn)生的消息摘要迥異,也即函數(shù)的雪崩性。因而它通常用作驗(yàn)證數(shù)據(jù)完整性、密碼的存放(比如這里的鎖屏密碼),同時(shí)也是數(shù)字簽名(Digital Signature Standard,DSS)中廣泛使用的加密算法。但SHA系列算法都存在哈希碰撞攻擊的缺陷,針對(duì)SHA-1最近所能達(dá)到最好攻擊效果的是2005年8月17日的CRYPTO會(huì)議中王小云等[6]提出的SHA-1雜湊函數(shù)雜湊沖撞算法的改良版,此改良版能在263個(gè)計(jì)算復(fù)雜度內(nèi)找到哈希碰撞。
2針對(duì)圖案鎖密文的暴力破解
暴力破解其實(shí)就是窮舉法,簡單來說就是將密碼的可能值進(jìn)行逐個(gè)比較或代入驗(yàn)證直到找出真正的密碼為止。比如一個(gè)四位并且全部由數(shù)字組成的密碼共有104種組合,也就是說最多我們嘗試9999次就能找到真正的密碼,因而利用這種方法破解任何一個(gè)密碼都只是時(shí)間問題。由文獻(xiàn)[3]可知,真正合法的鎖屏路徑只有389 112條,那么對(duì)應(yīng)的密文也只有389 112種可能,這正適合暴力破解方式的特點(diǎn),事實(shí)上以當(dāng)前個(gè)人計(jì)算機(jī)的運(yùn)算能力來評(píng)估,這樣規(guī)模的問題基本上都是“秒破”。
現(xiàn)今稍具嚴(yán)密度的密碼驗(yàn)證機(jī)制都會(huì)設(shè)下試誤的可容許次數(shù)以應(yīng)對(duì)使用密碼窮舉法的破解,比如當(dāng)試誤次數(shù)達(dá)到可容許次數(shù)時(shí),密碼驗(yàn)證系統(tǒng)就會(huì)自動(dòng)拒絕繼續(xù)驗(yàn)證,有的甚至還會(huì)自動(dòng)啟動(dòng)入侵警報(bào)機(jī)制。例如安卓系統(tǒng)則是在試誤達(dá)到可容許次數(shù)時(shí),要求輸入gmail賬號(hào)進(jìn)行驗(yàn)證,但現(xiàn)實(shí)情況是手機(jī)本身設(shè)置gmail賬號(hào)的用戶并不多,尤其是在國內(nèi)。
綜合以上兩個(gè)因素,安卓系統(tǒng)屏幕圖案鎖被暴力破解的概率是完全可能的。
針對(duì)此問題的解空間大小僅為389 112,可以采取的暴力破解思路是通過將程序生成的所有可能鎖屏路徑編碼經(jīng)SHA-1加密后的密文字符串與gesture.key中存儲(chǔ)的目標(biāo)密文對(duì)比,當(dāng)對(duì)比結(jié)果相同時(shí)停止后續(xù)的密文對(duì)比。SHA-1算法是個(gè)比較常用的算法,它的描述隨處可見,在此就不贅述了,這里描述的只是破解軟件的設(shè)計(jì)思路。
設(shè)計(jì)思路描述如下:
1)執(zhí)行adb命令“adb pull /data/system/gesture.key gesture.key”獲取手機(jī)gesture.key文件到電腦上;
3)生成串連點(diǎn)數(shù)為i(4≤i≤9) 時(shí)鎖屏路徑對(duì)應(yīng)數(shù)值大小最小的16進(jìn)制數(shù)字串NS,這里的鎖屏路徑后文稱為碰撞有向鎖屏路徑;
4)將NS按二進(jìn)制位串用SHA-1加密算法生成對(duì)應(yīng)的密文SC;
5)用SC 與EC 進(jìn)行對(duì)比,如若相同則結(jié)束程序,返回NS;
6)否則NS=NS+1,跳轉(zhuǎn)到步驟4,直到串連點(diǎn)數(shù)為i的鎖屏路徑取完,執(zhí)行下一步;
7)i=i+1,循環(huán)步驟3到6。
在以上的設(shè)計(jì)思路描述中有三個(gè)細(xì)節(jié)問題沒有說到,主要因?yàn)檫@不是本文要談的核心問題。其一是將有向鎖屏路徑在輸出窗口畫出的實(shí)現(xiàn);其二是將軟件破解耗時(shí)在輸出窗口顯示的實(shí)現(xiàn);其三是將有向鎖屏路徑編碼在輸出窗口顯示的實(shí)現(xiàn)。
如下圖4即為所涉及的軟件在有向鎖屏路徑為圖2(b)時(shí)對(duì)gesture.key的暴力破解結(jié)果,其中的有向路徑是動(dòng)態(tài)顯示的,用以看出其有向性。同時(shí)要交代的一點(diǎn)是:為便于軟件的實(shí)現(xiàn),在碰撞有向鎖屏路徑生成時(shí)并沒有嚴(yán)格按照Android系統(tǒng)屏幕圖案鎖生成規(guī)則執(zhí)行,也即生成的碰撞有向鎖屏路徑在事實(shí)上可能是不允許存在的。
圖4 圖案鎖有向路徑為圖2(b)時(shí)的破解結(jié)果
由運(yùn)行結(jié)果可知,即使沒有排除那些不合法的有向路徑,暴力破解所耗費(fèi)的時(shí)間只要幾十毫秒,離秒都差兩個(gè)數(shù)量級(jí),這也反證了軟件設(shè)計(jì)之初沒有嚴(yán)格使用有向鎖屏路徑生成規(guī)則的合理性。
當(dāng)然,如果目的僅為了破除Android系統(tǒng)的屏幕圖案鎖自不必如此麻煩,但假如你想進(jìn)入別人的手機(jī),但又不想讓其發(fā)覺的話,這就是最佳方法。Android系統(tǒng)屏幕圖案鎖主要是因gesture.key文件的存在而存在,只要將這個(gè)文件刪除掉即可。目前常用的方式有兩種:一是通過Android調(diào)試橋(Android Debug Bridge,adb)運(yùn)行設(shè)備的殼shell來直接操作管理Android設(shè)備,將該文件刪掉,不過采用這種方法的前提是Android設(shè)備開啟了USB調(diào)試模式;二是直接恢復(fù)出廠設(shè)置,只是這種方法將會(huì)使得Android設(shè)備里的用戶資料全部清除,因而只適用于設(shè)備里沒有重要資料的用戶和實(shí)在無法使用其他方法找回鎖屏密碼的用戶。另有通過屏幕污點(diǎn)反射、口令繞過的途徑[7]也可以破除屏幕圖案鎖的安全保障作用。
3總結(jié)
鑒于用此種方法破解Android系統(tǒng)的屏幕圖案鎖輕而易舉,還能不被人發(fā)覺,所以提出幾點(diǎn)關(guān)于Android設(shè)備安全使用要點(diǎn)。第一,Android設(shè)備不要輕易root,如若root了,那也要在不必要的時(shí)候關(guān)閉USB調(diào)試模式,這樣就阻止了通過adb方式破解的可能;第二,開啟遠(yuǎn)程銷毀數(shù)據(jù)功能,避免在遭破解后的隱私數(shù)據(jù)泄露;第三,建議設(shè)置的有向鎖屏路徑構(gòu)成點(diǎn)不少于6個(gè),同時(shí)也不要以常見字符,比如“Z”、“2”等作為鎖屏圖案。
參考文獻(xiàn):
[1]北京比達(dá)信息咨詢有限公司.2015年4月手機(jī)鎖屏APP用戶調(diào)查報(bào)告[R].北京,2015.
[2]徐金成.Android 手機(jī)屏幕保護(hù)安全性研究[J].信息通信,2013(3):97~98.
[3]倪超凡.安卓系統(tǒng)屏幕密碼鎖暴力破解的可行性分析[J].衡水學(xué)院學(xué)報(bào),2014(2):12~14.
[4]杜謙,張文霞.多語言可實(shí)現(xiàn)的SHA-1散列算法[J].武漢理工大學(xué)學(xué)報(bào)(信息與管理工程版),2007(7):42~44.
[5]朱珍.數(shù)字簽名算法SHA-1的C++實(shí)現(xiàn)[J].華南金融電報(bào),2007(4):102~104.
[6]Wang Xiaoyun, Yin Yiqun, Yu Hongbo. Finding Collisions in the Full SHA-1[C]. Advances in Cryptology-Crypto 05. LNCS 3621:17~36,2005.
[7]陳兆煙,黃君燦,魏馳.Android手機(jī)屏幕圖形鎖問題分析[J].海峽科學(xué),2014(10):50~51.
Brute force to the android pattern screen lock
ZHENG Zhi-Hua1,2, SHI Shu-Dong2, FAN Bian-Xia2,3
(1.College of Physics and Electronic Science, Hubei Normal University, Huangshi435002, China;
2.College of Computer Science and Technology, Hubei Normal University, Huangshi 435002, China;
3.College of Mathematics and Statistics, Hubei Normal University, Huangshi435002, China)
Abstract:SHA-1 widely used in many security protocols, including TLS and SSL, PGP, SSH, S/MIME and IPsec, has been seen as the successors of the MD5.In this paper, based on the encryption algorithm based on SHA-1 the Android lock screen design examples, the encryption algorithm for SHA-1 completed the C language implementation, design lock for the brute force at the same time, briefly discusses the screen lock security problems.
Key words:SHA-1; Brute force attack; Android screen pattern lock; security privacy