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

基于Android的社交網(wǎng)絡(luò)安全通信系統(tǒng)研究

2017-03-14 18:48:24楊新宇
黑龍江教育·理論與實踐 2017年3期

楊新宇

摘要:谷歌推出的安卓平臺以其良好的開放性和靈活性贏得廣大消費者的歡迎。文章針對安卓手機的移動社交軟件中存在的安全隱患,以保護用戶個人通信的隱私,提高短信傳輸?shù)目煽啃约鞍踩詾槟康?,研究了在Android平臺上對字符串進行加密和簽名認證的方法。設(shè)計并實現(xiàn)了一個加密和簽名認證的通信系統(tǒng),該系統(tǒng)用AES加密算法實現(xiàn)對字符串的加密,用RSA簽名算法實現(xiàn)對字符串的簽名和驗證。具有良好的兼容性和實用性,在系統(tǒng)中添加了短信發(fā)送功能,更加方便了用戶使用。

關(guān)鍵詞:Android系統(tǒng);AES算法;RSA算法;信息安全

1 引言

云計算技術(shù)隨著大數(shù)據(jù)時代的到來不斷發(fā)展,人們通過網(wǎng)絡(luò)方便地進行信息交流,隨之而產(chǎn)生的移動社交軟件也層出不窮。諸如QQ、微信、微博、短信等早已深入到人們的日常生活之中。人們享受便利與高效通信的同時,伴隨而來的安全問題正時刻困擾著我們。“棱鏡門”等類似事件也在不斷向我們敲響警鐘,即在雙方利用手機進行通信時,社交軟件公司、互聯(lián)網(wǎng)運營商等都有技術(shù)來獲得用戶通信內(nèi)容。就目前來看,主要存在著以下隱患:(1)編輯的字符串以明文形式發(fā)送,在不安全的信道中傳輸,字符串內(nèi)容可能被惡意第三方獲知。(2)接收方無法對字符串的發(fā)送者進行身份鑒別,發(fā)送方可以抵賴,單憑賬號和手機號已經(jīng)缺乏可靠性。(3)接收方對字符串內(nèi)容的完整性不能鑒別,無法獲知該內(nèi)容是否被他人篡改。

因此,在使用移動社交軟件時如何將用戶的隱私控制在用戶自己手中,如何提高用戶信息的安全性顯得至關(guān)重要。為此,本文以安卓手機為例,結(jié)合安卓手機短信的運行機制,設(shè)計并實現(xiàn)了一個針對社交時敏感字符串的簽名、加密通信系統(tǒng),用戶可對字符串進行簽名驗證、加密解密。其特點如下:具有較強的實用性;具有較好的兼容性;具有一定的安全性;保證了字符串的可信性、不可抵賴性和數(shù)據(jù)完整性;操作簡單方便。

2 系統(tǒng)設(shè)計

2.1系統(tǒng)模型

整個系統(tǒng)模型可分為3層,其中安卓平臺作為底層,移動社交軟件作為中間層,通信系統(tǒng)作為頂層。圖1是系統(tǒng)的設(shè)計模型。

安卓平臺作為底層包括了應(yīng)用層、應(yīng)用框架層、系統(tǒng)運行庫層和Linux內(nèi)核層,該層提供基本的功能支持,如連接互聯(lián)網(wǎng),獲取SIM信息等。社交軟件層包括了用戶常用的各種社交軟件,在該層點擊“發(fā)送”按鍵后,信息交由底層發(fā)送至信道中,接收方獲得密文后也是在該層顯示出來。通信系統(tǒng)層為字符串提供加密、簽名、簽名加密三種功能(簽名加密是將前兩種功能結(jié)合起來一并使用),具體使用哪種由用戶自己選擇。

2.2系統(tǒng)模塊

本系統(tǒng)主要分為3個模塊。分別是發(fā)送接收模塊、加密解密模塊、簽名驗證模塊。圖2展現(xiàn)了各模塊之間的關(guān)聯(lián)。

其中發(fā)送接收模塊提供了短信的發(fā)送和接收功能。通過該模塊不需要借助于移動社交軟件就可以直接進行字符數(shù)據(jù)的傳輸,為使用短信通信提供了便利。在發(fā)送前,系統(tǒng)會通過判斷語句對短信字符長度進行判斷,如果消息長度超過70個字符,短信會自動分為兩條發(fā)送。當(dāng)然用戶也可以通過復(fù)制粘貼的方式將密文導(dǎo)入安卓手機自帶的短信發(fā)送軟件中實現(xiàn)發(fā)送。

加密解密模塊采用對稱加密中的AES算法。在眾多加密方法中,對稱加密具有加密速度快、加密數(shù)據(jù)量大的優(yōu)點,適合在字符串長度較長的情況下進行加密。而其中的AES算法也是當(dāng)前較為常用的一種加密算法,該加密算法采用分組加密的方式,共有128bit、192bit和256bit三種分組長度,這里采用256bit。在通信前輸入對稱密鑰,編輯字符串,完成加密。復(fù)制粘貼到用戶使用的社交軟件對話框中,點擊發(fā)送便完成了密文的傳輸。接收方在社交軟件對話框中看到密文后,將密文導(dǎo)入系統(tǒng)中,輸入對稱密鑰進行解密。

簽名驗證模塊采用RSA算法,該算法在數(shù)字簽名中使用較為廣泛。為了保證在計算上的困難性,密鑰長度至少在1024bit。

3 系統(tǒng)實現(xiàn)

本系統(tǒng)在安卓系統(tǒng)2.3.3版本上進行設(shè)計,該版本在市場上出現(xiàn)較早。

3.1系統(tǒng)流程

1.密鑰分發(fā)。(1)AES密鑰:手工分發(fā)、RSA加密分發(fā)。(2)RSA公鑰:短信發(fā)送、互聯(lián)網(wǎng)發(fā)布。

2.AES加密發(fā)送短信。(1)輸入密碼、短信內(nèi)容和電話號碼。(2)對短信內(nèi)容加密。(3)發(fā)送密文。

3.RSA簽名發(fā)送短信。(1)輸入短信文本。(2)對原文簽名生成消息摘要。(3)輸入AES加密密鑰,對消息摘要和明文加密形成密文。(4)發(fā)送密文。

3.2功能實現(xiàn)

1.置布局文件。

使用線性布局作為整體的布局框架。首先界面上要有輸入密碼,輸入短信字符串及輸入電話號碼的可編輯文本框,其次一個加密的按鈕點擊后實現(xiàn)加密,一個解密按鈕點擊后實現(xiàn)解密,一個發(fā)送按鈕發(fā)送短信,以及一個返回按鈕結(jié)束程序。整個布局采用線性布局,里面再嵌套兩個線性布局。至于簽名驗證模塊的布局原理類似,不加以贅述。圖3為加密解密模塊的布局效果圖。

2.發(fā)送功能。

(1)系統(tǒng)具備發(fā)送短信的功能,在AndroidManifest.xml文件中需要添加發(fā)送短信的權(quán)限

(2)將Android中自帶的telephony.SmsManager類導(dǎo)入。

(3)設(shè)置監(jiān)聽器監(jiān)聽事件btnSend.setOnClickListener(new OnClickListener(),一旦觸發(fā),立即讀取短信字符串和手機號碼字符串。

(4)發(fā)送短信smsManager.sendTextMessage(mobile, null, msg, null, null),彈出提示框“短信已發(fā)送”。

3.加密解密功能。

(1)調(diào)用加密函數(shù)AESCipher類進行加密

dest = AESCipher.encrypt(key, src)

(2)加密函數(shù)

public class AESCipher {public static String encrypt(String key, String src) throws Exception {

byte[] rawKey = getRawKey(key.getBytes());

byte[] result = encrypt(rawKey, src.getBytes());

return toHex(result); }

(3)加密流程

字符數(shù)據(jù)轉(zhuǎn)化為字節(jié)數(shù)據(jù)。

src = etStr.getText().toString().trim()

字節(jié)數(shù)據(jù)轉(zhuǎn)化為十六進制字符串

public static String toHex(String txt)

{return toHex(txt.getBytes()); }

圖5、圖6分別為原文加密后的應(yīng)用界面。

(4)解密

解密時調(diào)用相應(yīng)的解密函數(shù):

dest = AESCipher.decrypt(key, src)

4.簽名驗證功能。

(1)密鑰生成

生成公私密鑰對:

KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance(RSA)

密鑰位數(shù)為1024位,keyPairGen.initialize(1024)。

動態(tài)生成密鑰對,這是當(dāng)前最耗時的操作,一般要2s以上。

KeyPair keyPair = keyPairGen.generateKeyPair();

PublicKey publicKey = (RSAPublicKey) keyPair.getPublic();

PrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate();

byte[] publicKeyData = publicKey.getEncoded();

byte[] privateKeyData = privateKey.getEncoded();

(2)簽名

用戶編輯完字符串后,將私鑰導(dǎo)入相應(yīng)的文本框中,點擊“簽名”按鈕。系統(tǒng)讀取字符串。

String content = txtInput.getText().toString()

RSA簽名函數(shù)對字符串完成簽名。

byte[] dataEncode=cipher.doFinal(content.getBytes());

最后經(jīng)Base64編碼后導(dǎo)入通信雙方的對話框中。

(3)驗證

用戶從對話框中獲得簽名,經(jīng)過解碼后,導(dǎo)入發(fā)送方公鑰,點擊“驗證”按鈕。主要代碼如下:

byte[] miwen = content.getBytes();

byte[]=android.util.Base64.decode(miwen,Base64.DEFAULT);

byte[] dataDecode = cipher.doFinal(b);

4 結(jié)束語

本文就移動社交網(wǎng)絡(luò)中傳遞的字符串加密和簽名方法進行了研究和設(shè)計,在使用社交軟件時,通過本系統(tǒng)可對敏感信息進行即時加密和簽名。即使被惡意第三方獲得了密文,也無法立即獲取信息內(nèi)容。接收方在獲得密文后同樣使用復(fù)制、粘貼的方式,將密文導(dǎo)入系統(tǒng)中完成解密、驗證。在今后的工作中,可嘗試添加RSA公鑰加密模塊,實現(xiàn)對AES對稱密鑰的管理,在社交軟件群聊的信息傳遞模式中也可以實現(xiàn)安全的通信,不再局限于目前點對點的信息傳遞。

主站蜘蛛池模板: 亚洲Av综合日韩精品久久久| 美女黄网十八禁免费看| 欧美另类视频一区二区三区| 日韩亚洲综合在线| 国产麻豆精品手机在线观看| 久久精品丝袜| 天天综合网亚洲网站| 麻豆精品在线| 成人欧美日韩| 精品久久久久成人码免费动漫| 欧洲成人在线观看| 国产美女一级毛片| 无码视频国产精品一区二区| 免费在线国产一区二区三区精品| 亚洲精品成人片在线播放| 国产人成乱码视频免费观看| 99精品视频九九精品| 欧美另类第一页| 国产99欧美精品久久精品久久| 国产精品爽爽va在线无码观看 | 热热久久狠狠偷偷色男同| 亚洲最大在线观看| 免费毛片视频| 国产激情影院| 1769国产精品免费视频| 国产性猛交XXXX免费看| 制服丝袜国产精品| 免费国产小视频在线观看| 国产18页| 亚洲无码日韩一区| 久久精品波多野结衣| 18禁黄无遮挡网站| 国产亚洲欧美在线中文bt天堂| 日韩福利在线观看| 国产va在线观看| 高清精品美女在线播放| 国产精品99一区不卡| 国产精品男人的天堂| 久久狠狠色噜噜狠狠狠狠97视色 | 就去色综合| 欧美.成人.综合在线| 婷婷综合亚洲| 国产乱人伦AV在线A| 亚洲无码视频图片| 亚洲制服丝袜第一页| 国产精品亚洲精品爽爽| 99久久精品免费看国产电影| 国产成人AV男人的天堂| 91九色视频网| 一级高清毛片免费a级高清毛片| 国产第一色| 欧美久久网| 亚洲无码高清免费视频亚洲| 亚洲天堂视频在线播放| 亚洲区第一页| 亚洲va在线观看| 久久综合色天堂av| 日本亚洲成高清一区二区三区| 国产日韩欧美精品区性色| 91成人在线观看| 99国产精品一区二区| 99激情网| 国产亚洲欧美在线中文bt天堂| 亚洲 日韩 激情 无码 中出| 亚洲男人天堂久久| 午夜国产理论| 久久精品中文无码资源站| 国产高清无码麻豆精品| 日本色综合网| 九九九九热精品视频| 国产午夜福利在线小视频| 亚洲三级视频在线观看| 77777亚洲午夜久久多人| 欧美一区二区人人喊爽| 国产后式a一视频| 91区国产福利在线观看午夜| 日韩毛片免费观看| 国产av色站网站| 91网址在线播放| 亚洲人在线| 美女扒开下面流白浆在线试听| 91区国产福利在线观看午夜|