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

?

Android系統(tǒng)基于SOCKET通信的安全性改進(jìn)方法

2016-06-15 06:45:12李新煒
中國(guó)新通信 2016年9期
關(guān)鍵詞:加密

李新煒

【摘要】 本文討論了Android系統(tǒng)里使用SOCKET通信時(shí)的安全性問(wèn)題。通過(guò)對(duì)比不同的加密方式和網(wǎng)絡(luò)協(xié)議,論證了采用加密的SOCKET通訊的優(yōu)點(diǎn)和可行性。

【關(guān)鍵詞】 Android Socket通信 加密

為了追求通信的高效和速度,很多系統(tǒng)采用不安全的UDP通信方式和未經(jīng)加密處理的SOCKET進(jìn)行通信,導(dǎo)致該系統(tǒng)在進(jìn)行通信時(shí)存在一定的安全隱患。本文對(duì)于基于Android系統(tǒng)中的SOCKET通信和信息傳輸加密方式進(jìn)行探討分析。

根據(jù)底層協(xié)議的不同,Socket通信也是不同的,在TCP/ IP協(xié)議中主要類型有兩種,分別是流套接字和數(shù)據(jù)報(bào)套接字。[1]

數(shù)據(jù)報(bào)套接字使用UDP協(xié)議,提供數(shù)據(jù)打包和發(fā)送服務(wù)。效率高,但安全性較低。流套接字將TCP協(xié)議作為其端對(duì)端的一個(gè)可信賴的字節(jié)流服務(wù)。

如果是基于TCP協(xié)議的Socket,則由服務(wù)器端聲明一個(gè)指定端口號(hào)的ServerSocket對(duì)象,然后調(diào)用Serversocket的accept()方法來(lái)接收客戶端的數(shù)據(jù)。如果accept()方法沒有接收數(shù)據(jù)則處于堵塞狀態(tài)。如果接收到數(shù)據(jù),則通過(guò)input-stream讀取數(shù)據(jù)。

先在客戶端創(chuàng)建一個(gè)Socket對(duì)象,使用SOCKET方法指定服務(wù)器端的ip地址及端口號(hào),最后用inputstream讀取數(shù)據(jù),獲取服務(wù)器準(zhǔn)備發(fā)出的數(shù)據(jù),完成三次握手的最后一次數(shù)據(jù)獲取。最后將要發(fā)送的數(shù)據(jù)寫入outputstream即可進(jìn)行TCP協(xié)議的socket數(shù)據(jù)傳輸。[2]

如果是基于UDP協(xié)議的SOCKET通信,則先由服務(wù)器創(chuàng)建一個(gè)指定監(jiān)聽端口號(hào)的DatagramSocket對(duì)象,并且創(chuàng)建一個(gè)空的DatagramSocket對(duì)象用于接收數(shù)據(jù),然后使用DatagramSocket的receive方法接收客戶端發(fā)送的數(shù)據(jù)。[3]

Socket的傳輸效率遠(yuǎn)遠(yuǎn)高于其他通信協(xié)議的傳輸效率,但是由于大部分設(shè)計(jì)采用了UDP模式的Socket通信,且使用了明文傳輸,所以信息容易被攔截并解析。后期需要通過(guò)某種加密方式進(jìn)行數(shù)據(jù)加密。在Android 3.0系統(tǒng)之后的版本中,已經(jīng)引入了完整的文件系統(tǒng)加密功能。

該功能允許利用系統(tǒng)內(nèi)核中的dmcrypt模塊對(duì)用戶的數(shù)據(jù)進(jìn)行存儲(chǔ)加密。該種加密方式是采用CBC模式的128位AES算法。[4]或者直接使用DES算法采用CBC模式對(duì)SOCKET通信加密。該種方法在如果在JAVA中需要Base64的話,需要單獨(dú)下載導(dǎo)入它的支持jar包到項(xiàng)目中,另外使用Base64對(duì)CBC加密或解密時(shí),在Android中加密解密都需要這個(gè)參數(shù),而JAVA加密時(shí)有這個(gè)參數(shù)而解密時(shí)沒有。也可考慮采用SSL協(xié)議配合AES或RSA算法實(shí)現(xiàn),即所謂的混合加密模式。[5]

由于對(duì)稱加密方式加密速度快,但密鑰交換不便,而非對(duì)稱加密方便密鑰交換,但是加密耗時(shí),所以可以各取其所長(zhǎng)。在客戶端用AES密鑰將本地明文加密,然后從服務(wù)器端獲取服務(wù)器端RSA公鑰,用公鑰對(duì)本地的AES密鑰進(jìn)行二次加密,加密后把兩個(gè)密文一起發(fā)送給服務(wù)器端。服務(wù)器端收到密文后將其分成密鑰和密文兩部分,由本地的RSA私鑰先對(duì)密鑰進(jìn)行解密,得到加密密文的AES密鑰,然后用此密鑰再對(duì)密文進(jìn)行解密,從而得到明文。[6]

既考慮到了加密和解密的速度,也考慮到了安全性。無(wú)論加密還是解密都在服務(wù)器或客戶機(jī)的一側(cè)進(jìn)行,沒有通過(guò)網(wǎng)絡(luò)傳輸,安全性較高。唯一需要通過(guò)網(wǎng)絡(luò)傳輸?shù)氖欠?wù)器的RSA公鑰和加密過(guò)的AES鑰匙,所以即使被截獲也無(wú)法讀取明文。

但由于SSL協(xié)議只能基于安全協(xié)議,所以不能繼續(xù)采用UDP協(xié)議模式而應(yīng)改為TCP協(xié)議模式進(jìn)行通信。

結(jié)語(yǔ)

經(jīng)過(guò)論證,在Android系統(tǒng)中利用SOCEKT通信方式,可以實(shí)現(xiàn)在使用TCP協(xié)議的基礎(chǔ)上利用AES加密算法等對(duì)SOCKE通信進(jìn)行加密處理。也可以采用混合加密方式利用SSL協(xié)議進(jìn)行通信加密,或者直接在Android系統(tǒng)內(nèi)部對(duì)用戶數(shù)據(jù)進(jìn)行AES加密等方式。這樣既保留了SOCKET通信高效的優(yōu)點(diǎn),又實(shí)現(xiàn)了安全可靠的傳輸,保證了通信的私密性。

參 考 文 獻(xiàn)

[1] 崔荔.基于Android平臺(tái)的智能家居客戶端系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D] .長(zhǎng)安大學(xué),2013.05

[2] 王海帥.地理位置驅(qū)動(dòng)的工作管理工具的設(shè)計(jì)與實(shí)現(xiàn)[D] .北京交通大學(xué), 2013.06

[3] 霍璐,胡鋼,謝劍鋒.Android平臺(tái)煤礦安全巡檢系統(tǒng)客戶端設(shè)計(jì)[J] .微處理機(jī), 2013.06

[4] 陳家偉.基于Android平臺(tái)的隱私信息保護(hù)系統(tǒng)研究與實(shí)現(xiàn) [J] .南昌大學(xué),2014.05

[5] 欒詠紅.基于 Android 的 XML 解析器的分析與比較[J].南京曉莊學(xué)院學(xué)報(bào), 2011.11.

[6] 陳軍章,周漪.基于SOCKET的JAVA安全通信程序設(shè)計(jì)[J].安陽(yáng)師范學(xué)院學(xué)報(bào), 2013.10

猜你喜歡
加密
一種基于熵的混沌加密小波變換水印算法
加密與解密
一種基于LWE的同態(tài)加密方案
認(rèn)證加密的研究進(jìn)展
基于ECC加密的電子商務(wù)系統(tǒng)
基于格的公鑰加密與證書基加密
彰化县| 改则县| 隆昌县| 柯坪县| 罗城| 江北区| 长岭县| 东乌珠穆沁旗| 绩溪县| 武清区| 长沙县| 丰台区| 巫溪县| 桑日县| 察哈| 梅河口市| 泽州县| 长乐市| 盖州市| 岢岚县| 灵璧县| 阿坝| 普定县| 九寨沟县| 南木林县| 连城县| 长海县| 金堂县| 泗阳县| 疏勒县| 富阳市| 石门县| 交城县| 越西县| 井陉县| 仪征市| 郓城县| 西华县| 杭州市| 保德县| 阿坝县|