?

基于Android傳輸的改進加密策略分析與實現

2019-08-26 01:30韓高峰
山東工業技術 2019年24期

摘 要:數據傳輸的安全性一直是信息通信中的研究課題,基于Android端到端的開放網絡環境的通信和數據傳輸,同樣存在著較大安全隱患?;贏ndroid的文件遠距離加密傳輸研究的內容是在Android移動平臺下通過開放互聯網安全傳遞數據的策略,具有重要的研究意義和應用價值。當前密碼學和TCP/IP協議應用廣泛而成熟,基于對稱加密思想對開放網絡環境下數據傳輸時的加解密算法進行了改進。通過Android手機設備號作為對稱加密密鑰,RSA非對稱加密算法將用戶密鑰加密傳輸至服務器,實現文件在傳輸過程中加密目的。

關鍵詞:對稱加密;RSA非對稱加密算法;密鑰加密;Android設備號

DOI:10.16640/j.cnki.37-1222/t.2019.24.064

0 引言

數據傳輸愈加頻繁以及涉密信息系統不斷擴展,信息安全技術得到人們重視并廣泛應用。信息安全技術[1]主要包括加密、認證、檢測、防攻擊、防病毒、掃描、監控以及審計等幾個方面,其中加密技術是保證網絡安全的核心技術,已經滲透到大部分安全產品之中,并正向生物識別、芯片化、量子化方向發展。

基于Android的開放環境文件遠距離加密傳輸主要是基于C/S和B/S的混合模式實現,客戶端是一款Android平臺APP。通信時,客戶端只要知道對方的帳號就可以通過外網對文件加密傳輸,文件在客戶端進行發送和接收文件時自動加密解密,并支持批量發送和接收。

1 技術原理

開放網絡環境下的加密傳輸主要圍繞數據加密和網絡傳輸兩個方面進行研究,系統由客戶端、文件服務器和管理服務器組成??蛻舳嘶贏ndroid開發,文件服務器采用Java語言編程,文件服務可以提供用戶注冊、登錄模塊,構建文件安全傳輸環境,可以同時服務多個客戶端??蛻舳税凑辗掌鞫x的規則完成注冊,登錄,文件加密傳輸功能。管理服務器則基于JavaWeb開發,可檢測文件服務器運行狀態,對用戶、文件服務器運行日志等進行管理。

為了提高文件傳輸效率,本文在現有的對稱加密算法基礎上進行了改進,形成自定義對稱加密算法[2]。首先將Android手機序列號作為對稱加密密鑰,Android手機序列號是由15位數字組成的“電子串號”,它與每臺移動電話機一一對應。將設備號作為對稱加密的密鑰,將要傳輸的文件讀取至內存,然后通過對對稱加密密鑰和字節流文件進行逐位的異或運算 ,并循環遍歷整個字節流文件,將每次異或運算后得到的新的字節值發送至服務器。在傳輸文件時設備號并不會進行傳輸,如果要暴力破解,枚舉結果高達10^15次方種結果,通過這種方式進行破解是非常困難的。所以用于加密十分安全。

2 架構分析

2.1 客戶端

客戶端主要和服務器進行通信,和服務器共同協作,完成登錄、注冊和文件加密傳輸功能??蛻舳诵枰_定三件事情:向誰發送文件、發送的是什么文件、是誰給我發送的文件。發送和接收的過程可以批量進行,文件傳輸到服務器和從服務器下載到本地的過程完全是加密的。

2.2 文件服務器

文件服務器可同時為多個用戶提供多線程互相獨立的服務,每個用戶注冊,登錄,發送文件。為保證系統安全性,文件服務器擁有密鑰管理和帳號管理功能,日志功能,可記錄客戶端IP地址、訪問端口號、傳送文件。文件服務器采用Java語言編寫,使用Web程序管理文件服務器。

2.3 管理服務器

管理服務器采用Web程序實現,其功能主要包含審計管理和用戶管理。審計管理方面,管理服務器可以根據文件服務器的日志記錄,監控系統運行狀態,查看用戶操作內容,如某個用戶在什么時間發送或接收了什么文件。用戶管理方面,管理服務器可查看訪問過服務器的IP地址進行了哪些操作,能控制文件服務器讓某個在線用戶強制下線,或者將某個用戶添加到黑名單等。

3 設計與實現

3.1 文件服務器

文件服務器具有層層屏障,保護用戶文件,并且有較為復雜的交互協議。文件服務程序啟動時會在19951號端口開啟文字服務監聽,專門用于語言的交流,包括需要的注冊服務,登錄服務,發送文件或接收文件服務時都需從該端口將指令發送到服務器;19952號端口是文件發送服務端口,當用戶需要發送文件時,則通過該端口將數據傳遞到服務器; 19953號端口專門用于發送文件服務,當服務器接收到客戶端請求接收文件的指令時,服務器會通過這個端口將文件發送給請求用戶;19954號端口為心跳監聽服務端口,該端口會每隔15秒從客戶端接收一次數據,如果連續三次沒有接收到,服務器就會認為客戶端已離開,就會斷開和這個客戶端的所有連接,釋放服務資源。文件服務器功能結構如圖1所示。

文件服務器啟動后,自動開啟文字服務、文件發送服務器、文件接收服務器和心跳監聽服務器。

3.2 文件傳輸設計

文件加密傳輸是本系統的核心,當用戶A向用戶B發送文件,用戶A和用戶B如果不在同一局域網內,是無法直接通信的,所以需要文件服務器作為中間媒介。文件服務器運行在擁有單獨IP地址的服務器上,A即可和服務器通信,B也可和服務器通信 。所以用戶A向用戶B發送文件的過程,其實是A向服務器發送文件,服務器接收文件后進行存儲,當用戶B登錄之后,請求接收文件,此時服務器把A發送給B的文件傳輸給用戶B。

3.3 心跳監聽設計

當用戶登入系統之后,服務器心跳監測就開始工作了,客戶端需每隔10秒向服務器發送一次數據。服務器會每隔15秒接收一次數據,如果三次沒有接收到數據,就表示該客戶端已不再活動,就會斷開與該客戶端所有的連接。

4 系統測試

4.1 文件發送測試

用戶登錄后,系統會為其創建一個線程,發送的文件可以是文本文件或者二進制文件。如客戶端準備發送一張圖片ico.png和一個文本文件testTxt.txt,作為一個壓縮包來進行數據傳輸。

通過服務器運行詳情況可以看到,客戶端會向服務器發送一個密文指令:”p7=903101; jal&sko(05345{”。服務器接收到此密文后使用自定義對稱加密算法和當前用戶的密鑰對這個指令進行解密,解密后:s251121753 ico.png 14331s,解密的結果由兩個s包裹,內容是251121753,這是接收者帳號,其后是ico.png,是發送的文件名,最后是文件的長度1433字節。同時文件服務器將發送的文件、文件大小和接收者信息等內容保存到數據庫。

當文件發送到服務器后,所有文件均不能被正常解析,文本文件是亂碼,圖片為無效,壓縮包無法正常解壓,此時文件傳輸到服務器之后依然是密文保存,這些密文也就是在網絡傳輸過程中的實際文件,即使被人攔截,沒有密鑰,也是毫無意義。

4.2 文件接收測試

用戶登錄成功后,接收文件,接收的文件會保存到內部存儲空間的FlyDragonLock/received目錄下;此時客戶端接收的文件都能被正常解析。但是服務器將文件發送到接收者的客戶端上時也是加密傳輸的,解密過程也是在對方客戶端完成。

4.3 并發測試

本系統使用多線程技術,將每一個服務任務封裝成線程任務對象,采用Socket轉接形式交接服務,比如登錄,就會把客戶端Socket對象傳遞給登錄服務的線程,登錄服務的線程有了客戶端Socket對象就能和它通信。對每一個用戶而言都有不同的線程對其進行服務。

5 結束語

基于Android環境下文件加密傳輸核心算法是采用異或運算特性的自定義對稱加密算法和非對稱加密RSA算法。加密傳輸后的文件比如商務往來中的標書、郵件即使被他人截獲,沒有對應的解密密鑰也是無法正常打開的,即使打開也是一堆毫無意義的亂碼,所以在這種情況下即使被盜取,也沒有任何損失,所以這種情況下的加密傳輸對于保護文檔的安全是非常重要的。

參考文獻:

[1]王曉鶴,沈盧斌.信息安全分析學[M].北京:清華大學出版社,2019:230-267.

[2]William,Stallings(美)威廉·斯托林斯.密碼編碼學與網絡安全[M].電子工業出版社,2017:189-205.

作者簡介:韓高峰(1981-),男,安徽阜陽人,碩士,講師,研究方向:數據庫挖掘、移動互聯網開發。

91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合