3、Android安全保護機制及解密方法研究(2013《技術研究》)java
1.Android設備安全機制android
從用戶界面看,Android的安全保護機制主要體現爲對於用戶界面的訪問控制的保護,好比在設備空閒時,用戶能夠鎖定設備,並設置解鎖口令,從而防止未受權的其餘用戶打開設備。數據庫
在Android設備上,經常使用的屏幕鎖定方式包含如下幾種:安全
此外,新版的Android操做系統還加入了與蘋果iOS相似的文件系統加密機制。ide
2.Android圖案鎖定原理及解密工具
(1)加密測試
在Android設備上,用戶能夠經過設置鎖定圖案做爲密碼對設備用戶界面進行鎖定。加密
Android設備的鎖定界面有9點組成,鎖定圖案需知足三個條件:至少3點、最多9點、無重複。這種解鎖方式在Android存儲時使用的是明文轉換後採用散列方式存儲。操作系統
Android設備圖案鎖定的加密存儲過程:圖案輸入——>轉換明文——>SHA-1散列——>存儲。blog
(a)用戶輸入圖案。
(b)圖案轉換爲明文,從左上角起編號爲00,至右下角止編號爲08,例如Z字形轉換後爲00-01-02-04-06-07-08。
(c)將十六進制字符串00010204060708使用SHA-1進行散列計算,獲得散列值。
(d)將散列值存儲在Android設備~/data/system/gesture.key文件中。
至此,能夠看出Android設備鎖定圖案的實質是6位數字到18位數字,且各單數位數字爲零,雙數位數字不重複地排列,並將這個排列進行單次SHA-1計算。
經過數學計算,因爲單數位肯定,雙數位不重複,則,根據Android圖案鎖定規則能夠設置的鎖定圖案總數爲986328個,其密碼容量甚至小於6位純數字密碼,因此其密碼複雜度不高,破解相對容易。
(2)解密
針對圖形鎖定,能夠採用預計算密碼錶方式進行暴力破解,在獲得圖案存儲文件gesture.key的基礎上(須要具備root權限),使用月50MB的密碼錶在1秒內便可完成全部圖形鎖定的破解。
3.Android字符密碼加密原理及破解
(1)加密
除了採用圖形設定設備以外,Android還容許用戶使用4-16位的數字PIN碼或者文本字符做爲鎖定密碼。每一位密碼範圍爲94字符,包括52個大小寫英文字母+10個數字+30個除空格外的標點符號,在這種要求下輸入的字符,加入Salt後進行SHA-1和MD5散列,以後,將散列結果存儲於~/data/system/password.key文件中。
Android設備字符密碼加密過程:字符輸入——>加入Salt——>SHA-1+MD5散列——>合併散列存儲。
在Android的源代碼中可瞭解其字符密碼加密過程的實現方式(com/android/internal/widget/LockPatternUtils.java)。
若用戶設置了4位密碼,密碼容量爲78074896(94^4);當設置了16位密碼時,密碼容量就很大了。
由此能夠看出,Android設備上字符型密碼鎖定設備的密碼強度至關高。
(2)解密
因爲在SHA-1前先被加入了Salt值,因此暴力破解或預計算密碼錶的方式需提供Salt值。在Android操做系統中,字符型密碼使用到的Salt值存儲於手機設備的settings.db數據庫中,該文件位於~/data/data/com.android.providers.settings/,該數據庫中的secure表,存儲了字符密碼加密使用的Salt。同時,解密還需password.key文件中所包含的散列值,該文件存儲於~/data/system/password.key。在該key文件中,包含了72字節的16進制字符串。
在獲得password值與Salt以後,一樣能夠採用暴力破解方式對Android設備的字符型密碼進行攻擊(須要用到一些暴力破解工具)。
4.Android面部識別的破解
面部識別並不徹底可靠和準確,而且缺少真人判斷機制,惡意用戶能夠用照片繞過驗證。
5.Android存儲加密
除了屏幕鎖定,新版Android操做系統還支持Android設備內置存儲空間進行加密,這種加密方式基於dmcrypt,運行於block device層,這樣的加密默認只能對ext4分區進行,因此在Android3.0及以上的版本中財提供這種功能,存儲加密要求首先設置至少6位且包含至少1位數字的字符型密碼。
在Android存儲加密中,主密鑰採用AES 128位加密,主密鑰在加入Salt值以後被存儲於分區尾部或獨立的文件中。
存儲解密時,首先須要將Android設備進行完整的物理轉儲(可採用JTAG等方式),以後從分區尾部查找Salt值及加密後的主密鑰,使用帶Salt的PBKDF暴力破解的方式對密碼進行測試,使用得出的密鑰與SHA-256計算後的VI對主密鑰進行解密,以後可以使用真正主密鑰對完整鏡像進行解密。
6.總結
分析的是Android2.3.5,就瞭解下理論知識。