吳明禮,陳 斌
(北方工業(yè)大學 計算機學院,北京 100144)
移動互聯(lián)環(huán)境下數(shù)據(jù)通信安全技術的應用研究
吳明禮,陳 斌
(北方工業(yè)大學 計算機學院,北京 100144)
隨著信息技術的迅速發(fā)展,移動智能終端已經(jīng)越來越普及,各種各樣的手機應用程序給人們的日常生活和工作帶來了便利。然而,移動互聯(lián)網(wǎng)環(huán)境下數(shù)據(jù)通信安全面臨著非法篡改、信息竊取、數(shù)據(jù)丟失等各種威脅。對移動互聯(lián)環(huán)境下智能終端與服務器之間的網(wǎng)絡通信安全策略進行了研究,借鑒互聯(lián)網(wǎng)環(huán)境下的相關技術,充分考慮移動互聯(lián)網(wǎng)的特點,提出了一種綜合使用SHA、數(shù)字簽名、橢圓曲線算法等技術的安全策略,保證智能終端和服務器在移動互聯(lián)網(wǎng)環(huán)境下數(shù)據(jù)交互的安全性、完整性、一致性、不可抵賴性。該安全策略經(jīng)過分析、編碼實現(xiàn)與測試,具有較好的效果,在移動互聯(lián)網(wǎng)項目中具有一定的實用和推廣價值。
移動互聯(lián)網(wǎng);通信安全;完整性;數(shù)字簽名;加密
在移動互聯(lián)網(wǎng)迅速發(fā)展和智能終端設備日益普及的今天,用戶通過智能終端瀏覽網(wǎng)頁、查看新聞資訊、查詢和預約周邊位置各種生活服務越來越普遍[1]。移動數(shù)據(jù)網(wǎng)絡利用無線信道傳遞信息,由于無線信道的開放性,任何人都可以接收無線電波,從而為信息的截取、篡改、干擾等提供了可能性,給信息的安全帶來諸多威脅[2]。
在移動互聯(lián)網(wǎng)下,尤其是在移動電子商務中,網(wǎng)絡通信數(shù)據(jù)安全面臨的問題主要包括以下幾個方面:
(1)安全性:在無線網(wǎng)絡中傳送的用戶隱私數(shù)據(jù)可能被非法竊取。
(2)完整性:用戶的敏感信息或者電子商務交易數(shù)據(jù),在無線網(wǎng)絡傳輸過程中,由于某些原因使信息在傳輸中遭到破壞,接收方收到的信息并非是發(fā)送方發(fā)送的完整數(shù)據(jù)[3]。
(3)一致性:數(shù)據(jù)在網(wǎng)絡傳輸過程中,遭到了非法篡改,使得接收方收到的數(shù)據(jù)與發(fā)送方發(fā)送的數(shù)據(jù)不一致。
(4)不可抵賴性:發(fā)送消息的一方對發(fā)送消息的行為予以否認,沒有足夠的信息來證明已經(jīng)發(fā)生的消息發(fā)送行為。
文中借鑒互聯(lián)網(wǎng)中比較成熟的相關技術,結(jié)合移動互聯(lián)網(wǎng)的特點,探索基于移動互聯(lián)網(wǎng)的數(shù)據(jù)通信安全策略。對移動互聯(lián)網(wǎng)數(shù)據(jù)交換的隱私數(shù)據(jù)使用橢圓曲線密碼算法進行加密處理,對一些非核心非隱私的數(shù)據(jù)采用明文傳輸,這樣既充分保證數(shù)據(jù)處理和傳輸?shù)男?,又保證了關鍵信息在移動互聯(lián)網(wǎng)中交互過程的安全性[4]。文中設計方案綜合采用SHA、數(shù)字簽名、橢圓曲線加密算法等技術保證智能終端Android應用程序和Web服務器在移動互聯(lián)網(wǎng)中數(shù)據(jù)交互的安全性、完整性、一致性、不可抵賴性[5]。為了保證手機端app和服務器之間數(shù)據(jù)通信的安全,使用橢圓曲線加密算法對隱私數(shù)據(jù)進行加密,保證數(shù)據(jù)的安全性;使用SHA生成數(shù)據(jù)摘要信息,從而保證數(shù)據(jù)的完整性、一致性;使用數(shù)字簽名技術保證數(shù)據(jù)的不可抵賴性[6]。
圖1為手機端到服務器單向數(shù)據(jù)的處理流程,而服務器反饋給手機端的單向數(shù)據(jù)處理流程是類似的。文中將按照圖1中的設計方案,重點講解手機端向服務器端單向數(shù)據(jù)的處理流程。

圖1 手機端訪問服務器單向通信安全設計方案
3.1 橢圓曲線密碼體制
橢圓曲線密碼體制(Elliptic Curve Cryptography,ECC)利用有限域上橢圓曲線點集構(gòu)成的群實現(xiàn)了離散對數(shù)密碼算法,其安全性基于橢圓曲線上求離散對數(shù)問題的困難性[7]。橢圓曲線密碼是密碼學的重要分支之一,它可以用來加密數(shù)據(jù),進行數(shù)字簽名或者在安全通信的開始階段進行密鑰交換[8]。由于橢圓曲線密碼體制具有計算量小、處理速度快、存儲空間小、帶寬要求低等優(yōu)點,更加適合于在移動互聯(lián)網(wǎng)中的智能終端使用[9]。RSA和ECC同屬于公開密鑰密碼體制,表1和表2對兩種算法進行了比較。

表1 RSA與ECC理論基礎比較

表2 RSA與ECC等價安全強度的密鑰長度比較
從表2可以看出,在相同安全強度下,ECC算法的密鑰長度明顯要小很多。此外,在密鑰對的生成、簽名及認證方面,ECC的實現(xiàn)速度相對于RSA要快很多[10]。文中方案的加密采用基于ECC的綜合加密方案(Elliptic Curve Integrated Encryption Scheme,ECIES)。
3.2 消息摘要算法
使用消息摘要主要是為了確保信息傳輸完整一致,它可以為任何文件產(chǎn)生一個獨一無二的“數(shù)字指紋”,一般用于數(shù)字簽名[11]。如果文件發(fā)生任何改變,其生成的消息摘要將會發(fā)生變化。常用的消息摘要算法有SHA和MD5,它們都是基于散列算法的單向加密算法。表3是對SHA1與MD5兩種摘要算法的比較。

表3 SHA1與MD5比較
SHA1是在MD5的基礎上發(fā)展而來的,對于強行攻擊具有更強的抗攻擊強度[12]。文中使用SHA1來生成消息摘要。
3.3 數(shù)字簽名
數(shù)字簽名算法是非對稱加密算法和消息摘要算法的結(jié)合體,用來驗證數(shù)據(jù)的完整性,確保數(shù)據(jù)來源的可認證性和數(shù)據(jù)發(fā)送行為的不可否認性[13]。消息摘要算法是數(shù)字簽名算法的必要組成部分,用來驗證數(shù)據(jù)的完整性。數(shù)字簽名包括簽名和驗證兩個過程。在簽名和驗證方面,采用ECDSA(Elliptic Curve Digital Signature Algorithm)。ECDSA算法是橢圓曲線加密算法ECC與DSA算法的結(jié)合,具有速度快、強度高、簽名短等優(yōu)點。根據(jù)使用的摘要算法的不同,簽名算法主要分為MD5和SHA兩大系列,如NONEwithECDSA、SHA1withECDSA、SHA256withECDSA、SHA512withECD SA等。文中方案使用的是JDK8中簽名抽象類Signature支持的簽名算法SHA1withECDSA,它使用的消息摘要算法是SHA1。
3.4 Bouncy Castle與Spongy Castle
文中設計方案中涉及到橢圓曲線加密和解密時,使用的都是橢圓曲線集成加密方案ECIES。在JDK8中支持的加密算法包括ECIES,但是在安裝的JDK8中并不存在支持該算法的Provider,所以需要使用第三方支持該算法的Provider。Provider是實現(xiàn)部分或者全部Java Security相關方法的類。
Bouncy Castle提供了一個輕量級的密碼學API,它是一個Java密碼擴展(JCE)的提供者[14]。在Web服務器端代碼中公私鑰生成和加密、解密功能實現(xiàn)中使用Bouncy Castle這個Provider。由于在Android平臺已經(jīng)內(nèi)置了一個精簡過的舊版本Bouncy Castle,這就導致了使用一個新版本的該類庫會出現(xiàn)類加載沖突。Spongy Castle對Bouncy Castle做了一些修改,使它能在Android平臺上更好的工作。因此,在Android端代碼中的公私鑰生成和加密、解密功能實現(xiàn)中使用的是Spongy Castle。
文中研究方案基于移動互聯(lián)網(wǎng)下的一個綜合性項目,包括Web服務器端、Android端app,實現(xiàn)廣告圖片推送和展示。在Android端app和服務器進行網(wǎng)絡數(shù)據(jù)交互的過程中,會涉及一些敏感數(shù)據(jù)。對于非敏感數(shù)據(jù)直接采用明文傳輸,僅對敏感數(shù)據(jù)進行加密和簽名處理。對于大量原始數(shù)據(jù)進行簽名會耗費很多系統(tǒng)資源和時間,需要采用摘要算法將原始數(shù)據(jù)生成一串簡單的摘要信息,然后再對摘要信息進行簽名[15]。服務器端接收到手機端發(fā)送過來的信息后,對原始數(shù)據(jù)重新生成摘要信息,與傳送過來經(jīng)過解密得到的摘要信息進行比對。如果不匹配的話,則不再執(zhí)行后續(xù)的相關操作,說明服務器端接收到的數(shù)據(jù)的可靠性和完整性存在問題,告知手機端需要重傳信息。如果匹配的話,則對接收到的加密數(shù)據(jù)進行解密處理,得到Android端傳送的真正明文信息。
目前,網(wǎng)絡數(shù)據(jù)傳輸主要使用xml和json兩種數(shù)據(jù)格式。文中方案采用json作為Android手機應用程序和Web服務器之間的數(shù)據(jù)交互格式。它能有效降低交互的數(shù)據(jù)量,并且具有較快的解析速度。
4.1 公私鑰對的生成和分發(fā)
服務器端使用Bouncy Castle支持的ECIES算法來生成唯一的服務器端公鑰和私鑰。在創(chuàng)建KeyPairGenerator實例時,使用Bouncy Castle這個Provider提供的ECIES算法作為參數(shù)。服務器端私鑰由服務器端自己保留,公鑰嵌入到Android手機app程序中。用戶安裝該手機端應用程序,相當于就已經(jīng)持有了指定服務器的公鑰。
每一個Android手機端用戶在和指定服務器進行真正的數(shù)據(jù)交互之前,需要首先生成一對公私鑰。私鑰由手機端應用程序自己保留,用來解密數(shù)據(jù)或者對數(shù)據(jù)簽名。對于生成的公鑰,則需要通過加密后提交給指定服務器。在創(chuàng)建KeyPairGenerator實例時,使用Spongy Castle這個Provider提供的ECIES算法作為參數(shù)。安裝在手機中的該app第一次運行的時候,會使用Spongy Castle插件借助于橢圓曲線集成加密算法生成手機端公鑰和私鑰。
Android手機app將生成的公鑰提交給指定服務器的流程如下:
(1)借助于服務器端公鑰對手機端生成的公鑰、手機設備號使用橢圓曲線加密算法進行加密,傳遞給服務器端。
(2)服務器端接收到手機端傳送來的加密數(shù)據(jù)后,使用服務器端私鑰借助橢圓曲線算法進行解密,獲取傳送過來的手機設備號和公鑰。
(3)服務器端查詢數(shù)據(jù)庫表中是否已經(jīng)存在該設備號的記錄。如果設備號不存在,則表示是新的手機用戶首次訪問,將公鑰信息直接保存;如果設備號存在,則表示是已經(jīng)存在的用戶,則對數(shù)據(jù)庫中之前保存的該手機終端的公鑰進行更新。
(4)如果保存操作成功,則返回給手機終端相應的json信息,確認服務器端成功保存了手機端的公鑰信息。然后,移動終端和服務器端就可以正常進行后續(xù)的信息交互了。
4.2 Android手機端對隱私數(shù)據(jù)加密和簽名
文中移動互聯(lián)網(wǎng)項目中手機端應用程序需要向服務器端傳送的數(shù)據(jù),包括敏感數(shù)據(jù)部分和非敏感數(shù)據(jù)部分。對于非敏感數(shù)據(jù)部分采用明文傳輸,提高數(shù)據(jù)的處理和傳輸效率。對于敏感數(shù)據(jù)使用橢圓曲線加密算法,借助于手機端應用程序內(nèi)部自帶的服務器端公鑰和自身私鑰,進行數(shù)據(jù)加密和數(shù)字簽名處理。
對于敏感數(shù)據(jù)的加密和簽名處理流程如下:
(1)手機智能終端使用橢圓密碼算法ECIES、服務器端公鑰,對待傳輸?shù)拿舾袛?shù)據(jù)進行加密處理。
(2)使用SHA算法對加密后的數(shù)據(jù)生成摘要信息。
(3)使用橢圓密碼算法、智能終端的私鑰對摘要信息生成數(shù)字簽名。
(4)使用ECIES加密后的密文數(shù)據(jù)和生成的數(shù)字簽名拼接為事先和服務器端協(xié)商好的json串的格式,通過移動互聯(lián)網(wǎng)發(fā)送給指定服務器。
流程圖如圖2所示。

圖2 手機端對隱私數(shù)據(jù)加密和簽名流程
4.3 服務器端接收數(shù)據(jù)進行簽名驗證和解密
文中移動互聯(lián)網(wǎng)項目的服務器端接收到Android手機終端應用程序發(fā)送過來的數(shù)據(jù),對該json格式數(shù)據(jù)進行分離和提取,得到數(shù)字簽名和報文密文,進行簽名驗證和密文解密處理。
服務器端接收數(shù)據(jù)后進行簽名驗證和解密處理的流程如下:
(1)服務器對智能終端發(fā)送過來的數(shù)據(jù),按照事先商定的協(xié)議對數(shù)據(jù)進行拆分,得到報文密文和數(shù)字簽名。
(2)對報文密文使用SHA算法生成新的摘要信息。
(3)對接收到的數(shù)字簽名使用智能終端的公鑰進行解密,得到智能終端生成的報文摘要信息。
(4)比較新生成的摘要信息與解密后的智能終端摘要信息是否完全相同,如果不相同則說明數(shù)據(jù)在傳輸過程中出現(xiàn)了問題,不能保證數(shù)據(jù)的完整性和一致性。
(5)如果比較結(jié)果是一致的,則對接收到的報文密文使用服務器的私鑰進行解密得到真正的明文信息。
(6)如果比較結(jié)果不一致,則返回給手機終端相應的json信息,讓手機端進行數(shù)據(jù)重傳。
流程圖如圖3所示。

圖3 服務器端驗證簽名和解密數(shù)據(jù)流程
5.1 手機端生成公鑰和私鑰
使用Base64編碼處理并轉(zhuǎn)換為String類型的手機端公鑰和私鑰如下所示:

5.2 手機端敏感數(shù)據(jù)加密和數(shù)字簽名
待加密的敏感數(shù)據(jù)如下所示:

使用Base64編碼處理并轉(zhuǎn)換為String類型的加密后敏感數(shù)據(jù)為:

對加密后的敏感數(shù)據(jù)生成摘要信息并進行簽名:

5.3 服務器端驗證簽名和解密

文中設計的方案在Android智能終端和Web服務器之間的數(shù)據(jù)交互使用了第三方Bouncy Castle、SpongyCastle中支持的ECIES實現(xiàn)橢圓曲線數(shù)據(jù)加密和解密,使用JDK8中的SHA1withECDSA簽名算法實現(xiàn)通信數(shù)據(jù)的簽名和驗證,保證了移動互聯(lián)環(huán)境下智能終端和服務器端數(shù)據(jù)通信的安全性、完整性、一致性和不可抵賴性。通過綜合采用橢圓曲線加密算法、消息摘要算法、數(shù)字簽名使得移動互聯(lián)網(wǎng)項目具有更高的安全性和實用性。
[1] 彭 麗,李光明.移動辦公業(yè)務在行業(yè)內(nèi)的應用分析[J].辦公自動化,2014(5):57-59.
[2] 劉 軍.云計算應用模式下的移動互聯(lián)網(wǎng)安全問題[J].硅谷,2013(16):141.
[3] 班曉芳,佟 鑫.移動互聯(lián)網(wǎng)安全威脅分析[J].電信技術,2012(7):77-78.
[4] 房秉毅,張云勇,徐 雷.移動互聯(lián)網(wǎng)環(huán)境下云計算安全淺析[J].移動通信,2011,35(9):25-28.
[5] Stallings W.Cryptography and network security principles and practice[M].5th ed.Beijing:China Machine Press,2011.
[6] Davies J.Implementing SSL/TLS using cryptography and PKI[M].USA:Wiley,2011.
[7] 白永祥.基于ECDSA的智能卡軟件設計與實現(xiàn)[J].電子設計工程,2015,23(14):29-32.
[8] 麻勝海.基于橢圓曲線的數(shù)字簽名在移動辦公中的應用[J].科技信息,2010(5):85-86.
[9] 張鳳元,武美娜.ECDSA的算法改進及其標量乘法的選取[J].微計算機信息,2009,25(8-3):168-169.
[10] 范云海.集成加密方案ECIES的設計與驗證[J].信息技術,2012(1):115-117.
[11] 周衛(wèi)寧,劉友剛.移動互聯(lián)網(wǎng)發(fā)展技術與安全問題[J].科技傳播,2012(3):210.
[12] 胡向東,魏琴芳,胡 蓉.應用密碼學[M].北京:電子工業(yè)出版社,2011.
[13] 石 莎.移動互聯(lián)網(wǎng)絡安全認證及安全應用中若干關鍵技術研究[D].北京:北京郵電大學,2012.
[14] 程耕國,覃 科.基于Bouncy Castle的J2ME網(wǎng)絡安全[J].計算機與現(xiàn)代化,2006(1):108-110.
[15] 陳尚義.移動互聯(lián)網(wǎng)安全技術研究[J].信息安全與通信保密,2010(8):34-37.
Research on Application of Data Communication Security Technology in Mobile Internet Environment
WU Ming-li,CHEN Bin
(School of Computer Science,North China University of Technology,Beijing 100144,China)
With the rapid development of information technology,mobile intelligent terminal has become more and more popular,and a variety of mobile phone applications make people’s daily life and work more convenient.However,in the mobile Internet environment,data communication security is facing various threats such as illegal tampering,information theft,data loss and so on.The research on security policy of the network communication is carried out between the intelligent terminal and the server under the mobile Internet environment,and a comprehensive security strategy for the use of SHA,digital signature,elliptic curve algorithm and so on is proposed by reference of the related techniques and considering the characteristics of mobile Internet,ensuring the security,integrity,consistency and non repudiation of the data interaction between the mobile terminal and the server in the mobile Internet environment.This security strategy has good effect through analysis and encoding implementation and testing,and has a certain practical and promotional value in the mobile Internet project.
mobile Internet;communication security;integrity;digital signature;encryption
2016-01-14
2016-04-13
時間:2016-10-24
北京市屬高等學校創(chuàng)新團隊建設與教師職業(yè)發(fā)展計劃項目(IDHT20130502);北京市教育委員會科技發(fā)展計劃面上項目(KM201410009008);北方工業(yè)大學優(yōu)勢學科項目
吳明禮(1978-),男,講師,研究方向為電子商務、大數(shù)據(jù)處理等。
http://www.cnki.net/kcms/detail/61.1450.TP.20161024.1105.016.html
TP39
A
1673-629X(2016)11-0106-05
10.3969/j.issn.1673-629X.2016.11.024