999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于AndroidWear的智能設備數據安全防護技術研究

2016-04-12 00:00:00李惠
現代電子技術 2016年19期

摘 要: 隨著移動技術的發展與智能操作系統的推廣,智能設備在為用戶提供便利的同時,也存在一些數據安全隱患。針對Android Wear智能手表,提出了一種通過在Linux內核層對麥克風、藍牙和ADB等數據端口進行開關控制,以實現對手表中的數據進行保護的技術。該技術使用了兩種不同的途徑實現對三個數據端口的控制。同時,還實現了一種內核程序的用戶交互方法,在文件系統驅動程序中截獲用戶層程序對特定文件的讀寫操作,可以顯示數據端口的當前開關狀態,并對開關狀態進行控制,而不需要增加或修改應用層程序,最后通過實驗驗證了該技術的可行性。

關鍵詞: Android Wear; 智能手表; 數據保護; 數據端口開關控制

中圖分類號: TN92?34; TM417 文獻標識碼: A 文章編號: 1004?373X(2016)19?0020?05

Abstract: With the development of mobile technology and promotion of intelligent operating system, some hidden dangers in data security also occurred in the intelligent devices while they were providing the convenience for their users. For the Android Wear smart watch, a data protection technology is presented, which can protect the data in the watch by means of switch control in Linux kernel level to control the data ports of microphone, Bluetooth and ADB. This technology uses two different approaches to control the three data ports. A user interaction method of kernel program was implemented, which can intercept the specific files′ read?write operation of the user layer program in file system drive program, display the current switch status of the data ports, and control the switch status without increasing or modifying the application layer program. The feasibility of this technology was verified with experiment.

Keywords: Android Wear; smart watch; data protection; data port switch control

0 引 言

Android Wear智能手表作為一種新式的可穿戴設備給人們的生活帶來了極大的便利[1]。智能手表作為隨身穿戴的設備,很可能被非法分子作為竊聽他人隱私的媒介,智能手表中的重要數據可能通過藍牙泄露出去,當手表遺失或被竊后,他人可以使用ADB命令或手機助手軟件將手表中的數據拷貝出去,從而給用戶帶來嚴重的損失。通過研究Android Wear智能手表的數據保護技術,讓用戶可以在開會或其他涉及重要隱私信息的場合,選擇將手表中可能導致數據泄露的端口關閉,從而起到數據保護的作用[2]。

1 數據保護技術的原理與控制

由于無法獲得Android Wear系統源碼,所以本文通過修改Linux內核層的代碼,增加對麥克風、藍牙和ADB驅動的控制,一方面可以防止惡意軟件的錄音竊取用戶重要信息;另一方面還可以防止重要數據通過藍牙和ADB泄露出去。本節主要從麥克風、藍牙和ADB三個方面分別介紹它們的實現原理,以及如何從內核層實現對它們的開關控制。

1.1 麥克風的工作原理與控制

麥克風是Android音頻系統中的輸入設備,通過分析音頻系統的架構,了解麥克風的工作原理與實現方式,進而在Linux內核層找到控制麥克風的關鍵代碼。Android音頻系統自上而下分為應用層、Java框架層、本地框架層、本地庫、硬件抽象層和驅動層[3]。通過Makefile和config變量定位麥克風驅動對應的文件。查看/sound目錄下的Makefile文件,內核編譯時將根據這些變量是否為[y]來選擇相應的文件進行編譯。

通過不斷在子目錄及相應的Makefile中跟蹤內核配置變量,確定最終被編譯進內核中和聲音有關的文件有/sound/sound_core.c和/sound/soc/msm/dory?mi2s.c。在兩個文件中的各個函數中都加入自定義的printk函數來輸出日志信息,然后通過ADB命令查看日志輸出,發現當向手表輸入語音指令時,其中dory_mi2s_startup為啟動函數[4]。

1.2 藍牙的工作原理與控制

Android藍牙架構包括四層,分別為應用層、框架層、C框架層、內核層。根據內核編譯系統的工作原理,通過追蹤內核配置變量,找到和藍牙有關的驅動程序有/drivers/bluetooth/bluesleep.c和 /drivers/bluetooth/bluetooth?power.c,然后通過在各函數中插入日志信息,查看函數調用流程,進而在關鍵函數中添加控制邏輯。然而通過實驗發現該方法并不完全有效,雖然可以切斷當前的藍牙連接,但是手表和手機之間仍然可以再次建立連接,這無法滿足本文的需求。于是提出了另外一種更為通用的方法,為了關閉某個功能模塊,首先找到該模塊所使用的可執行文件或重要的庫文件,然后在文件系統打開文件函數中添加對該文件的攔截,使得文件打開失敗,從而使得該功能模塊無法執行。

藍牙模塊使用了兩個庫文件/system/lib/hw/bluetooth.default.so和/system/lib/ libbluetooth_jni.so。接下來在/fs/namei.c文件的do_filp_open函數中添加對上述兩個庫文件的攔截。上面的方法可以阻止藍牙的再次打開,如果手表已經和手機建立了連接,上述的方法并不能斷開當前的連接,因此還需要將藍牙模塊的進程kill掉[5]。在內核中kill掉進程需要遍歷所有的進程,然后比較當前進程的名字是否為目標進程,如果是,則向該進程發送SIGKILL信號。

1.3 ADB的工作原理與控制

當用戶啟動ADBclient時,Client首先檢查是否有ADBserver正在運行。如果沒有,則啟動一個ADBserver進程。當Server進程啟動時,它綁定本地TCP5037端口,通過該端口接收ADBclient發送的命令。所有的ADBclient都使用5037端口與ADBserver通信[6]。

ADBserver與連接到PC上的Android設備或模擬器建立連接。Server通過掃描5555~5585范圍內的奇數端口來發現Android設備或模擬器。當Server發現一個ADBdaemon時,便會和那個端口建立連接。每個Android設備或模擬器需要兩個端口,偶數端口用于控制臺連接,奇數端口用于用戶ADB連接。一旦ADBserver建立與設備或模擬器的連接,便可以通過ADB命令來控制和訪問這些設備或模擬器。因為ADBserver管理與設備或模擬器之間的連接,所以可以通過ADBclient控制任何的設備或模擬器[7]。

通過對ADB工作原理的分析,得知手表中通過adbd守護進程與電腦建立連接,因此只要禁止該程序的執行,便可以達到關閉ADB的目的。

2 用戶交互界面

根據Android系統的分層架構可以知道,用戶使用智能手表,實際上是使用手表中的應用軟件,和用戶直接打交道的是位于最上層的App[8]。然而提出的數據保護方案的核心功能實現位于內核態,因此需要解決的是如何讓用戶通過使用上層的應用軟件來觸發內核中相應的動作(主要是對麥克風、藍牙和ADB的開關切換)。在不修改和添加智能手表中應用軟件的前提下,實現用戶交互界面的設計,主要采用的方法是尋找手表中自帶應用與系統文件的讀寫交互,在內核文件系統讀寫函數中添加判斷邏輯,當寫特定文件時,根據寫入文件的數據來觸發對數據端口開關的控制;當讀取特定文件時,通過修改返回的數據來顯示內核的狀態。

2.1 輸入界面的設計與實現

Android Wear系統中自帶一個鬧鐘應用,當設定鬧鐘時會有寫文件的操作,寫文件時會調用內核文件系統中vfs_write函數,這樣內核便可以將設定鬧鐘的時間作為用戶的輸入,根據時間的不同,對麥克風、藍牙和ADB進行相應的開關控制。

2.1.1 查找鬧鐘對應的應用程序

Android Wear 系統啟動后,安裝包管理器會解析系統中所安裝的應用,并為其建立對應的數據結構,同時會將所有應用的基本信息保存在文件中。這樣的文件共有兩個,它們位于/data/system目錄,分別是packages.list和packages.xml。可以從packages.list中查看系統中所有應用的安裝包信息,可以從packages.xml中獲得該安裝包所在路徑。

從命令的輸出中看到和時鐘有關的應用有三個,從安裝包的名字可以看出,其中com.google.android.deskclock是谷歌公司開發的,com.lge.wearable.worldclock是LG公司開發的,/data/data/com.google.android.clockwork. packageinstaller是程序安裝器。LG公司沒有必要為手表開發一個鬧鐘程序,因此com.google.android.deskclock應該就是要找的鬧鐘程序的包名。

2.1.2 查找鬧鐘程序所寫的文件

2.2 在內核中讀取設置的鬧鐘時間

當用戶設置鬧鐘時,程序會向/data/data/com.google.android.deskclock/shared_prefs/alarms.xml文件寫入設置的鬧鐘時間。根據Linux虛擬文件系統的相關知識,寫文件時會調用內核中的vfs_write函數,該函數位于內核源碼/fs/read_write.c文件中。在vfs_write函數中,對所寫文件名進行判斷,如果是鬧鐘文件,則在寫文件后,從鬧鐘文件中讀取設置的時間值,根據具體的時間值對數據端口進行相應的開關設置。從vfs_write函數傳入的參數可以獲得所寫文件的structfile指針,使用dentry_path_raw函數可以得到該file對象對應的絕對路徑,然后使用strcmp函數比較該路徑是否為鬧鐘文件的路徑。用設置鬧鐘的hour值當做用戶的輸入,讀取hour值的主要流程如圖2所示。

2.3 輸出界面的設計與實現

輸出界面用來顯示麥克風、藍牙和ADB的當前開關狀態,需要在手表自帶應用中找到一個合適的位置來顯示內核狀態信息,為了不影響手表軟件原有功能,最好找一個顯示一些固定靜態信息的頁面。通過分析現有應用,找到Settings下面的About界面,該頁面顯示手表系統的一些固定信息,比如Model、設備名、軟件版本等,其中有一項是Regulatory Information(監管信息),點擊該項后,顯示如圖3所示頁面,從外觀看,該頁面顯示的應該是一個固定的圖片。當上層應用讀取該圖片內容時,會調用底層內核文件系統中的vfs_read函數,通過修改返回的內容,使得該頁面顯示想要顯示的信息。

2.3.2 使用BMP圖片替換PNG圖片

壓縮格式的PNG不利于使用代碼對其修改,為了方便修改圖片的顯示內容,使用格式最簡單的BMP位圖文件。需要修改vfs_read函數,當讀取的文件為/system/etc/regulatory_info.png時,將bmpdata數組中的數據拷貝到用戶端,這樣當用戶查看手表監管信息時,將會顯示所需位圖。

2.3.3 修改位圖內存數據

為了在位圖中顯示信息,需要修改 bmpdata[]數組中的數據,修改BMP文件的圖形數據區域。對于256色位圖,每個像素點使用8位二進制數表示,這8位二進制表示的是顏色表中的一個顏色索引。顏色表用來描述位圖中的顏色,它有若干個表項,每個表項代表一種顏色,使用RGBQUAD結構表示。

在內核源碼/drivers/video/console/目錄下有很多字庫文件,使用其中的font_sun12x22.c文件。它使用寬為12像素,高為22像素的矩陣表示一個字符。位圖數據區記錄了位圖中每個像素的顏色,其掃描順序為從左到右,從下到上。要想在位圖中顯示字符,還需要知道每個字符對應的像素矩陣。

3 實驗與測試

3.1 實驗目標

通過設置鬧鐘為特定時間,對內核數據端口進行開關控制,并可以從Regulatory Information查看內核數據端口的狀態。

鬧鐘時間與數據端口開關的對應關系,如表1所示。

表1 鬧鐘時間與端口開關對應關系表

[鬧鐘時間\數據端口開關\1 點\打開麥克風\2 點\打開藍牙\3 點\打開 ADB\11 點\關閉麥克風\12 點\關閉藍牙\13 點\關閉 ADB\]

設計的輸出界面只能顯示數字和英文字符,在顯示時同時顯示三個數據端口的狀態,用MIC表示麥克風,用BT表示藍牙,ADB表示ADB。用0表示關閉狀態,用1表示打開狀態。“MIC:0BT:1ADB:1”表示麥克風處于關閉狀態,藍牙處于打開狀態,ADB處于打開狀態。

3.2 測 試

3.2.1 麥克風的測試

正常情況下,用手指點擊手表屏幕,手表進入喚醒狀態,此時只要說“OK Google”, 手表就會做出反應。

關閉麥克風:通過設置鬧鐘為11點將麥克風關閉,然后再對手表說“OK,Google”,手表沒有反應,由此可以證明麥克風功能已經成功關閉。同時,可以在Regulatory Information中看到麥克風端口狀態為0。

打開麥克風:通過設置鬧鐘為1點重新打開麥克風,可以在RegulatoryInformation界面看到麥克風的狀態為1,此時對手表說“OK,Google”,手表重新恢復響應。

3.2.2 藍牙的測試

正常情況下,手機可以和手表建立藍牙連接,當連接時,手機上會提示連接密碼確認。

關閉藍牙:通過設置鬧鐘為12點將藍牙關閉,手表與藍牙的連接斷開,且再次連接手表時,顯示無法和手表通信,因此可以證明藍牙功能已成功關閉。

打開藍牙:通過設置鬧鐘為2點將藍牙重新打開,此時手表并不會自動和手機建立藍牙連接,需要在手表上點擊手表設置中的Bluetoothdevices,它會提示重新啟動藍牙,點擊確認按鈕之后手表與手機會自動建立連接。

3.2.3 ADB的測試

關閉ADB:如圖4所示,在正常情況下,電腦可以通過ADB命令和手表通信,通過設置鬧鐘為13點將ADB關閉,當前的ADB連接會立刻斷開,且當再次輸入adbshell命令時,會顯示Devicenotfound,因此可以證明ADB功能已成功關閉。

打開ADB:通過設置鬧鐘為3點將ADB再次打開后,此時輸入adbshell,無法連接手表,需要拔下數據線再重新插上,再使用adbshell,可再次連接到手表。

4 結 論

Android Wear系統是谷歌專為智能手表等可穿戴設備設計的系統,出于碎片化的擔心,谷歌并沒有開放Android Wear的系統源碼,因此本文提出一種從內核層對可能造成數據安全問題的三個端口進行開關控制,從而起到數據保護的作用。通過對麥克風、藍牙和ADB工作原理的分析,在內核層實現了對這三個數據端口的開關控制。同時,設計了用戶交互界面,使得用戶可以方便地輸入指令,控制內核對三個數據端口進行開關切換,同時內核還可以將數據端口的開關狀態顯示給用戶。

最后通過測試證明了本技術方案可以對各數據端口進行有效控制,實現了對數據的保護。課題使用LGGWatch智能手表作為對象進行實驗,由于不同的硬件平臺對應的驅動程序可能不同,預裝的應用程序也可能存在差異,所以在移植性上還存在不足,這是今后努力的一個方向。另外,目前指令的輸入還缺少用戶身份識別模塊,如何對用戶進行有效的身份識別是另一個需要研究的方向。

參考文獻

[1] 徐尤華,熊傳玉.Android應用的反編譯[J].電腦與信息技術,2012(1):50?51.

[2] 蔡潔.基于高通平臺的Android系統分區管理[J].硅谷,2014(19):44?46.

[3] 張歡慶,高麗,宋承祥.基于ARM的嵌入式Linux交叉編譯環境的研究與實現[J].計算機與數字工程,2012(2):151?153.

[4] 夏盛新.基于Android的移動開放平臺SDK的設計與實現[D].西安:西安電子科技大學,2014.

[5] SCHMIDT A D, BYE R, SCHMIDT H G, et al. Static analysis of executables for collaborative malware detection on Android [C]// Proceedings of 2009 IEEE International Conference on Communications. Dresden: IEEE, 2009: 1?5.

[6] 金智義,張戟.嵌入式Android系統的啟動研究[J].佳木斯大學學報(自然科學版),2011(4):521?523.

[7] 王景存,高峰.基于ARM9的Bootloader的分析及設計[J].現代電子技術,2010,33(2):44?46.

[8] 蔡潔.基于高通平臺的Android系統分區管理[J].硅谷,2014(19):44?46.

主站蜘蛛池模板: 97久久超碰极品视觉盛宴| 2020国产精品视频| 精品亚洲欧美中文字幕在线看 | 日本午夜影院| 亚洲三级电影在线播放| 丝袜亚洲综合| 日韩人妻无码制服丝袜视频| 国产第四页| 玖玖精品视频在线观看| 91九色国产在线| 天天激情综合| 伊人久综合| 亚洲男人在线| 国产精品v欧美| 免费在线观看av| 欧美亚洲网| 国产乱肥老妇精品视频| 亚洲中文字幕在线一区播放| 免费大黄网站在线观看| 重口调教一区二区视频| 欧美啪啪网| 国产成人做受免费视频| 国产小视频在线高清播放| 日韩精品一区二区三区swag| 狠狠ⅴ日韩v欧美v天堂| 毛片手机在线看| 免费高清a毛片| 国产一区二区丝袜高跟鞋| 国产乱码精品一区二区三区中文| 免费中文字幕一级毛片| 国内精品久久人妻无码大片高| 国产午夜无码片在线观看网站 | 中文字幕在线免费看| 天天躁狠狠躁| 91青青视频| 精品伊人久久大香线蕉网站| 亚洲中文精品人人永久免费| 日韩无码精品人妻| 制服丝袜在线视频香蕉| 狠狠干综合| 伊人成人在线| 狠狠亚洲婷婷综合色香| 亚洲欧美日本国产综合在线| 国产真实乱人视频| 视频二区亚洲精品| 老司机久久99久久精品播放 | 成人福利在线观看| 72种姿势欧美久久久大黄蕉| 欧美午夜在线播放| 国产性爱网站| 尤物精品国产福利网站| 91久久性奴调教国产免费| 欧美国产日韩另类| 色播五月婷婷| AV在线天堂进入| 性激烈欧美三级在线播放| 日本高清视频在线www色| 影音先锋亚洲无码| 波多野结衣久久高清免费| 免费一级毛片在线观看| 色综合天天操| 国产黄色视频综合| 萌白酱国产一区二区| 色婷婷成人| 国产精品亚欧美一区二区三区| 亚洲熟妇AV日韩熟妇在线| 永久免费AⅤ无码网站在线观看| 99成人在线观看| 国产尹人香蕉综合在线电影| 老司机久久99久久精品播放| 国产99精品视频| 国产精品亚洲五月天高清| 国产精品黄色片| 91精品免费久久久| 国产精品午夜福利麻豆| 99热这里只有精品5| 欧美三级视频在线播放| 精品视频一区在线观看| 亚洲IV视频免费在线光看| 不卡视频国产| 欧美激情福利| 麻豆AV网站免费进入|