• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

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

      孫金奇

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

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

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

      0 引言

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

      當(dāng)下手機(jī)端的加密有硬件加密和軟件加密之分,軟件加密是通過加密軟件來保護(hù)信息流入流出的安全可靠,但軟加密效率相對低下。硬件加密主要是通過手機(jī)內(nèi)置加密芯片(如華為Mate系列手機(jī)的Inse加密模塊)、TF加密卡以及手機(jī)貼膜卡實(shí)現(xiàn)。這三種加密方式可以實(shí)現(xiàn)相同的業(yè)務(wù)功能,但是由于這三種加密方式的硬件基礎(chǔ)不同,應(yīng)用程序如果想分別調(diào)用這三種方法只能編寫三個版本的軟件系統(tǒng)或編寫一個統(tǒng)一的調(diào)用接口來統(tǒng)一調(diào)用。顯然使用三個版本應(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平臺的核心是Android系統(tǒng),該平臺是由操作系統(tǒng)、中間件、應(yīng)用程序以及用戶界面組成。其中,其核心軟件是基于Linux系統(tǒng),使用C語言開發(fā)編寫;中間件使用C++語言編寫,為底層操作提供支持與保障;應(yīng)用軟件是由各種應(yīng)用公司開發(fā)研制,用于滿足用戶的各種功能需求。

      Android系統(tǒng)采用與大部分操作系統(tǒng)類似的分層架構(gòu),如圖1所示分為四個層次,分別是: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ū)動管理、堆棧是文件系統(tǒng)管理等功能服務(wù)。

      Android系統(tǒng)開發(fā)有活動(Activity)、服務(wù)(Service)、廣播接收器(BroadcastReciever)、內(nèi)容提供商(Content Provider)四大組件?;顒邮撬袘?yīng)用程序的根本,所有程序都運(yùn)行在活動中。應(yīng)用程序每一個界面就是一個活動,其中有各種圖片、文字、按鈕等,類似于一個網(wǎng)頁。服務(wù)不提供頁面,可以與其它組件交互,在后臺運(yùn)行。服務(wù)是一種程序,在不主動關(guān)閉的情況下它可以在后臺運(yùn)行很長時間。廣播接收器廣泛應(yīng)用于應(yīng)用程序間的信息傳輸機(jī)制,應(yīng)用程序可以使用其對外部事件進(jìn)行有針對性的過濾。內(nèi)容提供商實(shí)現(xiàn)多個應(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)對稱算法,密鑰與分組長度均為128bit,該算法強(qiáng)度與軟硬件速率性能均與AES類似,該算法只是以IP核的形式存儲在安全芯片中,具體算法內(nèi)容保密,不向外公開。SM2是一款國密局發(fā)布的橢圓曲線公鑰密碼算法,其相對于國際上的RSA更加安全可靠。橢圓曲線是由維爾斯特拉斯方程確定的平面曲線,橢圓曲線是基于離散對數(shù)問題問題實(shí)現(xiàn)的加密方式,至今暫無有效的方法解決這一問題。橢圓曲線算法相對于RSA有如下優(yōu)勢:(1)計算量小,處理速度快,相對于RSA可以快速實(shí)現(xiàn)簽名驗(yàn)簽和加解密;(2)帶寬需求低;(3)安全性高,160位的橢圓曲線密碼強(qiáng)度與1024位的RSA強(qiáng)度相當(dāng);(4)存儲量小,SM2的存儲空間是192-256bit,RSA的存儲空間為2048-4096bit;(5)計算復(fù)雜度高,SM2的計算復(fù)雜度是完全指數(shù)級別,而RSA的計算復(fù)雜度為亞指數(shù)級別。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ī)移動應(yīng)用加解密與簽名驗(yàn)簽系統(tǒng)采用的是前后端分離的設(shè)計結(jié)構(gòu)。前后端分離設(shè)計,是一種前端代碼與后端代碼的分離,也是前端內(nèi)部邏輯與后端內(nèi)部邏輯的分離(前后端系統(tǒng)可以獨(dú)立地完成其內(nèi)部子功能邏輯),更是前后端物理部署的分離。前后端分離使業(yè)務(wù)邏輯更加清晰,減少了前后端功能的耦合,某個子功能的錯誤不會迭代影響其他子功能的錯誤,更重要的是前端錯誤不會影響后端服務(wù)器錯誤,后端服務(wù)器功能增減與更新迭代不會影響手機(jī)前端功能。終端包括智能手機(jī)等在內(nèi)的移動終端,其硬件部分由可信終端硬件和可信的硬件密碼模塊等組成;軟件部分由移動操作系統(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)冗余。同時,由于功能模塊相互低耦合度,提高了系統(tǒng)的魯棒性,降低了開發(fā)難度[2,3]。

      3.1 后端服務(wù)器

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

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

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

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

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

      4 結(jié)語

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

      參考文獻(xiàn)

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

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

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

      猜你喜歡
      國密加解密
      國密技術(shù)在智能燃?xì)獗硐到y(tǒng)的應(yīng)用與分析
      Hyperledger Fabric平臺的國密算法嵌入研究
      自助終端設(shè)備國密改造方法探究
      基于國密算法的銀行移動營銷終端安全系統(tǒng)研究
      電子取證中常見數(shù)據(jù)加解密理論與方法研究
      基于FPGA的LFSR異步加解密系統(tǒng)
      会宁县| 政和县| 济源市| 包头市| 永丰县| 晋宁县| 博野县| 鱼台县| 澄江县| 高邑县| 北宁市| 乐清市| 福安市| 临清市| 龙岩市| 涞水县| 迁西县| 古交市| 延安市| 卓尼县| 察雅县| 勃利县| 木兰县| 长兴县| 上饶县| 上犹县| 扬州市| 河北省| 陇南市| 金沙县| 临武县| 凤台县| 维西| 揭东县| 安达市| 轮台县| 汝州市| 望都县| 虎林市| 大余县| 安福县|