摘 要:數(shù)據(jù)傳輸?shù)陌踩砸恢笔切畔⑼ㄐ胖械难芯空n題,基于Android端到端的開(kāi)放網(wǎng)絡(luò)環(huán)境的通信和數(shù)據(jù)傳輸,同樣存在著較大安全隱患。基于Android的文件遠(yuǎn)距離加密傳輸研究的內(nèi)容是在Android移動(dòng)平臺(tái)下通過(guò)開(kāi)放互聯(lián)網(wǎng)安全傳遞數(shù)據(jù)的策略,具有重要的研究意義和應(yīng)用價(jià)值。當(dāng)前密碼學(xué)和TCP/IP協(xié)議應(yīng)用廣泛而成熟,基于對(duì)稱(chēng)加密思想對(duì)開(kāi)放網(wǎng)絡(luò)環(huán)境下數(shù)據(jù)傳輸時(shí)的加解密算法進(jìn)行了改進(jìn)。通過(guò)Android手機(jī)設(shè)備號(hào)作為對(duì)稱(chēng)加密密鑰,RSA非對(duì)稱(chēng)加密算法將用戶密鑰加密傳輸至服務(wù)器,實(shí)現(xiàn)文件在傳輸過(guò)程中加密目的。
關(guān)鍵詞:對(duì)稱(chēng)加密;RSA非對(duì)稱(chēng)加密算法;密鑰加密;Android設(shè)備號(hào)
DOI:10.16640/j.cnki.37-1222/t.2019.24.064
0 引言
數(shù)據(jù)傳輸愈加頻繁以及涉密信息系統(tǒng)不斷擴(kuò)展,信息安全技術(shù)得到人們重視并廣泛應(yīng)用。信息安全技術(shù)[1]主要包括加密、認(rèn)證、檢測(cè)、防攻擊、防病毒、掃描、監(jiān)控以及審計(jì)等幾個(gè)方面,其中加密技術(shù)是保證網(wǎng)絡(luò)安全的核心技術(shù),已經(jīng)滲透到大部分安全產(chǎn)品之中,并正向生物識(shí)別、芯片化、量子化方向發(fā)展。
基于Android的開(kāi)放環(huán)境文件遠(yuǎn)距離加密傳輸主要是基于C/S和B/S的混合模式實(shí)現(xiàn),客戶端是一款A(yù)ndroid平臺(tái)APP。通信時(shí),客戶端只要知道對(duì)方的帳號(hào)就可以通過(guò)外網(wǎng)對(duì)文件加密傳輸,文件在客戶端進(jìn)行發(fā)送和接收文件時(shí)自動(dòng)加密解密,并支持批量發(fā)送和接收。
1 技術(shù)原理
開(kāi)放網(wǎng)絡(luò)環(huán)境下的加密傳輸主要圍繞數(shù)據(jù)加密和網(wǎng)絡(luò)傳輸兩個(gè)方面進(jìn)行研究,系統(tǒng)由客戶端、文件服務(wù)器和管理服務(wù)器組成??蛻舳嘶贏ndroid開(kāi)發(fā),文件服務(wù)器采用Java語(yǔ)言編程,文件服務(wù)可以提供用戶注冊(cè)、登錄模塊,構(gòu)建文件安全傳輸環(huán)境,可以同時(shí)服務(wù)多個(gè)客戶端??蛻舳税凑辗?wù)器定義的規(guī)則完成注冊(cè),登錄,文件加密傳輸功能。管理服務(wù)器則基于JavaWeb開(kāi)發(fā),可檢測(cè)文件服務(wù)器運(yùn)行狀態(tài),對(duì)用戶、文件服務(wù)器運(yùn)行日志等進(jìn)行管理。
為了提高文件傳輸效率,本文在現(xiàn)有的對(duì)稱(chēng)加密算法基礎(chǔ)上進(jìn)行了改進(jìn),形成自定義對(duì)稱(chēng)加密算法[2]。首先將Android手機(jī)序列號(hào)作為對(duì)稱(chēng)加密密鑰,Android手機(jī)序列號(hào)是由15位數(shù)字組成的“電子串號(hào)”,它與每臺(tái)移動(dòng)電話機(jī)一一對(duì)應(yīng)。將設(shè)備號(hào)作為對(duì)稱(chēng)加密的密鑰,將要傳輸?shù)奈募x取至內(nèi)存,然后通過(guò)對(duì)對(duì)稱(chēng)加密密鑰和字節(jié)流文件進(jìn)行逐位的異或運(yùn)算 ,并循環(huán)遍歷整個(gè)字節(jié)流文件,將每次異或運(yùn)算后得到的新的字節(jié)值發(fā)送至服務(wù)器。在傳輸文件時(shí)設(shè)備號(hào)并不會(huì)進(jìn)行傳輸,如果要暴力破解,枚舉結(jié)果高達(dá)10^15次方種結(jié)果,通過(guò)這種方式進(jìn)行破解是非常困難的。所以用于加密十分安全。
2 架構(gòu)分析
2.1 客戶端
客戶端主要和服務(wù)器進(jìn)行通信,和服務(wù)器共同協(xié)作,完成登錄、注冊(cè)和文件加密傳輸功能??蛻舳诵枰_定三件事情:向誰(shuí)發(fā)送文件、發(fā)送的是什么文件、是誰(shuí)給我發(fā)送的文件。發(fā)送和接收的過(guò)程可以批量進(jìn)行,文件傳輸?shù)椒?wù)器和從服務(wù)器下載到本地的過(guò)程完全是加密的。
2.2 文件服務(wù)器
文件服務(wù)器可同時(shí)為多個(gè)用戶提供多線程互相獨(dú)立的服務(wù),每個(gè)用戶注冊(cè),登錄,發(fā)送文件。為保證系統(tǒng)安全性,文件服務(wù)器擁有密鑰管理和帳號(hào)管理功能,日志功能,可記錄客戶端IP地址、訪問(wèn)端口號(hào)、傳送文件。文件服務(wù)器采用Java語(yǔ)言編寫(xiě),使用Web程序管理文件服務(wù)器。
2.3 管理服務(wù)器
管理服務(wù)器采用Web程序?qū)崿F(xiàn),其功能主要包含審計(jì)管理和用戶管理。審計(jì)管理方面,管理服務(wù)器可以根據(jù)文件服務(wù)器的日志記錄,監(jiān)控系統(tǒng)運(yùn)行狀態(tài),查看用戶操作內(nèi)容,如某個(gè)用戶在什么時(shí)間發(fā)送或接收了什么文件。用戶管理方面,管理服務(wù)器可查看訪問(wèn)過(guò)服務(wù)器的IP地址進(jìn)行了哪些操作,能控制文件服務(wù)器讓某個(gè)在線用戶強(qiáng)制下線,或者將某個(gè)用戶添加到黑名單等。
3 設(shè)計(jì)與實(shí)現(xiàn)
3.1 文件服務(wù)器
文件服務(wù)器具有層層屏障,保護(hù)用戶文件,并且有較為復(fù)雜的交互協(xié)議。文件服務(wù)程序啟動(dòng)時(shí)會(huì)在19951號(hào)端口開(kāi)啟文字服務(wù)監(jiān)聽(tīng),專(zhuān)門(mén)用于語(yǔ)言的交流,包括需要的注冊(cè)服務(wù),登錄服務(wù),發(fā)送文件或接收文件服務(wù)時(shí)都需從該端口將指令發(fā)送到服務(wù)器;19952號(hào)端口是文件發(fā)送服務(wù)端口,當(dāng)用戶需要發(fā)送文件時(shí),則通過(guò)該端口將數(shù)據(jù)傳遞到服務(wù)器; 19953號(hào)端口專(zhuān)門(mén)用于發(fā)送文件服務(wù),當(dāng)服務(wù)器接收到客戶端請(qǐng)求接收文件的指令時(shí),服務(wù)器會(huì)通過(guò)這個(gè)端口將文件發(fā)送給請(qǐng)求用戶;19954號(hào)端口為心跳監(jiān)聽(tīng)服務(wù)端口,該端口會(huì)每隔15秒從客戶端接收一次數(shù)據(jù),如果連續(xù)三次沒(méi)有接收到,服務(wù)器就會(huì)認(rèn)為客戶端已離開(kāi),就會(huì)斷開(kāi)和這個(gè)客戶端的所有連接,釋放服務(wù)資源。文件服務(wù)器功能結(jié)構(gòu)如圖1所示。
文件服務(wù)器啟動(dòng)后,自動(dòng)開(kāi)啟文字服務(wù)、文件發(fā)送服務(wù)器、文件接收服務(wù)器和心跳監(jiān)聽(tīng)服務(wù)器。
3.2 文件傳輸設(shè)計(jì)
文件加密傳輸是本系統(tǒng)的核心,當(dāng)用戶A向用戶B發(fā)送文件,用戶A和用戶B如果不在同一局域網(wǎng)內(nèi),是無(wú)法直接通信的,所以需要文件服務(wù)器作為中間媒介。文件服務(wù)器運(yùn)行在擁有單獨(dú)IP地址的服務(wù)器上,A即可和服務(wù)器通信,B也可和服務(wù)器通信 。所以用戶A向用戶B發(fā)送文件的過(guò)程,其實(shí)是A向服務(wù)器發(fā)送文件,服務(wù)器接收文件后進(jìn)行存儲(chǔ),當(dāng)用戶B登錄之后,請(qǐng)求接收文件,此時(shí)服務(wù)器把A發(fā)送給B的文件傳輸給用戶B。
3.3 心跳監(jiān)聽(tīng)設(shè)計(jì)
當(dāng)用戶登入系統(tǒng)之后,服務(wù)器心跳監(jiān)測(cè)就開(kāi)始工作了,客戶端需每隔10秒向服務(wù)器發(fā)送一次數(shù)據(jù)。服務(wù)器會(huì)每隔15秒接收一次數(shù)據(jù),如果三次沒(méi)有接收到數(shù)據(jù),就表示該客戶端已不再活動(dòng),就會(huì)斷開(kāi)與該客戶端所有的連接。
4 系統(tǒng)測(cè)試
4.1 文件發(fā)送測(cè)試
用戶登錄后,系統(tǒng)會(huì)為其創(chuàng)建一個(gè)線程,發(fā)送的文件可以是文本文件或者二進(jìn)制文件。如客戶端準(zhǔn)備發(fā)送一張圖片ico.png和一個(gè)文本文件testTxt.txt,作為一個(gè)壓縮包來(lái)進(jìn)行數(shù)據(jù)傳輸。
通過(guò)服務(wù)器運(yùn)行詳情況可以看到,客戶端會(huì)向服務(wù)器發(fā)送一個(gè)密文指令:”p7=903101; jal&sko(05345{”。服務(wù)器接收到此密文后使用自定義對(duì)稱(chēng)加密算法和當(dāng)前用戶的密鑰對(duì)這個(gè)指令進(jìn)行解密,解密后:s251121753 ico.png 14331s,解密的結(jié)果由兩個(gè)s包裹,內(nèi)容是251121753,這是接收者帳號(hào),其后是ico.png,是發(fā)送的文件名,最后是文件的長(zhǎng)度1433字節(jié)。同時(shí)文件服務(wù)器將發(fā)送的文件、文件大小和接收者信息等內(nèi)容保存到數(shù)據(jù)庫(kù)。
當(dāng)文件發(fā)送到服務(wù)器后,所有文件均不能被正常解析,文本文件是亂碼,圖片為無(wú)效,壓縮包無(wú)法正常解壓,此時(shí)文件傳輸?shù)椒?wù)器之后依然是密文保存,這些密文也就是在網(wǎng)絡(luò)傳輸過(guò)程中的實(shí)際文件,即使被人攔截,沒(méi)有密鑰,也是毫無(wú)意義。
4.2 文件接收測(cè)試
用戶登錄成功后,接收文件,接收的文件會(huì)保存到內(nèi)部存儲(chǔ)空間的FlyDragonLock/received目錄下;此時(shí)客戶端接收的文件都能被正常解析。但是服務(wù)器將文件發(fā)送到接收者的客戶端上時(shí)也是加密傳輸?shù)?,解密過(guò)程也是在對(duì)方客戶端完成。
4.3 并發(fā)測(cè)試
本系統(tǒng)使用多線程技術(shù),將每一個(gè)服務(wù)任務(wù)封裝成線程任務(wù)對(duì)象,采用Socket轉(zhuǎn)接形式交接服務(wù),比如登錄,就會(huì)把客戶端Socket對(duì)象傳遞給登錄服務(wù)的線程,登錄服務(wù)的線程有了客戶端Socket對(duì)象就能和它通信。對(duì)每一個(gè)用戶而言都有不同的線程對(duì)其進(jìn)行服務(wù)。
5 結(jié)束語(yǔ)
基于Android環(huán)境下文件加密傳輸核心算法是采用異或運(yùn)算特性的自定義對(duì)稱(chēng)加密算法和非對(duì)稱(chēng)加密RSA算法。加密傳輸后的文件比如商務(wù)往來(lái)中的標(biāo)書(shū)、郵件即使被他人截獲,沒(méi)有對(duì)應(yīng)的解密密鑰也是無(wú)法正常打開(kāi)的,即使打開(kāi)也是一堆毫無(wú)意義的亂碼,所以在這種情況下即使被盜取,也沒(méi)有任何損失,所以這種情況下的加密傳輸對(duì)于保護(hù)文檔的安全是非常重要的。
參考文獻(xiàn):
[1]王曉鶴,沈盧斌.信息安全分析學(xué)[M].北京:清華大學(xué)出版社,2019:230-267.
[2]William,Stallings(美)威廉·斯托林斯.密碼編碼學(xué)與網(wǎng)絡(luò)安全[M].電子工業(yè)出版社,2017:189-205.
作者簡(jiǎn)介:韓高峰(1981-),男,安徽阜陽(yáng)人,碩士,講師,研究方向:數(shù)據(jù)庫(kù)挖掘、移動(dòng)互聯(lián)網(wǎng)開(kāi)發(fā)。