史 楊
(鄖陽師范高等??茖W(xué)校 湖北 442000)
Android系統(tǒng)手機(jī)一般存放著用戶個(gè)人的許多隱私數(shù)據(jù),比如手機(jī)號(hào)碼、QQ、微信聊天記錄、通訊錄、短信及支付寶交易密碼等等。這些數(shù)據(jù)都是用戶非常有價(jià)值的隱私,一旦泄密將造成不可估量的后果。然而在現(xiàn)實(shí)中,這些數(shù)據(jù)的存儲(chǔ)并沒有我們想象中的那么安全,本文將從程序開發(fā)的角度來分析Android系統(tǒng)手機(jī)的安全性。
在Android系統(tǒng)手機(jī)中,內(nèi)存一般在10G左右,經(jīng)常不能滿足用戶的需求,所以大多數(shù)的手機(jī)在購買后都會(huì)加一個(gè)30G左右大小的SD卡,用于存儲(chǔ)照片、視頻及其它外部文件。而一些國內(nèi)較早版本的 IM軟件,直接把聊天記錄保存在手機(jī)的外部SD卡中,但是在Android系統(tǒng)中的外部存儲(chǔ)的安全隱患最大,任何軟件只需要在AndroidManifest.xm1中聲明如下一行權(quán)限,即可讀寫外部存儲(chǔ)設(shè)備。
其它軟件只要擁有內(nèi)存卡讀寫權(quán)限,就可以訪問它的內(nèi)容,若即時(shí)聊天軟件的聊天記錄存放在SD卡中的話,就給了一些惡意軟件留下了可乘之機(jī),從而造成用戶數(shù)據(jù)的悄無聲息的泄密。
所以在Android系統(tǒng)程序開發(fā)中,可以適當(dāng)?shù)牟捎猛獠看鎯?chǔ)來保存數(shù)據(jù),但是若涉及到用戶隱私的,即使加密了的數(shù)據(jù),最好也不要放到外部存儲(chǔ)設(shè)備上,通過上面分析,只要是Android程序開發(fā)員掌握了軟件數(shù)據(jù)的解密方法,可以簡(jiǎn)單的獲取用戶的隱私。
Android系統(tǒng)的內(nèi)部存儲(chǔ)是所有軟件存放私有數(shù)據(jù)的位置,在 Android系統(tǒng)安裝包中提供了 openFi1eInput()和openFi1eOuput()方法來讀寫程序的私有數(shù)據(jù)目錄。如一段常見的存儲(chǔ)內(nèi)部數(shù)據(jù)的代碼1片段如下:
openFi1eOutput()方法的MODE_PRIVATE參數(shù)指定了文件創(chuàng)建的模式,表明該文件是不能被其他程序訪問的,Android系統(tǒng)內(nèi)部存儲(chǔ)的訪問是通過Linux文件訪問權(quán)限機(jī)制控制的。
若我們?cè)诔绦蜷_發(fā)時(shí),將 MODE_PRIVATE參數(shù)更改為MODE_WORLD_READABLE,則文件允許其他用戶進(jìn)行讀操作。當(dāng)內(nèi)部存儲(chǔ)文件可以被訪問時(shí),程序開發(fā)者可以通過以下代碼2片段來獲取該數(shù)據(jù)的內(nèi)容。
從上面程序代碼我們可以知道,createPackageContext()方法允許創(chuàng)建其他程序包的上下文,即 Context對(duì)象,通過這個(gè)對(duì)象,程序可以啟動(dòng)其他程序的Activity,并且訪問其它程序的私有數(shù)據(jù)。經(jīng)過Context.CONTEXT_IGNORE_SECURITY指定程序忽略創(chuàng)建Conetxt時(shí)的安全異常,將會(huì)始終創(chuàng)建Context對(duì)象,由于程序賦予了相應(yīng)的權(quán)限,程序不會(huì)發(fā)生異常。
所以我們?cè)诔绦虼a 1片段中,即使把參數(shù)設(shè)置為MODE_PRIVATE,惡意程序依然能夠通過其他途徑獲取高一級(jí)的訪問權(quán)限,從而通過系統(tǒng)漏洞來提升訪問權(quán)限,進(jìn)一步來訪問軟件的內(nèi)部存儲(chǔ)的隱私數(shù)據(jù)。
通過對(duì)Android系統(tǒng)外部存儲(chǔ)數(shù)據(jù)和內(nèi)部存儲(chǔ)數(shù)據(jù)安全來看,無論我們采用什么樣的存儲(chǔ)方式,惡意程序都可以通過修改訪問權(quán)限,或者提升訪問權(quán)限來獲取Android系統(tǒng)的漏洞,從而獲取用戶的私密數(shù)據(jù),所以對(duì)于程序開發(fā)者來說,務(wù)必要對(duì)存儲(chǔ)在內(nèi)外部的數(shù)據(jù)進(jìn)行加密,提升Android系統(tǒng)手機(jī)的數(shù)據(jù)安全。
[1]吳倩,趙晨嘯,郭瑩.Android安全機(jī)制解析與應(yīng)用實(shí)踐.北京:機(jī)械工業(yè)出版社.2013.
[2]肖梓航.再談Android軟件的安全開發(fā).程序員.2013.