黃一平 農(nóng)麗萍 梁梓辰 張柯翔
1(廣西師范大學(xué)電子工程學(xué)院 廣西 桂林 541004) 2( 西安電子科技大學(xué)通信工程學(xué)院 陜西 西安 710071) 3(廣西師范大學(xué)物理科學(xué)與技術(shù)學(xué)院 廣西 桂林 541004)
當(dāng)前,移動支付因方便快捷受到越來越多人喜歡,但在應(yīng)用進程中面臨著病毒、木馬、釣魚網(wǎng)站、偽基站等安全威脅。同時,用戶體驗對便捷性的要求也越來越高,因此,提升移動支付的安全性與便捷性已成為人們關(guān)注的焦點[1-2]。移動應(yīng)用App通常運行在Android或iOS兩大系統(tǒng)平臺上,因Android應(yīng)用程序第三方庫的大量使用,其操作權(quán)限被非法濫用現(xiàn)象也越來越嚴(yán)重,安全問題突出[3]。為應(yīng)對當(dāng)前嚴(yán)峻的信息安全形勢,國家已將信息安全提升至國家戰(zhàn)略層面,并且在2015年頒布的《國家安全法》中強調(diào)要采用自主可控的國密安全芯片和國密安全算法,打造安全可信的裝備體系,因此,在安全產(chǎn)品中采用國密安全芯片具有十分重要的意義。
移動支付領(lǐng)域的爭奪歸根結(jié)底是安全單元(Secure Element,SE)模塊的爭奪,安全芯片已逐步貫穿人們生活的方方面面,同時也成為各行業(yè)研究的熱點方向[4-5]。目前移動互聯(lián)網(wǎng)能夠提供網(wǎng)絡(luò)身份認(rèn)證和網(wǎng)絡(luò)身份標(biāo)識的產(chǎn)品主要有短信驗證碼、軟證書、音頻KEY、藍(lán)牙KEY、SIM盾等,但這些產(chǎn)品在應(yīng)用上均存在不同程度的缺陷。1) 便捷但不夠安全。如短信驗證碼、軟證書,雖然是目前移動支付常用的方式,但因存在被木馬病毒攔截、釣魚網(wǎng)站竊取賬戶密碼信息等諸多安全隱患,導(dǎo)致賬戶資金被盜的現(xiàn)象時有發(fā)生,已經(jīng)無法滿足金融領(lǐng)域銀行高端用戶的大額轉(zhuǎn)賬需求。2) 安全但不便捷。如音頻KEY、藍(lán)牙KEY,雖然可以為手機銀行客戶端提供安全認(rèn)證,但需隨身攜帶,極不方便且易丟失。3) 無法獨立發(fā)行,獲取難度大。如SIM盾,其將數(shù)字證書植入SIM卡內(nèi),雖然具有較高的安全性,但由于SIM卡本身包含有運營商的用戶敏感數(shù)據(jù)如鑒權(quán)密鑰等,需要銀行與運營商聯(lián)合發(fā)行,而數(shù)字證書作為用戶憑證,銀行管理要求非常嚴(yán)格,存在系統(tǒng)整合障礙和資源浪費兩大問題,使得聯(lián)合發(fā)卡困難重重,用戶開通手續(xù)復(fù)雜[6]。綜上,現(xiàn)在的安全認(rèn)證產(chǎn)品普遍存在“安全卻沒人用、便捷則不安全”這樣尷尬的局面。
因此,為解決當(dāng)前移動互聯(lián)網(wǎng)安全認(rèn)證工具存在的無法同時具備安全性與便攜性的不足,本文提出一種新型、實用的藍(lán)牙SIM型智能IC卡,以國密安全芯片為控制核心,結(jié)合藍(lán)牙芯片和三軸地磁傳感器組合封裝,直接嵌入到手機卡槽內(nèi),實現(xiàn)安全、便捷的應(yīng)用。同時該模式免除了移動運營商與App應(yīng)用服務(wù)商聯(lián)合發(fā)卡的諸多麻煩,App應(yīng)用服務(wù)商可以自主發(fā)行卡片。從目前的推廣應(yīng)用表明,藍(lán)牙SIM型智能IC卡能實現(xiàn)App與卡片的數(shù)據(jù)交互,支持安卓和iOS兩大主流系統(tǒng),支持SM2、SM3、SM4等國密算法,不僅可應(yīng)用于移動金融支付領(lǐng)域,而且在線上身份認(rèn)證和其他行業(yè)應(yīng)用方面具有十分廣闊的應(yīng)用前景。
國密安全芯片是一款通過國家密碼管理局檢測,并具備國密SM1、SM2、SM3、SM4等算法的安全芯片,該芯片具有安全性高、功耗低、可擴展性強的特點,可用于USB Key、貼膜盾、藍(lán)牙盾、手機POS、接觸式智能卡等各類產(chǎn)品[7]。在功能上國密安全芯片具備CPU、RAM、FLASH、OTP等儲存空間,USB2.0、IOS7816主從、UART、SPI主從、通用IO等接口,多個可編程定時器/計數(shù)器,具有各類中斷控制寄存器,擁有RSA/ECC/SM2、DES、AES、SSF33、SM1、SM3、SM7、RNG等硬件協(xié)處理器,擁有RAM和Flash數(shù)據(jù)總線加密,TD/FD/VD安檢復(fù)位、上下電復(fù)位等安全特性,同時具備低功耗、高可靠性等特點。工作電壓可從2.7 V到5.5 V,工作溫度可從-25℃到85℃,可廣泛應(yīng)用于各行業(yè)相關(guān)信息安全嵌入式系統(tǒng)。
藍(lán)牙SIM型智能IC卡并不是一張真正意義上的SIM卡,而是一種以SIM卡大小形態(tài)展現(xiàn),內(nèi)置國密安全芯片和藍(lán)牙芯片,依靠手機卡槽的電源接口進行供電,通過藍(lán)牙協(xié)議與手機進行通信的智能卡,可以為手機App等應(yīng)用軟件提供信息簽名和加密服務(wù),支持安卓和iOS兩大系統(tǒng),本身不需要包含移動運營商等信息,不具備呼叫功能。其與傳統(tǒng)藍(lán)牙SIM卡的最大區(qū)別是應(yīng)用服務(wù)商不需要與SIM卡移動運營商捆綁,可以獨立發(fā)行,可以降低用戶獲得藍(lán)牙SIM型智能IC卡的門檻,減少應(yīng)用上線周期并且發(fā)卡方可自主控制敏感信息。除此之外,本文所述的藍(lán)牙SIM型智能IC卡內(nèi)置三軸傳感器,用于檢測得到的用戶手勢行為信號與所述目標(biāo)手勢行為信號保持一致的時間是否超過預(yù)設(shè)的時間間隔,若判斷得到兩者行為信號的時間超過預(yù)設(shè)時間間隔,則允許對用戶信息進行簽名或加密操作。該三軸傳感器的檢測方式可避免安全芯片長期處于工作狀態(tài),無法獲得有效的確認(rèn),減少移動應(yīng)用系統(tǒng)被木馬攻擊的風(fēng)險,提高系統(tǒng)的安全性。
移動互聯(lián)網(wǎng)的快速發(fā)展延伸出極大的網(wǎng)絡(luò)身份安全認(rèn)證需求,在通用的網(wǎng)絡(luò)身份認(rèn)證安全模型中,通常采用一個安全不可復(fù)制的設(shè)備和一個只有本人知道的秘密(PIN碼)的“雙因子認(rèn)證”[8],因此藍(lán)牙SIM型智能IC卡的設(shè)計需要符合“雙因子”要素。下面分別從硬件與軟件兩大部分進行論述。
藍(lán)牙SIM型智能IC卡的硬件由國密安全芯片、藍(lán)牙芯片、三軸地磁傳感器組成,各模塊的功能如下。
(1) 國密安全芯片。藍(lán)牙SIM型智能IC卡采用經(jīng)過國家密碼管理局審批的國密安全芯片,該芯片具有安全性高、功耗低、可擴展性強的特點。芯片集成8位微處理器、512字節(jié)IRAM、7.5 KB XRAM、256 KB的Flash,提供總線加密功能、高安全機制的防攻擊功能、符合ISO7816規(guī)范的7816串行I/O主從接口(支持T=0/T=1)、串行UART、SPI主從接口,提供SM2硬件加速器、雜湊算法協(xié)處理器,可提供SM2、SM3、SM4國密算法庫。
(2) 藍(lán)牙芯片。在藍(lán)牙芯片選型上采用H30芯片,其中H30是低功耗藍(lán)牙芯片,頻段范圍為2 402 MHz至2 480 MHz,具有40個信道跳頻,RF發(fā)射速率為1 Mbit/s。主要用于與手機藍(lán)牙連接,以便實現(xiàn)App與藍(lán)牙SIM型智能IC卡的通信。
(3) 三軸地磁傳感器。該模塊采用BMM150芯片,該芯片可以測量X、Y、Z三個方向的磁通量,以識別特定用戶的動作,用來做交易簽名的開關(guān)。
上述各模塊的硬件連接原理如圖1所示。在實際電路封裝中,需要將圖1封裝在一個SIM卡形態(tài)的卡片內(nèi),并預(yù)留SIM卡的金屬觸點,通過金屬觸點從手機卡槽獲取電源實現(xiàn)供電。封裝后的SIM型智能IC卡實物如圖2所示。

圖1 藍(lán)牙SIM型智能IC卡硬件連接原理

圖2 藍(lán)牙SIM型智能IC卡封裝后的實物
在上述硬件方案中,藍(lán)牙通信模塊用于國密安全芯片和移動終端之間建立通信通道;三軸傳感器用于檢測用戶的確認(rèn)信號,確保安全芯片發(fā)出的簽名是由擁有者本人確認(rèn)后執(zhí)行的;安全芯片分別與藍(lán)牙通信模塊和三軸傳感器相連接,用于根據(jù)三軸傳感器檢測得到的用戶確認(rèn)信號,對用戶信息進行簽名操作或加密操作;本方案的電源接口與移動終端的電源接口相連接,用于通過移動終端為電路提供電能。本技術(shù)方案方便用戶獲取、攜帶與使用,提高交易操作的安全性。
2.2.1軟件系統(tǒng)主要模塊介紹
藍(lán)牙SIM型智能IC卡采用自主創(chuàng)新的VM虛擬機機制,有效地實現(xiàn)應(yīng)用與卡片操作系統(tǒng)(COS)底層代碼的分離,COS運行于國密安全主控芯片上。軟件系統(tǒng)從功能模塊上可以分成字節(jié)碼應(yīng)用管理模塊、ISO7816通信管理模塊、VM虛擬機模塊、密鑰管理模塊、命令解析模塊、數(shù)據(jù)存儲管理模塊、安全狀態(tài)管理和藍(lán)牙SIM型智能IC卡通信管理等。
(1) 字節(jié)碼應(yīng)用管理模塊。用于實現(xiàn)對藍(lán)牙SIM型智能IC卡內(nèi)部的應(yīng)用進行管理,包括管理應(yīng)用入口、控制流程、調(diào)用進程、創(chuàng)建數(shù)據(jù)表、管理變量、管理權(quán)限等,實現(xiàn)不同數(shù)據(jù)與應(yīng)用之間在FLASH存儲區(qū)內(nèi)的物理隔離。
(2) IOS7816通信管理模塊。主要采用ISO7816-3T=0接觸式智能卡異步半雙工字符傳輸協(xié)議實現(xiàn),利用ISO7816接口進行數(shù)據(jù)通信和信息交互。
(3) VM虛擬機模塊。主要用于解析字節(jié)碼應(yīng)用數(shù)據(jù),這是實現(xiàn)卡片應(yīng)用與COS底層代碼分離的控制核心模塊。所有在卡片交互的數(shù)據(jù),均需經(jīng)過VM虛擬機解析后,確保指令正確且得到正確授權(quán)后,方能進入到相應(yīng)的流程控制。
(4) 密鑰管理模塊。主要實現(xiàn)對容器中的SM2非對稱密鑰的生成、公鑰導(dǎo)出、簽名等管理,臨時會話密鑰的生成、銷毀、加密、解密等管理。
(5) 命令解析模塊。COS的命令系統(tǒng)采用命令—應(yīng)答的方式交互,卡片會根據(jù)收到的APDU(應(yīng)用協(xié)議數(shù)據(jù)單元)命令檢查各項P1、P2、P3的參數(shù)是否正確,最后執(zhí)行相應(yīng)的操作。
(6) 數(shù)據(jù)存儲管理模塊。用于對應(yīng)用中數(shù)據(jù)表的創(chuàng)建、讀寫、加密、校驗等進行統(tǒng)一管理,確保關(guān)鍵數(shù)據(jù)與敏感數(shù)據(jù)在物理上進行隔離保護。
(7) 安全狀態(tài)管理模塊。確保在每個APDU指令訪問硬件內(nèi)部資源時在滿足安全狀態(tài)條件下執(zhí)行,防止外部非法指令越權(quán)探測,如執(zhí)行私鑰簽名的調(diào)用流程必須要確保PIN碼正確方能調(diào)用。
2.2.2軟件系統(tǒng)主要設(shè)計流程
藍(lán)牙SIM型智能IC卡主要為移動應(yīng)用App提供數(shù)字簽名和信息加解密服務(wù)。通過藍(lán)牙SIM型智能IC卡驅(qū)動中間件實現(xiàn)App與藍(lán)牙SIM型智能IC卡COS的數(shù)據(jù)交互。App通過中間件發(fā)出請求后,中間件將數(shù)據(jù)發(fā)送到COS的藍(lán)牙SIM型智能IC卡通信模塊,通信模塊對數(shù)據(jù)初步解析判斷后再傳送到字節(jié)碼應(yīng)用層,由COS將數(shù)據(jù)在應(yīng)用層進行功能處理,如加密、解密、MAC校驗、加簽,PIN碼判斷等。藍(lán)牙SIM型智能IC卡的軟件系統(tǒng)設(shè)計主要流程包括COS主程序流程、內(nèi)部認(rèn)證流程、外部認(rèn)證流程、PIN碼認(rèn)證流程、數(shù)據(jù)簽名流程、簽名認(rèn)證流程、數(shù)據(jù)加解密流程、MAC校驗流程等展開。
(1) COS主程序流程。藍(lán)牙SIM型智能IC卡整個COS的入口點從上電復(fù)位開始,然后主程序流程對系統(tǒng)進行初始化操作,并判斷是否通過應(yīng)用完整性檢查、隨機數(shù)引擎檢查、算法引擎檢查等,確保校驗通過后再進入接收APDU主邏輯循環(huán),否則返回錯誤狀態(tài)碼。在主循環(huán)中主要通過指令分派來實現(xiàn)APDU指令處理。COS主程序流程如圖3所示。

圖3 藍(lán)牙SIM型智能IC卡主程序流程
(2) 內(nèi)部認(rèn)證流程。該流程用于外部應(yīng)用對卡片的認(rèn)證,首先外部應(yīng)用生成隨機數(shù)并下發(fā)給藍(lán)牙SIM型智能IC卡,卡片判斷指令數(shù)據(jù)和當(dāng)前安全狀態(tài)是否滿足使用條件,如果符合,則卡片使用內(nèi)部認(rèn)證密鑰對傳入的隨機數(shù)計算認(rèn)證數(shù)據(jù)并返回給外部應(yīng)用,否則返回錯誤狀態(tài)碼。內(nèi)部認(rèn)證流程如圖4所示。

圖4 藍(lán)牙SIM型智能IC卡內(nèi)部認(rèn)證流程
(3) 外部認(rèn)證流程。該外部認(rèn)證流程用于卡片對外部設(shè)備進行認(rèn)證,首先外部設(shè)備使用外部認(rèn)證密鑰對獲取的隨機數(shù)計算出認(rèn)證數(shù)據(jù)下發(fā)給卡片,卡片判斷指令數(shù)據(jù)是否正確、是否取得了隨機數(shù)、是否滿足安全使用條件,都通過后在卡片內(nèi)部使用外部認(rèn)證密鑰按相同算法對傳入的數(shù)據(jù)進行認(rèn)證,認(rèn)證成功則將對應(yīng)密鑰狀態(tài)的狀態(tài)進行更新,否則返回錯誤狀態(tài)碼。外部認(rèn)證流程如圖5所示。

圖5 藍(lán)牙SIM型智能IC卡外部認(rèn)證流程
(4) PIN碼認(rèn)證流程。該流程是對指定PIN碼進行認(rèn)證的過程,其流程是外部應(yīng)用使用指定的用戶PIN碼密鑰數(shù)據(jù)對獲取的隨機數(shù)進行加密,并將結(jié)果發(fā)送到藍(lán)牙SIM型智能IC卡,COS對指定的PIN碼進行認(rèn)證,若認(rèn)證成功,則卡片更新相應(yīng)PIN碼狀態(tài),否則返回錯誤狀態(tài)碼。
(5) 數(shù)據(jù)簽名流程。該流程先是由卡片接收待簽名數(shù)據(jù),卡片判斷收到的數(shù)據(jù)是否正確,若正確再對待簽名的數(shù)據(jù)計算帶Z值的SM3雜湊運算得到固定長度的32字節(jié)數(shù)據(jù),然后卡片判斷當(dāng)前安全狀態(tài)是否滿足條件,若符合安全條件,再判斷三軸傳感器是否檢測到了用戶需要簽名的安全手勢,若都檢測通過,則在COS內(nèi)部調(diào)用卡片的私鑰,用SM2算法進行簽名運算,如果簽名成功則返回簽名值,否則返回錯誤狀態(tài)碼。數(shù)據(jù)簽名流程如圖6所示。

圖6 藍(lán)牙SIM型智能IC卡數(shù)字簽名流程
(6) 簽名認(rèn)證流程。該流程先是通過卡片接收待簽名數(shù)據(jù),COS判斷接收到的數(shù)據(jù)是否正確和安全狀態(tài)是否滿足條件,若都檢測通過后,COS允許調(diào)用國密安全芯片內(nèi)部的SM2算法庫進行簽名驗證運算,驗證成功后將結(jié)果返回給應(yīng)用,否則返回錯誤狀態(tài)碼。
在該應(yīng)用流程中,國密安全芯片從藍(lán)牙通信模塊接收發(fā)自移動終端App的用戶信息操作指令,生成隨機的目標(biāo)確認(rèn)信號,并比對三軸傳感器檢測得到的用戶確認(rèn)信號與所生成的目標(biāo)確認(rèn)信號是否一致,若比對得到用戶確認(rèn)信號與目標(biāo)確認(rèn)信號一致,則允許對用戶信息進行加簽操作,否則作出相應(yīng)操作異常提示。
(7) 數(shù)據(jù)加解密流程。該流程先是由卡片接收待加密或解密的數(shù)據(jù),然后判斷收到的數(shù)據(jù)是否正確同時是否滿足安全狀態(tài)條件,若檢測通過,則由COS對算法進行初始化并對輸入數(shù)據(jù)進行補位填充,最后再通過指定的對稱密鑰對數(shù)據(jù)進行加密或解密處理,成功后返回結(jié)果,否則返回錯誤狀態(tài)碼。
(8) MAC算法流程。該流程主要利用16字節(jié)的會話密鑰Kc,通過國密SM4對稱加密算法以CBC方式對所有應(yīng)用數(shù)據(jù)進行MAC運算,然后取最后一組密文的左邊4字節(jié)作為MAC值。在所有數(shù)據(jù)參與MAC運算前,如果數(shù)據(jù)不是8的倍數(shù),需要先對其進行填充處理。
2.3.1個人化狀態(tài)轉(zhuǎn)換
個人化是將藍(lán)牙SIM型智能IC卡從工廠態(tài)轉(zhuǎn)換為個人態(tài)的過程,工廠態(tài)時,藍(lán)牙SIM型智能IC卡會做好證書的預(yù)植入工作。用戶態(tài)的轉(zhuǎn)換會在用戶開戶激活時,通過主控密鑰和外部認(rèn)證密鑰導(dǎo)入其他密鑰數(shù)據(jù),確保在實際交易過程中的安全。
2.3.2認(rèn)證狀態(tài)轉(zhuǎn)換
藍(lán)牙SIM型智能IC卡認(rèn)證狀態(tài)涉及安全狀態(tài)寄存器及對應(yīng)的認(rèn)證流程,安全狀態(tài)寄存器在初始化時狀態(tài)位都為零,當(dāng)執(zhí)行如外部認(rèn)證、內(nèi)部認(rèn)證或PIN碼認(rèn)證等通過后,對應(yīng)的外部認(rèn)證、內(nèi)部認(rèn)證或PIN碼認(rèn)證狀態(tài)位將被置1,若認(rèn)證失敗,則對應(yīng)的安全狀態(tài)位置0。認(rèn)證狀態(tài)轉(zhuǎn)換示意圖如圖7所示。

圖7 藍(lán)牙SIM型智能IC卡認(rèn)證狀態(tài)轉(zhuǎn)換示意圖
藍(lán)牙SIM型智能IC卡解決了安全性、便捷性與兼容性三者的平衡,讓大規(guī)模推廣移動互聯(lián)網(wǎng)應(yīng)用的硬件證書成為現(xiàn)實。
(1) 安全性。本文的藍(lán)牙SIM型智能IC卡采用了國密認(rèn)證的安全芯片,以保證藍(lán)牙SIM型智能IC卡具有極高的安全性和規(guī)范性。利用藍(lán)牙SIM型智能IC卡內(nèi)部的SM2等硬件加密算法及移動客戶端應(yīng)用軟件提供的友好界面,很好地解決手機信息交換的安全與數(shù)據(jù)簽名及加解密問題。藍(lán)牙SIM型智能IC卡通過第三方權(quán)威機構(gòu)認(rèn)證,可為移動支付提供可靠的安全保障。同時在進行簽名或加密關(guān)鍵指令時,通過三軸傳感器識別用戶動作指令,加入手勢動作來確認(rèn)用戶本人的操作意愿,有效避免了被木馬劫持的風(fēng)險,大大提高了應(yīng)用的安全性。
(2) 兼容性。本文的藍(lán)牙SIM型智能IC卡支持各種符合ISO7816規(guī)范的手機,兼容iOS、安卓等不同版本的智能手機,便于擴展移動增值應(yīng)用服務(wù)。
(3) 便捷性。本文的藍(lán)牙SIM型智能IC卡有別于普通SIM卡,可由銀行等移動應(yīng)用服務(wù)商開發(fā)各類手機App等擴展功能,不涉及移動通信運營公司的管理,在更換手機或更換SIM卡時,用戶可繼續(xù)使用原有藍(lán)牙SIM型智能IC卡,仍可以得到如移動支付、安全加密等各類服務(wù)應(yīng)用,本卡也為非移動運營商提供各類安全應(yīng)用的服務(wù);另外本文的藍(lán)牙SIM型智能IC卡無須像普通音頻KEY、藍(lán)牙KEY那樣外掛于手機,因此更具有推廣和應(yīng)用價值。
各硬件級別安全產(chǎn)品對比如表1所示。

表1 各硬件級別安全產(chǎn)品對比
藍(lán)牙SIM型智能IC卡可以直接為手機銀行App的交易數(shù)據(jù)進行簽名服務(wù),當(dāng)用戶輸入完所有的轉(zhuǎn)賬交易信息后,通過藍(lán)牙SIM型智能IC卡提供的接口將數(shù)據(jù)送給藍(lán)牙SIM型智能IC卡,用戶輸入卡片PIN碼,藍(lán)牙SIM型智能IC卡在COS內(nèi)部先校驗用戶輸入的PIN碼是否正確,如果正確則通過手勢確認(rèn)動作,確認(rèn)為本人意愿后再調(diào)用卡內(nèi)的私鑰對下發(fā)的交易數(shù)據(jù)進行簽名,簽名完成后再將數(shù)據(jù)送給后臺,后臺再返回驗簽結(jié)果,其使用流程如圖8所示。

圖8 藍(lán)牙SIM型智能IC卡在App的應(yīng)用效果
本文提出的以國密安全芯片為控制核心的藍(lán)牙SIM型智能IC卡方案,具有安全性好、兼容性高、便捷性佳等優(yōu)點,可為移動應(yīng)用App提供安全便捷的硬件級安全防護。該方案相比傳統(tǒng)音頻KEY、藍(lán)牙KEY,由于不需要額外攜帶更易于推廣和使用,同時相比受運營商控制的SIM盾,由于不需要與運營商合作,第三方可直接推廣,使用戶更易于獲得。該方案已在金融和信息加密領(lǐng)域進行應(yīng)用,如手機銀行、語音加密等,具有廣闊的應(yīng)用前景。本文提供的設(shè)計方案對從事藍(lán)牙智能卡系統(tǒng)開發(fā)的技術(shù)人員可以提供有用的借鑒意義,同時對安全與便捷要求更高的行業(yè),在方案選型和設(shè)計上可提供有用參考,從而促進移動互聯(lián)網(wǎng)產(chǎn)業(yè)安全、健康發(fā)展。