移動終端軟件安全元器件系統(tǒng)及用于該系統(tǒng)的密鑰系統(tǒng)的制作方法
【專利摘要】本發(fā)明具體地涉及移動終端軟件安全元器件系統(tǒng)及用于移動終端軟件安全元器件系統(tǒng)的密鑰系統(tǒng)。安全元器件系統(tǒng)包括:移動終端,其內設置有具有用于與軟件安全元器件進行交互的安全安全邏輯模塊和對移動終端的文件存儲和運行進行安全保護的軟件安全元器件的安全SDK,安全安全邏輯模塊需要與軟件安全元器件進行交互并完成指紋校驗;安全SDK與軟件安全元器件管理平臺和軟件安全元器件在建立通訊時需要進行基于密鑰的雙向認證及工作密鑰的協(xié)商,協(xié)商成功后安全SDK和軟件安全元器件之間的數(shù)據(jù)傳輸使用通信密鑰進行加密保護。由于本發(fā)明完全采用軟件實現(xiàn),提高了適用范圍,具有普通開源操作系統(tǒng)的移動終端即可運行,可成為移動終端上一種普適性解決方案。
【專利說明】
移動終端軟件安全元器件系統(tǒng)及用于該系統(tǒng)的密鑰系統(tǒng)
技術領域
[0001]本發(fā)明一般地涉及移動終端安全元件領域,并且更具體地涉及移動終端軟件安全元器件系統(tǒng)及用于移動終端軟件安全元器件系統(tǒng)的密鑰系統(tǒng)。
【背景技術】
[0002]隨著智能終端的普及,移動互聯(lián)網正以爆炸式的飛速發(fā)展。以移動應用為核心,逐步發(fā)展起來的移動應用商城,將開發(fā)者、應用商城、用戶三者緊密結合在一起,形成了開發(fā)者開發(fā)應用,商城上線并售賣應用,用戶購買應用,開發(fā)者和商城獲利分成的產業(yè)鏈條。
[0003]智能終端的發(fā)展,給用戶提供了更好的使用界面和極其豐富的各類應用,但同時也在操作系統(tǒng)、終端性能的提升、以及利益的驅使下,滋生了大量病毒、木馬、吸費、竊取隱私等各類惡意代碼、惡意應用。為了能夠達到盜取資金,竊取信息等目的,攻擊者盡力隱藏自己的惡意代碼,將其附著在合法應用上,采取破解,篡改應用的方式發(fā)布。許多應用使用者在不知情的狀態(tài)下,安裝了含有惡意代碼的應用,不知不覺中丟失資金、話費、流量等等。安裝了例如安卓這樣開放性高的操作系統(tǒng)的移動終端,尤其會成為上述各類惡意代碼和惡意應用的目標。
[0004]為了保證終端應用運行時安全性,尤其是關鍵運算、操作、數(shù)據(jù)的安全性,需要在移動終端內實現(xiàn)可保護數(shù)據(jù)存儲、運算安全的運行環(huán)境。目前業(yè)內主要有兩種方案。一種采用硬件安全芯片提供安全運行及存儲環(huán)境,例如手機、SIM卡內預置芯片安全元件(SecureElement,SE),這些芯片中具有加密和/或解密邏輯電路,為了更進一步地保護芯片不被外部惡意解析攻擊,芯片往往還需要有特殊材料制作的外殼包裹。另一種采用雙域安卓或雙操作系統(tǒng)等方案,分隔操作系統(tǒng)來實現(xiàn)數(shù)據(jù)及運行隔離。但以上兩種方案均需要定制手機或其他硬件支持,尤其是在安裝了普通安裝安卓系統(tǒng)的手機上不易實現(xiàn),因此這些普通安卓系統(tǒng)手機在安全方面受到巨大威脅。
【發(fā)明內容】
[0005]為了解決現(xiàn)有虛擬安全保護技術對普通安卓系統(tǒng)手機適用性不高的問題,提出了一種移動終端軟件安全元器件(Soft Secure Element,SSE)的系統(tǒng)及實現(xiàn)方法。此系統(tǒng)及方法中,針對本地存儲文件安全、運行時內存安全、算法及密鑰安全、程序邏輯安全等問題提供統(tǒng)一框架及解決方案。
[0006]為了實現(xiàn)上目的,本發(fā)明提供一種移動終端軟件安全元器件系統(tǒng),其特征在于,包括:
[0007]移動終端,移動終端內具有安全SDK,所述安全SDK具有用于與軟件安全元器件進行交互的安全安全邏輯模塊和對移動終端的文件存儲和運行進行安全保護的軟件安全元器件;
[0008]軟件安全元器件管理平臺,能夠與軟件安全元器件通信,并能夠存儲、管理和驗證軟件安全元器件使用的密鑰;
[0009]所述移動終端需要調用軟件安全元器件時,其安全SDK中的安全安全邏輯模塊需要與軟件安全元器件進行交互并完成指紋校驗;
[0010]所述安全SDK與軟件安全元器件管理平臺和軟件安全元器件在建立通訊時需要進行基于密鑰的雙向認證及工作密鑰的協(xié)商,協(xié)商成功后安全SDK和軟件安全元器件之間的數(shù)據(jù)傳輸使用通信密鑰進行加密保護。
[0011]進一步地,所述指紋校驗過程中,安全安全邏輯模塊的指紋是基于SDK類信息、版本信息和指紋因子I通過安全散列算法得出的,軟件安全元器件的指紋是基于軟件安全元器件的文件大小、文件時間、版本信息和指紋因子2通過安全散列算法得出的。其中,所述指紋因子是在安全SDK和軟件安全元器件中預置的,不會隨著移動終端的運行而改變;它可以是但不限于是一串隨機數(shù)字或一串字符。安全SDK在每次調用軟件安全元器件時都需要重復進行指紋校驗,以確保移動終端環(huán)境未發(fā)生變化,能有效避免第三方對軟件安全元器件的非法調用或訪問。
[0012]進一步地,所述軟件安全元器件包括能夠確保調用軟件安全元器件方合法性的訪問控制及管理模塊、能夠對移動終端內存儲的數(shù)據(jù)文件加密的存儲管理模塊、對軟件安全元器件密鑰進行安全算法保護和管理的白盒算法模塊、對軟件安全元器件代碼進行安全保護的軟件安全元器件保護模塊和對移動終端物理內存進行虛擬化使安全元器件具有反調試功能的虛擬化管理模塊;
[0013]其中,所述存儲管理模塊、軟件安全元器件保護模塊和白盒算法模塊協(xié)同合作能夠使移動終端內存儲的數(shù)據(jù)文件進行安全保護;
[0014]所述虛擬化管理模塊和白盒算法模塊協(xié)同合作能夠使移動終端內存得到保護。[00?5]進一步地,所述安全SDK中的安全邏輯模塊包括接口單元和AC管理單元,所述軟件安全元器件的訪問控制及管理模塊包括接口單元、AC管理單元和完整性校驗單元;
[0016]其中,所述完整性校驗單元包括能夠校驗安全安全邏輯模塊指紋與軟件安全元器件指紋是否一致的校驗算法次單元和管理及存儲指紋信息的指紋管理次單元;
[0017]安全邏輯模塊中的接口單元與軟件安全元器件的接口單元功能對應,安全邏輯模塊的AC管理單元與軟件安全元器件的AC管理單元功能對應,他們與完整性校驗單元配合實現(xiàn)安全SDK對軟件安全元器件的交互、指紋驗證以及后續(xù)可能的調用。其中,安全SDK的安全邏輯模塊的核心功能是調用軟件安全元器件實現(xiàn),軟件安全元器件的訪問控制及管理模塊則通過指紋校驗這個授權認證手段有效避免第三方對軟件安全元器件的非法訪問及非法調用,從而進一步避免了非法調用所產生的數(shù)據(jù)。
[0018]進一步地,所述存儲管理模塊包括策略配置單元和透明加密單元;
[0019]策略配置單元對移動終端內存儲的數(shù)據(jù)文件做出存儲加密的配置選擇和管理;
[0020]透明加密單元使用軟件安全元器件密鑰對策略配置單元配置的數(shù)據(jù)文件進行透明加密。
[0021]需要注意的是,并不是所有在移動終端內存儲的數(shù)據(jù)文件都需要進行加密,策略配置單元可以通過數(shù)據(jù)文件的種類或其他特征來判斷是非對該數(shù)據(jù)文件進行加密。透明加密單元則將策略配置單元選擇的加密的文件進行加密。透明加密模塊能夠使存儲于移動終端和/或連接于移動終端的存儲介質中的數(shù)據(jù)文件都受到有效的保護,避免第三方進行靜態(tài)文件分析。
[0022]進一步地,所述白盒算法模塊包括算法邏輯單元和密鑰管理單元;
[0023]算法邏輯單元具有具體算法過程;
[0024]密鑰管理單元可以調用算法邏輯單元中的算法管理和存儲軟件安全元器件密鑰。
[0025]其中,上述算法可以是但不限于AES加密算法、HMAC-SHA安全散列算法、SM3密碼雜湊算法、SM4分組密碼算法。白盒算法模塊可以有效隱藏安全軟件元器件中的密鑰,確保其存儲、運行時密鑰不可直接被獲取。通過白盒算法技術,軟件安全元器件將密碼運算邏輯與密鑰進行預處理,處理后的算法數(shù)據(jù)還被分片存儲,使處理后的算法邏輯與密鑰實現(xiàn)了有效隱藏,最終使第三方在算法運行時無法對算法邏輯和密鑰進行分析。
[0026]進一步地,所述軟件安全元器件保護模塊包括數(shù)據(jù)變化單元、分支保護單元、差異化單元和控制流變換單元;
[0027]所述數(shù)據(jù)變化單元能將移動終端代碼中的常量數(shù)值和常量字符串定義轉化為用函數(shù)生產對應數(shù)值和字符;
[0028]所述分支保護單元能增加移動終端代碼中的無用程序分支;
[0029]所述控制流變換單元能將移動終端代碼中的控制變量值轉換為函數(shù)變換;
[0030]所述差異化處理單元能隨機增加移動終端代碼中的無用變量、空指令函數(shù)。
[0031]上述軟件安全元器件保護模塊從代碼這一基礎層面上完善軟件安全元器件的安全保護能力,能有效避免第三方對軟件安全元器件的核心代碼的篡改從而避免了軟件安全元器件的運行異常。另外,軟件安全元器件保護模塊還可以使軟件安全元器件的代碼邏輯被第三方分析,從而可以有效使軟件安全元器件避免被破解。
[0032]進一步地,所述虛擬化管理模塊包括內存虛擬單元和指令虛擬單元;
[0033]內存虛擬單元能夠虛擬出部分獨立的移動終端物理內存,使其用于安全元器件的運行;
[0034]指令虛擬單元可以虛擬出部分系統(tǒng)指令,用于直接從軟件底層獲取移動終端的信息。
[0035]內存虛擬單元由于能夠提供安全元器件運行的獨立內存,可以使軟件安全元器件有效避免受到內存攻擊。指令虛擬單元由于可以使軟件安全元器件從軟件底層獲取移動終端的信息,從而可以使軟件安全元器件有效避免第三方替換移動終端操作系統(tǒng)指令的接口。上述虛擬化管理模塊還可以采用內存加擾技術,將內存中數(shù)據(jù)和/或方法名稱采用相對地址方式進行跳轉,隱藏方法入口和方法名。上述虛擬化管理模塊還可以采用反調試技術,對調試進程進行監(jiān)控,當有非法進程時禁止軟件安全元器件的核心功能運行;同時進行進程時間軸監(jiān)控,防止進程運行中第三方對軟件安全元器件造成暫停。
[0036]本發(fā)明的另一個目的是一種用于移動終端軟件安全元器件系統(tǒng)的密鑰系統(tǒng),其特征在于,包括:
[0037]主密鑰,MasterKey,是軟件安全元器件預置的密鑰,用于軟件安全元器件個人化以生成下述工作密鑰和存儲密鑰,可以被白盒算法加密后存儲于軟件安全元器件中;
[0038]工作密鑰,WorkKey,其通過安全SDK軟件安全元器件和軟件安全元器件管理平臺三方密鑰交換時生成,用于軟件安全元器件對其調用方合法性的認證;
[0039]會話密鑰,CommKey,其由軟件安全元器件管理平臺生成,安全SDK發(fā)布時其在安全SDK內預置,用于保證軟件安全元器件、安全SDK和軟件安全元器件管理平臺之間的安全通?目;
[OO4O]存儲密鑰,StoreKey,其由軟件安全元器件生成并與移動終端唯一綁定,用于移動終端內存儲數(shù)據(jù)文件的加密。
[0041 ] 上述密鑰系統(tǒng)與移動終端運行環(huán)境綁定,密鑰系統(tǒng)中部分密鑰由各個終端運行時動態(tài)生成,使密鑰本身不易被第三方破解,從而提高移動終端的安全性能。
[0042]進一步地,所述軟件安全元器件個人化包括下述步驟:
[0043](a)軟件安全元器件判斷自身是否初始化,若未進行初始化,進入下述步驟(C),若已經初始化,則進入下述步驟(b);
[0044](b)已初始化的軟件安全元器件根據(jù)已存儲的終端信息判斷是否存在終端環(huán)境變化,若得到終端環(huán)境已變化的結果,進入下述步驟(C),若得到終端環(huán)境未變化,則結束個人化;
[0045](c)軟件安全元器件獲取終端信息,實現(xiàn)軟件安全元器件與終端的綁定;
[0046](d)軟件安全元器件恢復預置主密鑰,根據(jù)終端信息產生隨機規(guī)則;
[0047](e)軟件安全元器件根據(jù)主密鑰和隨機規(guī)則,并與軟件安全元器件管理平臺進行通信交換因子后,分散產生工作密鑰;
[0048](f)根據(jù)主密鑰與隨機規(guī)則,分散產生存儲密鑰;
[0049](g)對上述步驟所產生的工作密鑰和/或存儲密鑰進行加擾,分片和加密保護,結束個人化。
[0050]進一步地,所述步驟(e)具體包括下述子步驟:
[0051 ] (I)移動終端的應用調用安全SDK,同時向安全SDK傳入應用ID;
[0052 ] (2)安全SDK向軟件安全元器件發(fā)起調用請求;
[0053](3)軟件安全元器件針對該調用請求向安全SDK返回隨機參數(shù)I;
[0054](4)安全SDK根據(jù)隨機參數(shù)I和預置的會話密鑰,使用加密算法計算生成參數(shù)2;
[0055](5)安全SDK將參數(shù)2傳輸至軟件安全元器件;
[0056](6)軟件安全元器件對自身是否進行個人化以及所在終端的狀態(tài)是否變化做出判斷,若軟件安全元器件已經個人化并且其所在終端環(huán)境未變化,進入下述步驟(14),否則進入下述步驟(7);
[0057](7)軟件安全元器件根據(jù)主密鑰、參數(shù)2、隨機參數(shù)I,應用ID,軟件安全元器件ID和時間戳,使用加密算法計算生成參數(shù)I;
[0058](8)軟件安全元器件將上述參數(shù)1、參數(shù)2、隨機參數(shù)1、應用ID、軟件安全元器件和時間戳發(fā)送至軟件安全元器件管理平臺;
[0059](9)軟件安全元器件管理平臺校驗參數(shù)I和參數(shù)2,加密會話密鑰,生成隨機參數(shù)2,并根據(jù)主密鑰、加密后會話密鑰、和隨機參數(shù)2使用加密算法生成參數(shù)3;
[0060](10)軟件安全元器件管理平臺根據(jù)隨機參數(shù)1、隨機參數(shù)2和主密鑰生成工作密鑰;
[0061](11)軟件安全元器件管理平臺向軟件安全元器件返回加密后的會話密鑰、隨機參數(shù)2、參數(shù)3;
[0062 ] (12)軟件安全元器件驗證參數(shù)3,解密并保存會話密鑰;
[0063](13)軟件安全元器件根據(jù)隨機參數(shù)1、隨機參數(shù)2和主密鑰計算生成工作密鑰;
[0064](14)軟件安全元器件驗證參數(shù)2,當驗證成功后安全SDK才能調用軟件安全元器件,否則軟件安全元器件將向安全SDK返回錯誤。
[0065]上述個人化方法及工作密鑰的產生方法一即步驟(e),可以有效驗證安全SDK、軟件安全元器件和軟件安全元器件管理平臺三者身份,并及時發(fā)現(xiàn)任何一方的異常。
[0066]本發(fā)明的另一個目的是提供一種移動終端,其特征在于,包括權利要求1-3任一項所述的安全SDK和軟件安全元器件。
[0067]所述移動終端包括智能電話;移動電話;個人數(shù)字助理;移動計算設備,例如,上網本和平板計算機;膝上計算機。這種移動終端具有更高的安全性能,可以有效避免第三方的非法訪問及破壞。
[0068]本發(fā)明提供的終端軟件安全元器件系統(tǒng)及用于軟件安全元器件的密鑰系統(tǒng)可有效防止第三方針對移動終端內核心文件、核心邏輯、核心數(shù)據(jù)的靜態(tài)、動態(tài)分析和破解,保證終端內業(yè)務邏輯或密碼運算的安全性,為終端提供一個完整的安全運行環(huán)境。由于本發(fā)明完全采用軟件實現(xiàn),提高了適用范圍,具有普通開源操作系統(tǒng)的移動終端即可運行,可成為移動終端上一種普適性解決方案。
【附圖說明】
[0069]圖1是根據(jù)本發(fā)明公開的移動終端軟件安全元器件系統(tǒng)的一個實施例的系統(tǒng)主要構成圖。
[0070]圖2是根據(jù)本發(fā)明公開的移動終端軟件安全元器件系統(tǒng)的一個較佳實施例的主要構成圖。
[0071]圖3是圖2所示實施例中的軟件安全元器件的主要構成圖。
[0072]圖4是根據(jù)本發(fā)明公開的密鑰系統(tǒng)的一個實施例中個人化的流程示意圖。
[0073]圖5是圖4所示個人化中步驟(e)的具體流程示意圖。
【具體實施方式】
[0074]下面詳細描述本發(fā)明的實施例,所述實施例的示例在附圖中示出。所述參考附圖描述的實施例是示例性的,僅用于解釋本發(fā)明,而不能視為對本發(fā)明的限制。為了避免不必要地模糊所述實施例,本部分對一些本領域的公知技術,即對于本領域技術人員而言是顯而易見的技術,未進行詳細描述。
[0075]圖1是根據(jù)本發(fā)明公開的移動終端軟件安全元器件系統(tǒng)的一個實施例的系統(tǒng)主要構成圖。
[0076]本實施方式的安全元件系統(tǒng)包括:
[0077]移動終端100,移動終端內具有安全SDK110,安全SDKllO具有用于與軟件安全元器件112進行交互的安全安全邏輯模塊111和對移動終端的文件存儲和運行進行安全保護的軟件安全元器件112;軟件安全元器件管理平臺200,能夠與軟件安全元器件112通信,并能夠存儲、管理和驗證軟件安全元器件使用的密鑰;移動終端100需要調用軟件安全元器件112時,其安全SDKl 10中的安全安全邏輯模塊111需要與軟件安全元器112件進行交互并完成指紋校驗;安全SDKl 10與軟件安全元器件管理平臺200和軟件安全元器件112在建立通訊時需要進行基于密鑰的雙向認證及工作密鑰的協(xié)商,協(xié)商成功后安全SDKllO和軟件安全元器件112之間的數(shù)據(jù)傳輸使用通信密鑰進行加密保護。
[0078]圖2是根據(jù)本發(fā)明公開的移動終端軟件安全元器件系統(tǒng)的一個較佳實施例的主要構成圖。
[0079]本實施方式的安全元件系統(tǒng)包括:
[0080]移動終端500,移動終端內具有安全SDK510,安全SDK510具有用于與軟件安全元器件512進行交互的安全安全邏輯模塊511和對移動終端的文件存儲和運行進行安全保護的軟件安全元器件512;軟件安全元器件管理平臺600,能夠與軟件安全元器件512通信,并能夠存儲、管理和驗證軟件安全元器件使用的密鑰;移動終端500需要調用軟件安全元器件512時,其安全SDK510中的安全安全邏輯模塊511需要與軟件安全元器512件進行交互并完成指紋校驗;安全SDK510與軟件安全元器件管理平臺600和軟件安全元器件512在建立通訊時需要進行基于密鑰的雙向認證及工作密鑰的協(xié)商,協(xié)商成功后安全SDK510和軟件安全元器件512之間的數(shù)據(jù)傳輸使用通信密鑰進行加密保護。
[0081]上述指紋校驗過程中,安全安全邏輯模塊511的指紋是基于SDK類信息、版本信息和指紋因子I通過安全散列算法得出的,軟件安全元器件512的指紋是基于軟件安全元器件的文件大小、文件時間、版本信息和指紋因子2通過安全散列算法得出的。
[0082 ] 安全SDK510中的安全邏輯模塊511包括接口單元5111和AC管理單元5112。
[0083]圖3是圖2所示實施例中的軟件安全元器件512的主要構成圖。
[0084]軟件安全元器件512包括:
[0085]能夠確保調用軟件安全元器件方合法性的訪問控制及管理模塊5121、能夠對移動終端內存儲的數(shù)據(jù)文件加密的存儲管理模塊5122、對軟件安全元器件密鑰進行安全算法保護和管理的白盒算法模塊5125、對軟件安全元器件代碼進行安全保護的軟件安全元器件保護模塊5123和對移動終端物理內存進行虛擬化使安全元器件具有反調試功能的虛擬化管理模塊5124。
[0086]其中,訪問控制及管理模塊包括接口單元51211、AC管理單元51212和完整性校驗單元51212;所述完整性校驗單元51213包括能夠校驗安全安全邏輯模塊指紋與軟件安全元器件指紋是否一致的校驗算法次單元51214和管理及存儲指紋信息的指紋管理次單元51215ο
[0087]存儲管理模塊5122包括策略配置單元51221和透明加密單元51222;策略配置單元51221對移動終端內存儲的數(shù)據(jù)文件做出存儲加密的配置選擇和管理;透明加密單元51222使用軟件安全元器件密鑰對策略配置單元配置的數(shù)據(jù)文件進行透明加密。
[0088]軟件安全元器件保護模塊5123包括能將移動終端代碼中的常量數(shù)值和常量字符串定義轉化為用函數(shù)生產對應數(shù)值和字符的數(shù)據(jù)變化單元51231,能增加移動終端代碼中的無用程序分支的分支保護單元51232,能將移動終端代碼中的控制變量值轉換為函數(shù)變換的差異化單元51233和能隨機增加移動終端代碼中的無用變量、空指令函數(shù)的控制流變換單元51234。
[0089]虛擬化管理模塊5124包括內存虛擬單元51241和指令虛擬單元51242;內存虛擬單元51241能夠虛擬出部分獨立的移動終端物理內存,使其用于安全元器件的運行;指令虛擬單元51242可以虛擬出部分系統(tǒng)指令,用于直接從軟件底層獲取移動終端的信息。
[0090]白盒算法模塊5125包括算法邏輯單元51251和密鑰管理單元51252;算法邏輯單元51251具有AES具體算法過程;密鑰管理單元51252可以調用算法邏輯單元51251中的AES加密算法管理和存儲軟件安全元器件密鑰,即在存儲密鑰時使用AES加密算法進行打亂順序存放,調用密鑰時按照AES加密算法進行組合。
[0091]圖4是根據(jù)本發(fā)明公開的密鑰系統(tǒng)的一個實施例中個人化的流程示意圖。
[0092]個人化包括下述步驟:
[0093](a)軟件安全元器件判斷自身是否初始化,若未進行初始化,進入下述步驟(C),若已經初始化,則進入下述步驟(b);
[0094](b)已初始化的軟件安全元器件根據(jù)已存儲的終端信息判斷是否存在終端環(huán)境變化,若得到終端環(huán)境已變化的結果,進入下述步驟(C),若得到終端環(huán)境未變化,則結束個人化;
[0095](c)軟件安全元器件獲取終端信息,實現(xiàn)軟件安全元器件與終端的綁定;
[0096](d)軟件安全元器件恢復預置主密鑰,根據(jù)終端信息產生隨機規(guī)則;
[0097](e)軟件安全元器件根據(jù)主密鑰和隨機規(guī)則,并與軟件安全元器件管理平臺進行通信交換因子后,分散產生工作密鑰;
[0098](f)根據(jù)主密鑰與隨機規(guī)則,分散產生存儲密鑰;
[0099](g)對上述步驟所產生的工作密鑰和/或存儲密鑰進行加擾,分片和加密保護,結束個人化。
[0100]圖5是圖4所示個人化中步驟(e)的具體流程示意圖,具體包括下述子步驟:
[0101](I)移動終端的應用調用安全SDK,同時向安全SDK傳入應用ID;
[0102](2)安全SDK向軟件安全元器件發(fā)起調用請求;
[0103](3)軟件安全元器件針對該調用請求向安全SDK返回隨機參數(shù)I;
[0104](4)安全SDK根據(jù)隨機參數(shù)I和預置的會話密鑰,使用加密算法計算生成參數(shù)2;
[0105](5)安全SDK將參數(shù)2傳輸至軟件安全元器件;
[0106](6)軟件安全元器件對自身是否進行個人化以及所在終端的狀態(tài)是否變化做出判斷,若軟件安全元器件已經個人化并且其所在終端環(huán)境未變化,進入下述步驟(14),否則進入下述步驟(7);
[0107](7)軟件安全元器件根據(jù)主密鑰、參數(shù)2、隨機參數(shù)I,應用ID,軟件安全元器件ID和時間戳,使用加密算法計算生成參數(shù)I;
[0108](8)軟件安全元器件將上述參數(shù)1、參數(shù)2、隨機參數(shù)1、應用ID、軟件安全元器件和時間戳發(fā)送至軟件安全元器件管理平臺;
[0109](9)軟件安全元器件管理平臺校驗參數(shù)I和參數(shù)2,加密會話密鑰,生成隨機參數(shù)2,并根據(jù)主密鑰、加密后會話密鑰、和隨機參數(shù)2使用加密算法生成參數(shù)3;
[0110](10)軟件安全元器件管理平臺根據(jù)隨機參數(shù)1、隨機參數(shù)2和主密鑰生成工作密鑰;
[0111](11)軟件安全元器件管理平臺向軟件安全元器件返回加密后的會話密鑰、隨機參數(shù)2、參數(shù)3;
[0112](12)軟件安全元器件驗證參數(shù)3,解密并保存會話密鑰;
[0113](13)軟件安全元器件根據(jù)隨機參數(shù)1、隨機參數(shù)2和主密鑰計算生成工作密鑰;
[0114](14)軟件安全元器件驗證參數(shù)2,當驗證成功后安全SDK才能調用軟件安全元器件,否則軟件安全元器件將向安全SDK返回錯誤。
[0115]圖中SSEID為軟件安全元器件ID、APPID為應用ID、Timestamp為時間戳、Randoml為隨機參數(shù)l、Random2為隨機參數(shù)2、?々1^1為參數(shù)1、?41^2為參數(shù)2、?41^3為參數(shù)3,(:01111111^7為會話密鑰、WorkKey 為工作密鑰、MasterKey 為主密鑰,PARA2 = HMAC-SHA256 (CommKey,Randoml)表示的是采用哈希算法產生參數(shù)2的方程,PARAl =HMAC-SHA256 (MasterKey,PARA2,Randoml,AppID,SSEID,Timestamp)表示的是采用哈希算法產生參數(shù)l的方程,PARA3= HMAC_SHA256(MasterKey,加密CommKey,Random2)表示的是采用哈希算法產生參數(shù)3的方程。
[0116]上述校驗參數(shù)1、參數(shù)2或參數(shù)3的具體方法是當驗證方從被驗證方處獲取這個參數(shù)以及產生這個參數(shù)所需部分或全部的因素,使用這些因素根據(jù)同樣的算法計算后將計算結果和原參數(shù)進行比較,結果相同則認為驗證通過。例如,軟件安全元器件在驗證安全SDK時,需要獲得參數(shù)2以及產生參數(shù)2所需的會話密鑰和隨機參數(shù)I,軟件安全元器件使用會話密鑰和隨機參數(shù)I根據(jù)PARA2 = HMAC-SHA256(CommKey,Randoml)產生參數(shù)2 ’,軟件安全元器件比較參數(shù)2與參數(shù)2’,參數(shù)2與參數(shù)參數(shù)2’相同時,安全SDK才能夠成功調用軟件安全元器件。
[0117]這個流程可以理解為安全SDK、軟件安全元器件和軟件安全元器件管理平臺三方密鑰協(xié)商的一個較佳的實施方式。
【主權項】
1.一種移動終端軟件安全元器件系統(tǒng),其特征在于,包括: 移動終端,移動終端內具有安全SDK,所述安全SDK具有用于與軟件安全元器件進行交互的安全安全邏輯模塊和對移動終端的文件存儲和運行進行安全保護的軟件安全元器件; 軟件安全元器件管理平臺,能夠與軟件安全元器件通信,并能夠存儲、管理和驗證軟件安全元器件使用的密鑰; 所述移動終端需要調用軟件安全元器件時,其安全SDK中的安全邏輯模塊需要與軟件安全元器件進行交互并完成指紋校驗; 所述安全SDK與軟件安全元器件管理平臺和軟件安全元器件在建立通訊時需要進行基于密鑰的雙向認證及工作密鑰的協(xié)商,協(xié)商成功后安全SDK和軟件安全元器件之間的數(shù)據(jù)傳輸使用通信密鑰進行加密保護。2.根據(jù)權利要求1所述的系統(tǒng),其特征在于:所述指紋校驗過程中,安全安全邏輯模塊的指紋是基于SDK類信息、版本信息和指紋因子I通過安全散列算法得出的,軟件安全元器件的指紋是基于軟件安全元器件的文件大小、文件時間、版本信息和指紋因子2通過安全散列算法得出的。3.根據(jù)權利要求1或2所述的系統(tǒng),其特征在于:所述軟件安全元器件包括能夠確保調用軟件安全元器件方合法性的訪問控制及管理模塊、能夠對移動終端內存儲的數(shù)據(jù)文件加密的存儲管理模塊、對軟件安全元器件密鑰進行安全算法保護和管理的白盒算法模塊、對軟件安全元器件代碼進行安全保護的軟件安全元器件保護模塊和對移動終端物理內存進行虛擬化使安全元器件具有反調試功能的虛擬化管理模塊; 其中,所述存儲管理模塊、軟件安全元器件保護模塊和白盒算法模塊協(xié)同合作能夠使移動終端內存儲的數(shù)據(jù)文件進行安全保護; 所述虛擬化管理模塊和白盒算法模塊協(xié)同合作能夠使移動終端內存得到保護。4.根據(jù)權利要求3所述的系統(tǒng),其特征在于:所述安全SDK中的安全邏輯模塊包括接口單元和AC管理單元,所述軟件安全元器件的訪問控制及管理模塊包括接口單元、AC管理單元和完整性校驗單元; 其中,所述完整性校驗單元包括能夠校驗安全安全邏輯模塊指紋與軟件安全元器件指紋是否一致的校驗算法次單元和管理及存儲指紋信息的指紋管理次單元; 安全邏輯模塊中的接口單元與軟件安全元器件的接口單元功能對應,安全邏輯模塊的AC管理單元與軟件安全元器件的AC管理單元功能對應,他們與完整性校驗單元配合實現(xiàn)安全SDK對軟件安全元器件的交互、指紋驗證以及后續(xù)可能的調用。5.根據(jù)權利要求3或4所述的系統(tǒng),其特征在于:所述存儲管理模塊包括策略配置單元和透明加密單元; 策略配置單元對移動終端內存儲的數(shù)據(jù)文件做出存儲加密的配置; 透明加密單元使用軟件安全元器件密鑰對策略配置單元配置的數(shù)據(jù)文件進行透明加LU O6.根據(jù)權利要求3-5中任一項所述的系統(tǒng),其特征在于:所述白盒算法模塊包括算法邏輯單元和密鑰管理單元; 算法邏輯單元具有具體算法過程; 密鑰管理單元可以調用算法邏輯單元中的算法管理和存儲軟件安全元器件密鑰。7.根據(jù)權利要求3-6中任一項所述的系統(tǒng),其特征在于:所述軟件安全元器件保護模塊包括數(shù)據(jù)變化單元、分支保護單元、差異化單元和控制流變換單元; 所述數(shù)據(jù)變化單元能將移動終端代碼中的常量數(shù)值和常量字符串定義轉化為用函數(shù)生產對應數(shù)值和字符; 所述分支保護單元能增加移動終端代碼中的無用程序分支; 所述控制流變換單元能將移動終端代碼中的控制變量值轉換為函數(shù)變換; 所述差異化處理單元能隨機增加移動終端代碼中的無用變量、空指令函數(shù)。8.根據(jù)權利要求3-7中任一項所述的系統(tǒng),其特征在于:所述虛擬化管理模塊包括內存虛擬單元和指令虛擬單元; 內存虛擬單元能夠虛擬出部分獨立的移動終端物理內存,使其用于安全元器件的運行; 指令虛擬單元可以虛擬出部分系統(tǒng)指令,用于直接從軟件底層獲取移動終端的信息。9.一種用于權利要求1-8任一項中所述的移動終端軟件安全元器件系統(tǒng)的密鑰系統(tǒng),其特征在于,包括: 主密鑰,MasterKey,是軟件安全元器件預置的密鑰,用于軟件安全元器件個人化以生成下述工作密鑰和存儲密鑰,可以被白盒算法加密后存儲于軟件安全元器件中; 工作密鑰,WorkKey,其通過安全SDK軟件安全元器件和軟件安全元器件管理平臺三方密鑰交換時生成,用于軟件安全元器件對其調用方合法性的認證; 會話密鑰,CommKey,其由軟件安全元器件管理平臺生成,安全SDK發(fā)布時其在安全SDK內預置,用于保證軟件安全元器件、安全SDK和軟件安全元器件管理平臺之間的安全通信;存儲密鑰,StoreKey,其由軟件安全元器件生成并與移動終端唯一綁定,用于移動終端內存儲數(shù)據(jù)文件的加密。10.根據(jù)權利要求9所述的系統(tǒng),其特征在于:所述軟件安全元器件個人化包括下述步驟: (a)軟件安全元器件判斷自身是否初始化,若未進行初始化,進入下述步驟(c),若已經初始化,則進入下述步驟(b); (b)已初始化的軟件安全元器件根據(jù)已存儲的終端信息判斷是否存在終端環(huán)境變化,若得到終端環(huán)境已變化的結果,進入下述步驟(C),若得到終端環(huán)境未變化,則結束個人化; (C)軟件安全元器件獲取終端信息,實現(xiàn)軟件安全元器件與終端的綁定; (d)軟件安全元器件恢復預置主密鑰,根據(jù)終端信息產生隨機規(guī)則; (e)軟件安全元器件根據(jù)主密鑰和隨機規(guī)則,并與軟件安全元器件管理平臺進行通信交換因子后,分散產生工作密鑰; (f)根據(jù)主密鑰與隨機規(guī)則,分散產生存儲密鑰; (g)對上述步驟所產生的工作密鑰和/或存儲密鑰進行加擾,分片和加密保護,結束個人化。11.根據(jù)權利要10所述的系統(tǒng),其特征在于,所述步驟(e)具體包括下述子步驟: (1)移動終端的應用調用安全SDK,同時向安全SDK傳入應用ID; (2)安全SDK向軟件安全元器件發(fā)起調用請求; (3)軟件安全元器件針對該調用請求向安全SDK返回隨機參數(shù)I; (4)安全SDK根據(jù)隨機參數(shù)I和預置的會話密鑰,使用加密算法計算生成參數(shù)2; (5)安全SDK將參數(shù)2傳輸至軟件安全元器件; (6)軟件安全元器件對自身是否進行個人化以及所在終端的狀態(tài)是否變化做出判斷,若軟件安全元器件已經個人化并且其所在終端環(huán)境未變化,進入下述步驟(14),否則進入下述步驟(7); (7)軟件安全元器件根據(jù)主密鑰、參數(shù)2、隨機參數(shù)I,應用ID,軟件安全元器件ID和時間戳,使用加密算法計算生成參數(shù)I; (8)軟件安全元器件將上述參數(shù)1、參數(shù)2、隨機參數(shù)1、應用ID、軟件安全元器件和時間戳發(fā)送至軟件安全元器件管理平臺; (9)軟件安全元器件管理平臺校驗參數(shù)I和參數(shù)2,加密會話密鑰,生成隨機參數(shù)2,并根據(jù)主密鑰、加密后會話密鑰、和隨機參數(shù)2使用加密算法生成參數(shù)3; (10)軟件安全元器件管理平臺根據(jù)隨機參數(shù)1、隨機參數(shù)2和主密鑰生成工作密鑰; (11)軟件安全元器件管理平臺向軟件安全元器件返回加密后的會話密鑰、隨機參數(shù)2、參數(shù)3; (12)軟件安全元器件驗證參數(shù)3,解密并保存會話密鑰; (13)軟件安全元器件根據(jù)隨機參數(shù)1、隨機參數(shù)2和主密鑰計算生成工作密鑰; (14)軟件安全元器件驗證參數(shù)2,當驗證成功后安全SDK才能調用軟件安全元器件,否則軟件安全元器件將向安全SDK返回錯誤。12.一種移動終端,其特征在于,包括權利要求1-8任一項所述的安全SDK和軟件安全元器件。
【文檔編號】G06F21/57GK106055931SQ201610331316
【公開日】2016年10月26日
【申請日】2016年5月18日
【發(fā)明人】蔡準, 郭曉鵬, 孫悅, 王在方, 趙軍, 杜旭
【申請人】北京芯盾時代科技有限公司