国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Android手機(jī)系統(tǒng)中的短消息加密研究與實(shí)現(xiàn)

2016-11-20 07:49申晉祥鮑美英
關(guān)鍵詞:短消息加密算法密鑰

申晉祥,鮑美英,張 琦

(山西大同大學(xué)數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,山西大同037009)

Android手機(jī)系統(tǒng)中的短消息加密研究與實(shí)現(xiàn)

申晉祥,鮑美英,張 琦

(山西大同大學(xué)數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,山西大同037009)

智能手機(jī)的日益普及,給人們的生活帶來(lái)了極大的便捷。人們通過(guò)手機(jī)可以輕松地發(fā)送各種短消息,但是由于Android系統(tǒng)的開(kāi)源性以及無(wú)線網(wǎng)絡(luò)具有空中開(kāi)放性,使得手機(jī)短消息在傳輸過(guò)程中可能被黑客非法竊取。針對(duì)這一問(wèn)題本文提出對(duì)短消息進(jìn)行加密并且采用端到端的傳輸方法,可以有效地解決此問(wèn)題。

智能手機(jī);加密算法;短消息

2015年全球智能手機(jī)用戶數(shù)量已達(dá)19.1億,據(jù)最新數(shù)據(jù)統(tǒng)計(jì)顯示,2016年該數(shù)量將增長(zhǎng)到25億,其中智能手機(jī)使用Android操作系統(tǒng)的已經(jīng)達(dá)到89.8%。但是由于無(wú)線通信網(wǎng)絡(luò)的空中開(kāi)放性,使得通信內(nèi)容(語(yǔ)音數(shù)據(jù)和短消息)具有安全隱患[1]。為了保證個(gè)人的隱私安全,最好的辦法是采用端到端的通信安全機(jī)制,短消息在傳輸前用加密算法進(jìn)行加密,通過(guò)網(wǎng)絡(luò)傳輸?shù)竭_(dá)目的手機(jī)后,進(jìn)行解密讀取操作。

1 Android無(wú)線電話系統(tǒng)結(jié)構(gòu)

Android無(wú)線移動(dòng)電話系統(tǒng)結(jié)構(gòu)[2]如圖1,從下到上共分為四層:Linux內(nèi)核層、Linux用戶層、Java應(yīng)用框架和Java應(yīng)用層。其中Java應(yīng)用框架中的無(wú)線層接口(RIL)[3]是該系統(tǒng)的核心,它實(shí)現(xiàn)了Android電話服務(wù)和和無(wú)線通信硬件通信。

圖1 Android無(wú)線電話系統(tǒng)結(jié)構(gòu)

2 手機(jī)普通短消息收發(fā)流程

2.1 手機(jī)短消息的發(fā)送

短消息編輯完成后點(diǎn)擊發(fā)送,會(huì)調(diào)用sendMessage函數(shù)[4],使用WorkingMessage類(lèi)中的send方法,對(duì)短消息中的內(nèi)容和聯(lián)系人進(jìn)行提取,然后做出發(fā)送判斷,確認(rèn)該短消息可以發(fā)送后,再通過(guò)send-Message方法將短消息發(fā)送出去。如果是一條比較長(zhǎng)的短消息,SmsManager會(huì)對(duì)短消息進(jìn)行分割,然后調(diào)用sendMultipartTextMessage把短消息發(fā)送到Java框架層進(jìn)行處理。

2.2 手機(jī)短消息的接收

當(dāng)接收到一條新短消息時(shí),framework會(huì)發(fā)送廣播,PrivilegedSmsReceiver接收此條廣播,調(diào)用on-ReceiveWithPrivilege()方法,在該方法中獲取一個(gè)喚醒時(shí)鐘,該喚醒時(shí)鐘保證系統(tǒng)在接收短消息時(shí)不會(huì)進(jìn)入待機(jī)狀態(tài),然后啟動(dòng)SmsReceiverService服務(wù)。調(diào)用onStartCommand方法,該方法構(gòu)造一個(gè)Message,sendMessage把 Message發(fā)送出去,handleMessage方法接收Message。

在insertMessage中判斷該條短消息是否是一條新短消息,如果是新短消息則調(diào)用storeMessage存儲(chǔ)該條短消息,插入成功后,insertMessage方法返回插入該條短消息的資源標(biāo)志符(Uri),若Uri不為Null,說(shuō)明已經(jīng)插入到數(shù)據(jù)庫(kù)mmssms.db中,這時(shí)手機(jī)發(fā)出提示音,通知用戶收到一條新短消息。

3 AES加密算法

AES[5](Advanced Encryption Standard)是1997年NIST征集的數(shù)據(jù)加密標(biāo)準(zhǔn),Rijindael是AES的加密算法。該算法是迭代分組對(duì)稱(chēng)加密算法,它的數(shù)據(jù)塊長(zhǎng)度和分組密鑰長(zhǎng)度都可以發(fā)生變化,數(shù)據(jù)塊和密鑰長(zhǎng)度可以為128位、192位或256位[6]。

AES將數(shù)據(jù)分成4*4的方陣,每個(gè)單元一個(gè)字節(jié),采用多輪迭代和重復(fù)加密算法,每輪都需要與分組長(zhǎng)度相同的擴(kuò)展密鑰參與。根據(jù)密鑰長(zhǎng)度不同,重復(fù)的次數(shù)也不相同。

AES算法的主要操作步驟如下:1)根據(jù)現(xiàn)有的密鑰推導(dǎo)出迭代時(shí)使用的密鑰;2)每一輪迭代之前,需要根據(jù)前一輪的狀態(tài)推導(dǎo)出此輪需要使用的密鑰;3)每一輪迭代都要對(duì)單元中的數(shù)據(jù)進(jìn)行字節(jié)替換、行位移變換、列混合變換和本輪密鑰的添加變換;4)最后一輪迭代進(jìn)行字節(jié)替換、行位移變換和密鑰的添加變換。

4 短消息的數(shù)字加密處理

采用AES加密算法對(duì)短消息進(jìn)行加密處理。并非所有的短消息都要進(jìn)行加密,用戶在發(fā)送短消息前,可以根據(jù)短消息內(nèi)容進(jìn)行選擇,不需要保密的短消息,可以直接發(fā)送,內(nèi)容機(jī)密的短消息,則選擇加密發(fā)送。

4.1 短消息的數(shù)字加密

在WorkingMessage類(lèi)中的send方法中對(duì)短消息進(jìn)行加密,由于運(yùn)營(yíng)商對(duì)短消息的長(zhǎng)度有限制,所以對(duì)于一條比較長(zhǎng)的短消息在發(fā)送之前要進(jìn)行分割,然后再發(fā)送。而對(duì)短消息進(jìn)行加密之后,會(huì)使消息長(zhǎng)度變大,所以要在分割長(zhǎng)的短消息之前進(jìn)行加密,然后用SmsManager進(jìn)行分割再發(fā)送。

具體做法是:在send中增加布爾變量encrypt,用于控制此條短消息是否加密。加密的核心代碼如下:

接收短消息后,通過(guò)判斷,若為加密短消息,直接把它存入數(shù)據(jù)庫(kù),在查看短消息時(shí),再通過(guò)輸入驗(yàn)證碼后,進(jìn)行動(dòng)態(tài)的解密。不能在短消息存入數(shù)據(jù)庫(kù)之前進(jìn)行解密,因?yàn)锳ndroid應(yīng)用的數(shù)據(jù)若獲得root權(quán)限就可以查看此短消息的內(nèi)容。

4.2 加密短消息的傳輸

Base64是網(wǎng)絡(luò)中用于傳輸8位字節(jié)代碼的編碼方法,它可以將非ASCII字符數(shù)據(jù)轉(zhuǎn)換成ASCII字符,使之適合在網(wǎng)絡(luò)中傳輸。

短消息在加密之后數(shù)據(jù)會(huì)變大,而且會(huì)產(chǎn)生非ASCII字符,所以使用Base64打包傳輸,可以保證加密文本不會(huì)發(fā)生改變。并且可以直接使用Android原來(lái)的接口,不會(huì)涉及Android的框架層,加密之后由Base64進(jìn)行編碼,被逆向解碼的危險(xiǎn)就大大減小了,即使Base64編碼被解,解碼出來(lái)的仍是加密后的數(shù)據(jù),不容易被黑客所利用。

4.3 加密短消息的存儲(chǔ)與查閱

4.3.1 加密短消息的存儲(chǔ)

Android系統(tǒng)中有一個(gè)嵌入式的輕量型關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)SQLite,用戶信息就保存在SQLite數(shù)據(jù)庫(kù)中的mmssms.db中,mmssms.db中有13張表,其中的sms表中保存了用戶的短消息,為了區(qū)分加密短消息和普通短消息,在sms表中增加標(biāo)志位。

sms表中有短消息的主題、內(nèi)容、接收方、主鍵、是否可見(jiàn)、短信中心、是否已讀、收發(fā)日期等相關(guān)信息。本研究中,在sms表的最后一行加入encrypt標(biāo)志位,1表示加密,0表示未加密,缺省狀態(tài)為0。storeMessage是存儲(chǔ)短消息的方法,該方法對(duì)收到的短消息進(jìn)行判斷,若發(fā)現(xiàn)是加密短消息,則把數(shù)據(jù)庫(kù)表sms中的encrypt標(biāo)志置為1。

在sendMessage方法中,通過(guò)addMessage

ToUri把短消息存入數(shù)據(jù)庫(kù)中。存儲(chǔ)短消息的核心操作如下:

判斷發(fā)送的短消息是否要加密發(fā)送,如果加密發(fā)送,則把數(shù)據(jù)庫(kù)中sms表中的encrypt位置1。

4.3.2 加密短消息的查閱

為了防止手機(jī)丟失造成加密短消息泄密或人為故意偷看加密短消息,對(duì)于加密短消息的查看要輸入驗(yàn)證密碼,驗(yàn)證用戶身份后,方可查看該短消息,退出短消息后自動(dòng)注銷(xiāo)登錄痕跡。

為了更加容易區(qū)分普通短消息和加密短消息,要對(duì)加密短消息進(jìn)行格式上的設(shè)置,把它設(shè)置成和普通短消息不同的顏色。

查看短消息的代碼在ConversationList中:

在formatMessage方法中判斷是否是加密短消息,如果是加密短消息,需要對(duì)它進(jìn)行解密的處理。

5 結(jié)語(yǔ)

本文使用對(duì)稱(chēng)加密算法AES實(shí)現(xiàn)了手機(jī)普通短消息的加密處理,用戶可以有選擇地對(duì)發(fā)送的短消息進(jìn)行加密,很好地保護(hù)了用戶的隱私。

[1]樊郁徽,徐寧.Andriod平臺(tái)的惡意軟件行為分析[J].重慶文理學(xué)院學(xué)報(bào):社會(huì)科學(xué)版,2014(5):144-147.

[2]吳想想.基于Android平臺(tái)軟件開(kāi)發(fā)方法的研究與應(yīng)用[D].北京:北京郵電大學(xué),2011.

[3]呂少偉.Andriod平臺(tái)下的文件共享及其安全技術(shù)研究與實(shí)現(xiàn)[D].鎮(zhèn)江:江蘇科技大學(xué),2014.

[4]曾健平,邵艷潔.Android系統(tǒng)架構(gòu)及應(yīng)用程序開(kāi)發(fā)研究[J].微計(jì)算機(jī)信息,2011(9):1-3.

[5]王小偉.AES加密算法的研究與IP核設(shè)計(jì)實(shí)現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2013.

[6]王哲.分組密碼AES分析方法研究[D].濟(jì)南:山東師范大學(xué),2012.

〔責(zé)任編輯 高?!?/p>

Research and Implementation of Message Encryption Based on Android Phone

SHEN Jin-xiang,BAO Mei-ying,ZHANG Qi
(School of Mathmatics and Computer Science,Shanxi Datong University,Datong Shanxi,037009)

At present,intelligent mobile phone has brought great convenience to people's lives.People can easily send message through the mobile phone,but the message was stolen by hackers because the open-source Android system and wireless network with open air.As to this problem,this paper proposed encrypted message and the end to end transmission method.It can solve this problem effectively.

intelligent mobile phone;encryption algorithm;message

TP301

A

1674-0874(2016)03-0005-03

2015-12-16

山西省高等學(xué)校大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練項(xiàng)目[2013268];山西大同大學(xué)大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練重點(diǎn)項(xiàng)目[XDC2073110]

申晉祥(1977-),男,山西古縣人,碩士,講師,研究方向:計(jì)算機(jī)網(wǎng)絡(luò)。

猜你喜歡
短消息加密算法密鑰
密碼系統(tǒng)中密鑰的狀態(tài)與保護(hù)*
試論電視新聞短消息的采寫(xiě)策略
TPM 2.0密鑰遷移協(xié)議研究
淺談廣播短消息的采寫(xiě)
一種對(duì)稱(chēng)密鑰的密鑰管理方法及系統(tǒng)
HES:一種更小公鑰的同態(tài)加密算法
基于小波變換和混沌映射的圖像加密算法
對(duì)稱(chēng)加密算法RC5的架構(gòu)設(shè)計(jì)與電路實(shí)現(xiàn)
基于Arnold變換和Lorenz混沌系統(tǒng)的彩色圖像加密算法
短消息業(yè)務(wù)評(píng)估體系的研究與實(shí)現(xiàn)