宋偉奇 盧志玲
【摘 要】本文介紹安卓平臺所具備的優勢,簡要說明目前常用的加密算法,從軟件系統的框架設計、加密模塊設計、解密模塊的設計、軟件數據庫設計、加密軟件工作流程設計等方面論述基于安卓系統的手機信息加密軟件開發,為相關工作提供參考。
【關鍵詞】安卓系統? 手機信息? 加密軟件開發
【中圖分類號】G? 【文獻標識碼】A
【文章編號】0450-9889(2018)12C-0191-02
當前基于安卓系統的智能手機普及率極高,其方便快捷的特點使得更多的人愿意將各類信息儲存在手機當中,但將手機與互聯網連通后就會產生信息安全問題,這是目前智能手機行業最關注的問題之一。社會對手機信息安全問題的重視度越來越高,推動了手機信息技術加密軟件的研發進程。
一、安卓系統的優勢
安卓系統是由谷歌公司基于Linux平臺所研發的開放性的手機操作系統,其不僅可以為系統開發提供免費的平臺支持,而且安卓系統本身還集合了谷歌絕大多數的應用功能,例如Reader、Map等,使得其功能涵蓋了日常生活的方方面面。同時安卓系統的可信度較高,并且在近幾年的開發當中成熟度也在不斷提升,加之其選擇將平臺開放,從而使得安卓系統內功能軟件的可擴展性得到了極大的提升,目前該系統涉及的功能包括移動通信、多媒體視頻、汽車、醫藥、監測、企業管理等,大大豐富了當前安卓系統智能手機的功能。
二、安卓系統常用加密算法概述
目前常用的加密算法可以被分為兩大類:一是對稱加密算法,二是不對稱加密。對稱加密算法指的是對數據進行加密的密鑰和解密的密鑰相同,這種加密算法的優點在于加密或解密操作時速率較快,且加密后強度較高,但其缺點在于加密信息的安全性絕對依賴于密鑰,比較常見的算法如DES、AES等。非對稱加密算法則指的是加密和解密操作時的密鑰為完全不同當可以匹配的兩個,通常將這兩種密鑰稱為公鑰、私鑰,在進行加密操作時所使用的就是公鑰,而開展解密操作時所使用的為私鑰,比較常用的算法包括RSA、DSA等。當前安卓系統手機內所使用的密鑰為56位,并且附加了8位的驗證碼,在設計時將明文組和密鑰交替組成加密形式,從而提升信息加密的安全性,常見形式為3條連續56位加密和延長分組長度加密。
三、加密軟件技術的概述
TelephonyManager是一種能夠獲取智能手機中SIM卡信息的技術,當用于并沒有在SIM卡當中存儲號碼信息時,則對其進行閱讀是通過IMSI碼。該代碼是國際移動端用戶的識別碼,其可以有效地對移動端的各類信息進行區分。該代碼的總長度不超過15位,均采用0~9這10個數字進行編寫,通常情況下在運營商的數據庫當中保存著與手機號碼向匹配的IMSI碼的映射,因此安卓系統用戶可以通過發送IMSI碼來獲得自己手機的號碼信息。
SharedPreferences則是一種便攜式的數據存儲技術,其可以對簡單的配置信息進行存儲。例如當加密軟件瀏覽根目錄下文件的具體位置時,該存儲技術只能顯示文件所在的根目錄位置,而不支持對其加密,修改可通過Editor技術來實現。但這種存儲技術的優勢在于不需要重新創建單獨的數據庫、列表等操作,因此更加快速和簡單,但該存儲技術無法對.int、.float等文件進行包含條件的查詢操作。
Service是安卓系統中的服務器,其無法自主開啟,但是在退出該程序后其并未完全結束,而是轉為后臺運行方式。此時加密軟件就可以通過該系統獲得收集運行的定時更新日志,而不需要每次在打開加密軟件時重新進行獲取,提升了加密功能的操作效率。
四、基于安卓系統的手機信息加密軟件的開發
(一)軟件系統的框架設計。當前在手機信息加密軟件系統的框架設計中主要分為三個部分,分別是SD卡瀏覽模塊、加密模塊以及解密模塊。當加密軟件在運行時首先就需要SD卡瀏覽模塊發揮作用,該模塊中的ListView控制元件就能夠將手機SD卡內的根目錄進行顯示,從而使目錄下的所有文件或文件夾都能夠被進行瀏覽和分辨。如果此時加密文件類別中文件圖表的右側顯示了“鎖”型標識,則說明該文件已經處于加密狀態,如此時電擊該文件則可將其轉變為解密模塊處理,并使其從加密模塊目錄下轉移到解密模塊目錄當中,但依然會在控制元件模塊下進行顯示。
當SD卡瀏覽模塊將手機中各種文件均顯示在控制元件中時,如果其本身作為一個文件形式,則可以通過控制元件判斷其是否處于加密狀態,如果是在文件右側會顯示有“鎖”的標識。在程序設計當中則是在文件序列開頭寫入固定長度的加密標識,例如“E”等,這樣就可以使SD卡瀏覽模塊對其進行分辨,從而保證文件狀態顯示的正確性。
(二)加密模塊設計。加密模塊中的加密算法選擇可以從DES、DESeder或AES當中任選一種,在加密時還需要輸入奇偶排列的密碼,需連續輸入兩次正確后方可提供加密點擊操作,其中第一次是密碼輸入,第二次為密碼確認,當點擊加密按鈕后就可對所選擇的文件信息進行加密操作。在該功能模塊設計時需要解決兩個問題:一是不同的加密算法當中所使用的密鑰長度也不相同,需要根據選擇的實際情況生成不同長度的密鑰??上炔捎胹witch語句對用戶所選擇的加密算法種類進行判斷,然后再根據實際算法種類建立長度不一的數組,再借助While循環將用戶所需要填寫的密碼更改為兩次,兩次所需要輸入的數組必須完全一樣才能夠實現操作權限認可,最終利用SecretKeySpec函數根據加密算法的種類生成相應的密鑰。二是當加密時需要根據某種算法來進行,而解密時是否需要根據原加密算法進行,這就要求軟件加密功能是應添加記錄加密算法的功能。如將加密算法中的三種方式分別用阿拉伯數字1~3來代替,則在加密操作時,需要將相應的算法數字加入到被加密的文件代碼的開頭,這是為了使SD卡瀏覽模塊能夠識別文件是否處于加密狀態。在生成密鑰后就需要創建一個新的文件,該文件名的后綴應為.lock,然后將密文加入到文件代碼開頭,以源文件讀出二進制流,使加密后的代碼能夠寫入文件中。在加密操作過程中則需要以加密算法的名稱身長Cipher文件,并利用密鑰初始化該文件。
(三)解密模塊的設計。在手機界面當中點擊已經處于加密狀態的文件,就可以將其轉變為解密狀態,此時SD卡瀏覽模塊就會對加密文件的開頭代碼進行讀取,從而獲得其加密算法的種類,然后由用戶在解密界面當中輸入相應的密碼,從而產生密鑰后對函數getKey進行自定義獲得密鑰,只要用戶此時所輸入的密碼與加密時完全相同,則就可以獲得相同的密鑰對文件進行解密,在解密的過程中也需要創建Cipher文件,不過將初始化的過程轉變為DECRYPTMODE,并將解碼后獲得的新文件寫入到儲存設備當中。
(四)軟件數據庫設計。數據庫是用以存儲加密算法、密鑰以及密碼等信息的,其主要分為兩個功能模塊,一是對交互式密碼的存儲模塊,二是對加密算法選擇種類的存儲模塊。其中密碼信息存儲中包括用戶的ID信息和密碼信息兩種,ID信息可取任何數據,但絕對不能為空白,同時其數據標當中僅且只能包含單一的數據;用戶密碼信息則選擇為MD5碼,不可去任意數值,但也不能為空白。加密算法選擇種類存儲信息中包括四項內容,分別是定制ID、信息名、保密狀態以及加密方式,其中加密定制ID與用戶ID不能完全相同,同樣作為主鍵,其顯示的是文件是否被加密、加密的方式以及加密文件本身的種類。
(五)加密軟件工作流程設計。在用戶使用加密軟件時可運行三個工作模塊,分別是策略定制、文件讀取和文件寫入。當用戶在操作策略制定模塊時,應先利用SD卡瀏覽功能模塊確定該文件是否能夠被開啟加密功能,如果該文件無法被寫入加密密鑰,則該文件不受設計軟件系統的保護,該軟件就無法對這類文件進行加密操作。當判斷之后表明該文件可以被軟件加密后則進入文件讀寫工作,并同時開啟軟件內的讀寫監視模塊。如此時加密模塊屬于自定義加密狀態,則開啟加密保護功能的同時可以對該自定義文件進行加密操作;如果此時為關閉加密狀態,則對該自定義文件進行解密,并將讀寫監控關閉。
在閱讀自定義文件時,如果該文件未開啟加密保護功能,則不需要多余的操作,可直接將文件信息傳導至應用操作層當中,進而直接對其進行瀏覽或閱讀;如果該文件已經開啟了加密功能,則在讀取該文件前需要進行解密操作,在解密之后才能夠將文件傳導到應用操作層。相同的,在進行文件寫入操作時如未開啟加密保護,則可以直接進行寫入;如開啟則需要在解密后方可寫入。
當前智能手機對于安卓系統下的加密軟件需求量較大,在設計時可借助安卓平臺的優勢,以Java語言為基礎,設計并實現可對文件加密的軟件。其中所包含的功能模塊共分為三種,即SD卡瀏覽模塊、加密模塊、解密模塊,以SD卡瀏覽模塊作為設計核心,由其判斷文件是否能夠被加密、是否處于加密狀態等,然后再通過加密和解密模塊對文件實現操作。
【參考文獻】
[1]劉云龍,呂韜,曾晉,等.基于android手機的加密QR二維碼識別系統[J].軟件,2012(4)
[2]張旻,李明,李政,等.基于聲紋的Android手機訪問控制及文件加密系統[J].信息網絡安全,2013(4)
[3]申晉祥,鮑美英,張琦.Android手機系統中的短消息加密研究與實現[J].山西大同大學學報(自然科學版),2016(3)
[4]袁方.基于Android平臺的手機混沌加密系統的設計與實現[D].杭州:杭州電子科技大學,2013
[5]浩明.基于安卓系統的手機防盜取證系統[J].實驗室研究與探索,2014(9)
[6]馬浩天.關于Java語言的手機軟件開發技術[J].新媒體研究,2015(20)
[7]馮益斌.基于Android系統及混合加密的藍牙遠程控制研究[J].現代電子技術,2016(5)
[8]李欣.基于Android智能手機的彩信加密與傳輸機制研究[J].移動信息,2015(8)
[9]黎妹紅,李論,張大偉,等.基于SDKEY的安卓手機安全傳輸技術[J].解放軍理工大學學報自然科學版,2015(2)
[10]朱江.基于Android平臺的個人隱私保護軟件的設計與實現[D].大連:大連理工大學,2014