張嵩 李剛 魏康威 李銘樂 武宗品
摘要:移動終端數據的存儲安全一直是信息安全防護體系的薄弱點,對移動終端上存儲的數據進行加密,可以有效防范數據泄露。本文以Android移動終端數據存儲安全為研究對象,基于沙盒機制研發了一套通用的虛擬文件系統,在此基礎上提出了一種Android移動終端數據安全存儲方案。
關鍵詞:Android虛擬應用技術;信息安全;存儲安全
中圖分類號:TP309.2? ? 文獻標識碼:A? ? 文章編號:1007-9416(2020)10-0000-00
0 引言
隨著互聯網和移動通信技術的發展,人們已經習慣在移動終端上進行移動辦公、移動支付、處理生活娛樂。但移動終端仍存在著很大的數據安全隱患,主要集中在幾點三點[1]:(1)移動終端漏洞多,為病毒、木馬的入侵提供了條件,使得存儲在移動終端上文件數據不安全可靠。(2)移動終端存在丟失的可能,移動終端丟失以后存儲在移動終端上的重要文件和信息有可能被別有用心的人獲取并非法牟利,會給用戶造成經濟損失。(3)移動終端成為網絡攻擊的新目標,目前網絡上釣魚網站泛濫,針對移動終端的網絡攻擊更是層出不窮,數據顯示每年的釣魚網站攻擊事件超4000萬起。移動終端上存儲的文件數據安全應當引起我們足夠的重視,防止文件泄露丟失以及被非法技術手段竊取以避免造成不必要的損失和麻煩。
移動終端數據安全防護常見的防護重點在三個環節:云端數據保護、傳輸數據保護和終端數據保護。前兩者可以通過加密的訪問控制、數據加密進行處理,但終端數據保護僅僅通過Android的文件系統私有目錄訪問權限進行訪問控制是不夠的。目前常見的解決方案是有兩種:(1)應用自行對存儲數據進行加密,但缺點是應用開發者往往專注于業務開發,不擅長數據安全相關的業務,容易從設計之初就留下隱患。(2)打開Android的“全盤加密”功能,但打開后對整個設備的性能有較大影響。目前這兩種方案對于用戶來說操作有些繁瑣,本文基于沙盒的機制研發了一套通用的虛擬文件系統,并以此為基礎提出了一種Android移動終端數據安全存儲方案,方便開發者和用戶使用,給用戶提供一個安全可靠的終端數據存儲環境。
1 數據安全存儲方案需求分析
隨著智能手機的大規模應用普及,智能手機大有取代電腦之勢,成為人們日常工作和生活的必需用品,并且存儲在手機中的文件重要性也越來越高,保存在智能手機中的文件也面臨著越來越嚴峻的考驗。目前市面上存在的加解密軟件都是需要用戶在打開文件時輸入密碼以進行身份認證,不方便用戶使用并且文件加解密效率不高[2]。為方便用戶操作和提高文件加解密效率,結合當前智能手機的主流操作系統和文件加解密的發展與現狀,本文設計開發了基于Android虛擬應用技術的數據安全存儲方案。本方案需要實現以下兩個功能需求:
(1)實現Android平臺下存儲于移動終端上文件的透明加解密功能,即做到在用戶無感知情形下的文件加解密,當加密的文件經復制或移動到其他環境下進行查看時,文件會以亂碼顯示,起到安全加密保護作用,有效保護存儲在移動終端上的文件,阻止移動終端中隱私文件的泄露。(2)減少用戶的多余操作,最大程度方便用戶使用。區別于傳統加解密軟件需要頻繁輸入密碼的操作,在創建或是打開文件時,用戶感受不到文件數據正在進行的加解密操作,能夠自動的對受保護的文件類型進行加解密操作以達到文件透明加解密的目的。除此之外,本方案需要提供常規的用戶管理功能,如密碼設置、密碼找回等。
2 技術與設計
文件存儲加解密技術已經日趨成熟,不過目前多應用在Windows系統平臺下,針對Android手機的文件存儲加解密軟件參差不齊,本文設計了一個基于Android系統平臺的文件透明加解密系統,在Native層通過攔截系統調用I/O函數實現加透明解密功能,從而改善用戶體驗加解密效率[3]。
2.1 虛擬應用技術實現分析
Android虛擬應用技術可以理解為輕量級的“Android虛擬機”、一個虛擬化的Android系統[4],其形態為高可擴展,可定制的集成SDK(軟件開發包),虛擬應用支持第三方應用靜默安裝,安裝在虛擬應用中的第三方應用程序不僅可以正常啟動運行,同時第三方應用程序所產生的私有數據能夠與虛擬應用外系統進行隔離。第三方應用程序的運行必須要由Android系統的Framework層作為支撐,其中最重要的部分是各種系統服務和Android系統的四大組件,應用程序通過調用Framework提供的系統接口和服務,才能實現應用業務和操作各種手機硬件外設。Android虛擬應用內部設計了一套類似于Android系統Framework的接口和服務,這些接口與服務的設計是基于Java反射和動態代理技術的原理實現的[5],動態代理為系統服務生成了Proxy代理端,代理的系統服務包括相機、藍牙、音頻、網絡、電話、定位等外設模塊。Android虛擬應用內部的應用通過代理服務才能訪問系統服務,實現了操作相應硬件的功能。
2.2 存儲訪問代理技術實現分析
Android系統每個應用程序都有自己的私有目錄,系統會在內部存儲空間/data/data 目錄下以應用包名為名字自動創建與之對應的文件夾,該目錄存儲與應用相關的數據,如應用配置、數據庫信息等,該目錄只有宿主應用可以訪問,其他應用沒有權限訪問,該目錄隨著應用的卸載會被清除,保證用戶信息的安全,同時系統也有公共的目錄,用來存儲與應用無關的數據,如拍照類APP存儲的圖片等數據,這些數據存儲在公共目錄,其他應用也是可以訪問到的,并且應用刪除后系統不會清除這些數據。安裝在虛擬應用內部的應用程序產生的數據會被保存到公共目錄,這樣會被其他應用訪問到,為了保證內部數據的完全隔離,虛擬應用需要代理存儲訪問,將內部應用保存到公共目錄的數據重定向到應用的私有目錄下,保證虛擬應用內數據與系統外部數據完全隔離,這樣虛擬應用卸載后所有的數據都會被清除,不會造成數據泄漏,保證數據安全存儲。為了保證用戶數據的絕對安全存儲,虛擬應用在數據隔離的基礎上還增加了本地數據透明加解密,這樣即使虛擬應用內本地保存的數據泄漏出去也是加密的數據,其他人無法查看加密數據內容。存儲訪問代理層實現的功能主要由文件重定向和數據加解密的決策控制兩部分組成:
(1)文件重定向(數據隔離)[6],Android應用最終都是通過系統標準函數庫(libc.so)接口,去訪問手機存儲。虛擬應用通過攔截(Hook)代理該函數庫接口[7],修改接口的輸入參數(文件存儲路徑),將文件存儲路徑修改為應用私有目錄路徑,使應用數據都存儲到私有目錄下。(2)數據加解密的決策控制,應用層對存儲系統的訪問是通過open/read/write這些I/O函數操作手機存儲系統,應用層通過JNI調用Linux系統的I/O函數訪問存儲,虛擬應用在JNI層增加了一層存儲訪問代理,代理Linux的open/read/write等I/O函數。這樣當應用層有文件I/O操作時,都會先走到存儲訪問代理層,存儲訪問代理層決策是否需要對文件加密/解密,然后調用加解密組件模塊執行加解密操作。在虛擬應用內的第三方應用有新建文件操作時,會先走到存儲訪問代理接口,此代理接口根據讀取到的應用信息及文件協議類型,判斷是否需要加密。如果該文件需要加密,則調用加解密組件,進行數據加密;加密完成后,存儲訪問代理層再調用系統I/O接口將密文寫入文件存儲系統,文件加密完成;如果該文件不需要加密,則正常寫文件。讀文件時存儲訪問代理層會先讀取文件頭,判斷該文件是否為加密文件,如果該文件是加密文件,調用加解密組件從文件讀出加密數據對數據解密,然后將解密后的明文返回給應用層,文件解密完成;如果該文件不是加密文件,正常讀取文件。
2.3 系統總體設計
系統設計包括:存儲訪問代理,加解密組件,密碼模塊組成。(1)存儲訪問代理主要負責攔截應用程序對文件的I/0操作,之后將獲取到的數據傳遞給加解密組件處理;(2)加解密組件主要負責接收存儲訪問代理傳遞的需要加密的明文文件數據或者需要解密的密文文件數據,之后調用密碼模塊接口對數據進行加解密操作;(3)密碼模塊主要負責會話密鑰,針對每一個需要加密的文件都會產生一個新的會話密鑰,并負責對文件數據的加解密操作。
3 實際應用
以虛擬應用技術、存儲訪問代理技術作為底層基礎框架,公司組織團隊開發從終端到后臺管理的基于Android虛擬應用技術的數據安全存儲系統軟件。
3.1 功能模塊
(1)用戶管理。基于Android虛擬應用技術的數據安全存儲軟件可以將客戶的組織架構信息通過Excel表的形式導入,也可以在平臺上錄入信息。管理員可以對這些用戶信息進行增刪改查,并對用戶的賬號密碼進行重置。(2)文件透明加解密。在使用數據安全存儲系統軟件時,對保存的文件進行加密處理,查看文件時進行解密處理。整個過程中用戶不會感覺到文件文身的加解密。方便用戶使用操作,無額外附加操作。
3.2 使用場景
基于Android虛擬應用技術的數據安全存儲方案是順應市場需求,面向政務部門等一些對文件存儲安全等級要求比較高的行業,為用戶提供一個安全可靠的移動終端使用環境,保證用戶文件安全存儲。
4 結語
本文分析了數據安全存儲方案需求以及虛擬技術、存儲訪問代理技術的實現原理,并以此做為底層基礎框架開發出Android虛擬應用技術的數據安全存儲軟件,滿足應用無需修改的情況下,對存儲在移動終端上的數據進行加解密的需求。后期,在數據加密的類型上可以做更多的優化,以支持更多的文件協議,同時,可以考慮通過配置的方式實現對應用要保存的數據的靈活管控和權限驗證。
參考文獻
[1] 王喆.Android移動終端數據安全檢測方法研究[J].網絡安全技術與應用,2019(1):63-64.
[2] 唐銘若.基于Android平臺的文件透明加密的設計與實現[D].成都:電子科技大學,2012.
[3] 沈成,李永忠.Android平臺下文件透明加解密技術的研究與設計[J].通信技術,2017(12):2846-2851.
[4] 侯俊行,楊哲慜,楊珉.安全隔離的安卓應用虛擬化框架設計與實現[J].小型微型計算機系統,2019(9):1987-1993.
[5] 陳先躍,王大全.基于動態代理Android插件化研究與實現[J].工業控制計算機,2017(7):99-100.
[6] 崔海娜.基于虛擬化及重定向技術的Android沙箱的設計與實現[D].北京:北京郵電大學,2018.
[7] 王炯.基于系統調用截獲的Android隱私保護[D].西安:西安電子科技大學,2013.
收稿日期:2020-08-31
作者簡介:張嵩(1985—),男,河南鄭州人,本科,研究方向:Android框架、Linux內核、移動終端信息安全。
Data Security Storage Scheme Based on Android Virtual Application Technology
ZHANG Song, LI Gang, WEI Kang-wei, LI Ming-le, WU Zong-pin
(Zhengzhou Xinda Jiean Information Technology Co., Ltd, Zhengzhou Henan? 450003)
Abstract: The storage security of mobile terminal data has always been the weak point of information security protection system, encrypt the data stored on the mobile terminal, it can effectively prevent data leakage. This paper takes Android mobile terminal data storage security as the research object, a general virtual file system is developed based on sandbox mechanism, based on this a secure data storage scheme for Android mobile terminal is proposed.
Key words: android virtual application technology; information security; storage security