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

?

基于安卓系統(tǒng)的國密硬件加密系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

2019-01-08 08:37孫金奇
關(guān)鍵詞:國密加解密

孫金奇

摘要:移動(dòng)手機(jī)的快速普及以及移動(dòng)互連網(wǎng)絡(luò)的快速發(fā)展,給人們的生活工作帶來了極大的便利,人們可以使用移動(dòng)手機(jī)終端的APP來實(shí)現(xiàn)上下班打卡、編輯工作文件、訪問公司內(nèi)網(wǎng)、與朋友視頻通話等工作生活需求。但是,移動(dòng)互聯(lián)網(wǎng)的信息安全問題也為我們的生活工作帶來了新的挑戰(zhàn),手機(jī)端硬件加密系統(tǒng)應(yīng)運(yùn)而生。然而,不同的手機(jī)硬件加密系統(tǒng)硬件構(gòu)造、硬件體系不同,并未形成統(tǒng)一的對(duì)外接口,導(dǎo)致手機(jī)應(yīng)用APP必須使用不同的版本來適配不同的加密硬件。因此,本系統(tǒng)主要解決硬件系統(tǒng)的統(tǒng)一對(duì)外出口問題,在不修改應(yīng)用APP的前提下統(tǒng)一調(diào)用不同的加密硬件,故此,安全APP是本系統(tǒng)的核心。

關(guān)鍵詞:Android;國密;加解密;簽名驗(yàn)簽;終端可信硬件密碼模塊

中圖分類號(hào):TP311.52 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2019)10-0187-03

0 引言

近年來隨著移動(dòng)手機(jī)的應(yīng)用與普及以及手機(jī)操作系統(tǒng)的進(jìn)一步革新與完善,手機(jī)應(yīng)用需求越來越多。例如:手機(jī)支付使我們?cè)僖膊槐貛уX包拿幾百塊錢現(xiàn)金甚至銀行卡去買東西,可以通過手機(jī)掃碼支付,直接打通用戶、商家與銀行的信息流。二十年前,我們?nèi)ツ吧鞘新糜紊虅?wù)等需要買一張地圖,甚至到一個(gè)地方就需要向路人打聽如何去往自己的目的地,但是當(dāng)前的手機(jī)導(dǎo)航讓我們無論身處何地,只要有網(wǎng)絡(luò)信號(hào)就可以快速獲取當(dāng)前位置、如何去往目的地。可以說智能手機(jī)的發(fā)展改變了我們的生活,但是智能手機(jī)的快速發(fā)展也存在一定的問題,例如:假基站獲取我們的網(wǎng)絡(luò)信號(hào)來進(jìn)行詐騙與傳銷;手機(jī)網(wǎng)絡(luò)病毒遠(yuǎn)程植入獲取用戶通信錄、個(gè)人信息、支付信息等;網(wǎng)絡(luò)通信內(nèi)容被人竊聽甚至網(wǎng)上售賣等。因此,亟需手機(jī)安全加密系統(tǒng)來保護(hù)個(gè)人信息不泄露。

當(dāng)下手機(jī)端的加密有硬件加密和軟件加密之分,軟件加密是通過加密軟件來保護(hù)信息流入流出的安全可靠,但軟加密效率相對(duì)低下。硬件加密主要是通過手機(jī)內(nèi)置加密芯片(如華為Mate系列手機(jī)的Inse加密模塊)、TF加密卡以及手機(jī)貼膜卡實(shí)現(xiàn)。這三種加密方式可以實(shí)現(xiàn)相同的業(yè)務(wù)功能,但是由于這三種加密方式的硬件基礎(chǔ)不同,應(yīng)用程序如果想分別調(diào)用這三種方法只能編寫三個(gè)版本的軟件系統(tǒng)或編寫一個(gè)統(tǒng)一的調(diào)用接口來統(tǒng)一調(diào)用。顯然使用三個(gè)版本應(yīng)用程序工作量巨大是不可取的,因此需要一款統(tǒng)一的加密硬件調(diào)用接口程序供應(yīng)用程序調(diào)用,這也是本文的重點(diǎn)。

1 相關(guān)技術(shù)介紹

1.1 Android系統(tǒng)架構(gòu)

Android系統(tǒng)是當(dāng)下最流行的手機(jī)操作系統(tǒng)之一,是由谷歌公司開發(fā)一款基于Linux系統(tǒng)的開源操作系統(tǒng)。Android平臺(tái)的核心是Android系統(tǒng),該平臺(tái)是由操作系統(tǒng)、中間件、應(yīng)用程序以及用戶界面組成。其中,其核心軟件是基于Linux系統(tǒng),使用C語言開發(fā)編寫;中間件使用C++語言編寫,為底層操作提供支持與保障;應(yīng)用軟件是由各種應(yīng)用公司開發(fā)研制,用于滿足用戶的各種功能需求。

Android系統(tǒng)采用與大部分操作系統(tǒng)類似的分層架構(gòu),如圖1所示分為四個(gè)層次,分別是:APPLICATIONS(應(yīng)用層)、APPLICATION FRAMEWORK(應(yīng)用框架層)、運(yùn)行庫層以及LINUX KERNEL(Linux內(nèi)核層)。應(yīng)用層主要是面向用戶的可視化功能軟件,如:短信、日歷、天氣、微信、備忘錄等,所有面向應(yīng)用層的軟件均由JAVA編寫。應(yīng)用框架層為應(yīng)用層的軟件提供運(yùn)行框架,提供了豐富的UI接口,方便應(yīng)用開發(fā)人員調(diào)用底層服務(wù)。運(yùn)行庫層包含豐富的C/C++庫,通過應(yīng)用框架層為開發(fā)者提供各種功能服務(wù)。Linux內(nèi)核提供各種進(jìn)程管理、內(nèi)存分配、設(shè)備驅(qū)動(dòng)管理、堆棧是文件系統(tǒng)管理等功能服務(wù)。

Android系統(tǒng)開發(fā)有活動(dòng)(Activity)、服務(wù)(Service)、廣播接收器(BroadcastReciever)、內(nèi)容提供商(Content Provider)四大組件。活動(dòng)是所有應(yīng)用程序的根本,所有程序都運(yùn)行在活動(dòng)中。應(yīng)用程序每一個(gè)界面就是一個(gè)活動(dòng),其中有各種圖片、文字、按鈕等,類似于一個(gè)網(wǎng)頁。服務(wù)不提供頁面,可以與其它組件交互,在后臺(tái)運(yùn)行。服務(wù)是一種程序,在不主動(dòng)關(guān)閉的情況下它可以在后臺(tái)運(yùn)行很長時(shí)間。廣播接收器廣泛應(yīng)用于應(yīng)用程序間的信息傳輸機(jī)制,應(yīng)用程序可以使用其對(duì)外部事件進(jìn)行有針對(duì)性的過濾。內(nèi)容提供商實(shí)現(xiàn)多個(gè)應(yīng)用程序之間數(shù)據(jù)的共享。

1.2 國密加密體系

國密算法是由國家密碼局指定的國產(chǎn)商用密碼算法,可實(shí)現(xiàn)商用加解密運(yùn)算、簽名驗(yàn)簽認(rèn)證等功能服務(wù),其主要算法有SM1、SM2、SM3、SM4。

SM1是商用密碼算法中的分組標(biāo)準(zhǔn)對(duì)稱算法,密鑰與分組長度均為128bit,該算法強(qiáng)度與軟硬件速率性能均與AES類似,該算法只是以IP核的形式存儲(chǔ)在安全芯片中,具體算法內(nèi)容保密,不向外公開。SM2是一款國密局發(fā)布的橢圓曲線公鑰密碼算法,其相對(duì)于國際上的RSA更加安全可靠。橢圓曲線是由維爾斯特拉斯方程確定的平面曲線,橢圓曲線是基于離散對(duì)數(shù)問題問題實(shí)現(xiàn)的加密方式,至今暫無有效的方法解決這一問題。橢圓曲線算法相對(duì)于RSA有如下優(yōu)勢(shì):(1)計(jì)算量小,處理速度快,相對(duì)于RSA可以快速實(shí)現(xiàn)簽名驗(yàn)簽和加解密;(2)帶寬需求低;(3)安全性高,160位的橢圓曲線密碼強(qiáng)度與1024位的RSA強(qiáng)度相當(dāng);(4)存儲(chǔ)量小,SM2的存儲(chǔ)空間是192-256bit,RSA的存儲(chǔ)空間為2048-4096bit;(5)計(jì)算復(fù)雜度高,SM2的計(jì)算復(fù)雜度是完全指數(shù)級(jí)別,而RSA的計(jì)算復(fù)雜度為亞指數(shù)級(jí)別。SM3是我國采用的一種散列函數(shù)密碼標(biāo)準(zhǔn)(GM/T0004-2012《SM3密碼雜湊算法》)。在我國商用密碼中,其主要應(yīng)用于簽名驗(yàn)簽、消息認(rèn)證碼生成驗(yàn)證、隨機(jī)數(shù)生成等,其生成效率與SHA-256相當(dāng)。SM4是國家秘密局采用的分組密碼標(biāo)準(zhǔn)(GM/T0002-2012《SM4分組密碼算法》),SM4主要用于數(shù)據(jù)的加密與解密,其分組長度與密鑰的長度都是128比特,加密與密鑰擴(kuò)展算法均采用32為非線性迭代結(jié)構(gòu),S盒子是固定的8bit輸入輸出。

2 系統(tǒng)架構(gòu)設(shè)計(jì)

手機(jī)移動(dòng)應(yīng)用加解密與簽名驗(yàn)簽系統(tǒng)采用的是前后端分離的設(shè)計(jì)結(jié)構(gòu)。前后端分離設(shè)計(jì),是一種前端代碼與后端代碼的分離,也是前端內(nèi)部邏輯與后端內(nèi)部邏輯的分離(前后端系統(tǒng)可以獨(dú)立地完成其內(nèi)部子功能邏輯),更是前后端物理部署的分離。前后端分離使業(yè)務(wù)邏輯更加清晰,減少了前后端功能的耦合,某個(gè)子功能的錯(cuò)誤不會(huì)迭代影響其他子功能的錯(cuò)誤,更重要的是前端錯(cuò)誤不會(huì)影響后端服務(wù)器錯(cuò)誤,后端服務(wù)器功能增減與更新迭代不會(huì)影響手機(jī)前端功能。終端包括智能手機(jī)等在內(nèi)的移動(dòng)終端,其硬件部分由可信終端硬件和可信的硬件密碼模塊等組成;軟件部分由移動(dòng)操作系統(tǒng)、業(yè)務(wù)APP和安全APP組成,如圖2所示。其中業(yè)務(wù)APP是需要加密的手機(jī)端普通APP程序,安全APP是手機(jī)端APP與終端可信硬件密碼模塊之間的統(tǒng)一接口(直接調(diào)用手機(jī)內(nèi)置安全加密芯片(Inse)、手機(jī)貼膜卡加密芯片、TF加密卡芯片)[1]。

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

本系統(tǒng)采用前后端分離的架構(gòu)邏輯,前端手機(jī)安全APP模塊,后端簽名服務(wù)器、功能調(diào)用接口、終端可信硬件密碼模塊,相互邏輯解耦合,獨(dú)立開發(fā)、獨(dú)立部署。手機(jī)端服務(wù)的業(yè)務(wù)功能邏輯拆分提高了系統(tǒng)開發(fā)安全、降低了系統(tǒng)冗余。同時(shí),由于功能模塊相互低耦合度,提高了系統(tǒng)的魯棒性,降低了開發(fā)難度[2,3]。

3.1 后端服務(wù)器

后端服務(wù)器主要實(shí)現(xiàn)對(duì)手機(jī)前端應(yīng)用APP發(fā)來的簽名包進(jìn)行驗(yàn)簽,驗(yàn)簽成功后獲取SM2(國密)國密加密公鑰值。然后,通過簽名響應(yīng)的形式將本地生成的SM4(國密)通信密鑰以獲取的SM2(國密)公鑰加密的形式進(jìn)行傳輸,進(jìn)而實(shí)現(xiàn)會(huì)話密鑰的交換。后端服務(wù)器同時(shí)還進(jìn)行時(shí)間戳辨認(rèn)、IMSI號(hào)審核、包名審計(jì)等,以確定申請(qǐng)人信息無誤,防止重放攻擊等惡意代碼入侵,并以日志的形式記錄每一條簽名信息與加密信息。

3.2 手機(jī)端安全APP模塊

手機(jī)端安全APP模塊主要實(shí)現(xiàn)對(duì)終端可信硬件密碼模塊的選擇,以確保應(yīng)用APP使用最優(yōu)的加密方式。由于手機(jī)端加密方式多樣,為保證應(yīng)用開發(fā)的統(tǒng)一,必須使用統(tǒng)一的信息對(duì)外出口。因此,安全APP模塊是本系統(tǒng)的核心,是終端可信硬件密碼模塊與手機(jī)應(yīng)用APP之間的橋梁。手機(jī)應(yīng)用APP不需要知道調(diào)用的是何種加密模塊,只需要調(diào)用統(tǒng)一接口,就可以實(shí)現(xiàn)應(yīng)用的簽名/驗(yàn)簽和加/解密功能,在軟件上實(shí)現(xiàn)了加密模塊選擇調(diào)用的透明化!

安全APP模塊會(huì)按照加密速度優(yōu)先級(jí)以優(yōu)先調(diào)用手機(jī)內(nèi)置安全加密芯片(Inse),如果無此安全APP的情況下,調(diào)用手機(jī)貼膜卡加密模塊,最后調(diào)用TF加密卡模塊。如果這幾個(gè)安全加密模塊都不存在,則返回硬件未找到,否則,調(diào)用優(yōu)先級(jí)最高的加密模塊實(shí)現(xiàn)國密簽名/驗(yàn)簽和加/解密操作。安全APP在啟動(dòng)時(shí)首先會(huì)初始化手機(jī)的硬件資源,如手機(jī)的IMEI號(hào),應(yīng)用APP包名、終端可信硬件密碼模塊的配置情況等。安全APP一旦獲取了終端可信硬件密碼模塊的信息,將主動(dòng)選擇該密碼模塊(如有多種密碼模塊則選擇最優(yōu)模塊)。當(dāng)應(yīng)用APP發(fā)來簽名請(qǐng)求時(shí),安全APP將整合已有信息調(diào)用簽名接口獲取帶有簽名公鑰簽名信息。然后,當(dāng)應(yīng)用APP獲取服務(wù)端發(fā)來的響應(yīng)信息時(shí),安全APP使用驗(yàn)簽接口,調(diào)用終端可信硬件密碼模塊驗(yàn)簽信息,并使用SM2解密密鑰獲取SM4會(huì)話密鑰。最后,應(yīng)用APP即可與服務(wù)器使用SM4會(huì)話密鑰進(jìn)行會(huì)話操作。其中會(huì)話密鑰以鍵值對(duì)的形式與應(yīng)用APP的包名存儲(chǔ)在安全APP中,以區(qū)分不同應(yīng)用APP的會(huì)話密鑰。

3.3 手機(jī)端功能接口

(1)簽名接口。簽名接口主要是在手機(jī)端安全APP初始化選定終端可信硬件密碼模塊后,與終端可信硬件密碼模塊通信的接口,通過簽名接口安全APP可以獲取加密模塊的SM2(國密非對(duì)稱加密算法)簽名公鑰以及使用SM2(國密國密非對(duì)稱加密算法)私鑰簽名的SM2(國密非對(duì)稱加密算法)加密公鑰簽名信息值,通過bate64轉(zhuǎn)化后發(fā)送給應(yīng)用APP。(2)驗(yàn)簽接口。驗(yàn)簽接口主要實(shí)現(xiàn)在后臺(tái)服務(wù)器驗(yàn)簽應(yīng)用APP發(fā)送的簽名數(shù)據(jù)成功后,發(fā)送響應(yīng)數(shù)據(jù)。其數(shù)據(jù)也是一串簽名數(shù)據(jù),其中包含SM2(國密國密非對(duì)稱加密算法)簽名公鑰、使用SM2(國密國密非對(duì)稱加密算法)公鑰加密后的SM4(國密對(duì)稱加密算法)會(huì)話密鑰值等。通過驗(yàn)簽接口,可以驗(yàn)簽后臺(tái)服務(wù)端發(fā)來數(shù)據(jù)的合法性,同時(shí)通過安全APP解密獲取會(huì)話密鑰值。(3)加密接口/解密接口。通過驗(yàn)簽接口獲取的存儲(chǔ)在安全APP中的會(huì)話密鑰,應(yīng)用APP可以實(shí)時(shí)與后臺(tái)服務(wù)器進(jìn)行SM4(國密對(duì)稱加密算法)加密的會(huì)話通信。(4)公鑰導(dǎo)出接口。由于簽名驗(yàn)簽時(shí)需要驗(yàn)簽方獲取簽名方的公鑰信息,因此需要通過公鑰導(dǎo)出接口調(diào)用安全APP獲取加密模塊的簽名驗(yàn)簽公鑰字符串。

4 結(jié)語

本文主要介紹了基于安卓系統(tǒng)的國密硬件加密系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),所設(shè)計(jì)的移動(dòng)應(yīng)用加密系統(tǒng)可以實(shí)現(xiàn)在線硬件加密模塊的調(diào)度,包括加密模塊發(fā)現(xiàn)、模塊選擇以及硬件功能調(diào)用等。用戶在不需要關(guān)心硬件加密模塊的前提下,快速實(shí)現(xiàn)加解密與簽名驗(yàn)簽操作,在軟件層實(shí)現(xiàn)對(duì)用戶的透明不可見,用戶不需要關(guān)心自己調(diào)用的是何種硬件加密方式,極大地提高了用戶調(diào)用效率,減少了下游用戶的開發(fā)難度,提高了開發(fā)效率。

參考文獻(xiàn)

[1] 熱夏提·艾爾肯.基于透明加密的Android平臺(tái)加密系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].中國科學(xué)院大學(xué)(中國科學(xué)院工程管理與信息技術(shù)學(xué)院),2017.

[2] 李濟(jì)洋,趙鵬遠(yuǎn),劉喆.基于加密SD卡的內(nèi)網(wǎng)移動(dòng)終端可信接入方案[J].網(wǎng)絡(luò)與信息安全學(xué)報(bào),2019,5(04):108-118.

[3] 王志賀,駱釗,謝吉華,顧偉,陳海超,許超,周亮.基于SM2密碼體系的SD卡的電力移動(dòng)終端安全接入方案[J].中國電力,2015,48(05):75-80.

猜你喜歡
國密加解密
國密技術(shù)在智能燃?xì)獗硐到y(tǒng)的應(yīng)用與分析
Hyperledger Fabric平臺(tái)的國密算法嵌入研究
自助終端設(shè)備國密改造方法探究
基于國密算法的銀行移動(dòng)營銷終端安全系統(tǒng)研究
電子取證中常見數(shù)據(jù)加解密理論與方法研究
基于FPGA的LFSR異步加解密系統(tǒng)
万载县| 金湖县| 威信县| 贵州省| 舞钢市| 丘北县| 二连浩特市| 通化市| 门源| 获嘉县| 肃北| 通州区| 庆安县| 马尔康县| 阿拉善左旗| 海口市| 肇州县| 通城县| 施秉县| 正安县| 延川县| 漾濞| 青海省| 突泉县| 临西县| 龙陵县| 廉江市| 嘉祥县| SHOW| 陆川县| 钟祥市| 尼勒克县| 什邡市| 绥中县| 西昌市| 高清| 新巴尔虎左旗| 雷波县| 绥芬河市| 含山县| 安徽省|