亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

不依賴于本地密鑰的對移動應用程序的認證方法

文檔序號:9600656閱讀:397來源:國知局
不依賴于本地密鑰的對移動應用程序的認證方法
【技術領域】
[0001]本發(fā)明屬于移動應用領域,具體涉及一種不依賴于本地密鑰的對移動應用程序的認證方法。
【背景技術】
[0002]日常生活中,用戶經常使用移動終端上安裝的移動應用程序來完成某種行為或達到某種效果,例如使用移動支付程序來執(zhí)行支付,即所謂的移動支付。對這類使用安全性需要得到保障的移動應用程序來說,云端服務平臺對移動應用程序的認證是比較重要和比較基礎的一個方面。
[0003]對移動應用程序進行認證,主要是為了防止移動終端上的移動應用程序的源代碼被惡意篡改,或者是為了防止非合法的、冒牌的程序作為合法的移動應用程序來使用。
[0004]現(xiàn)有的對移動應用程序進行認證的方法,通常是基于對移動應用程序的全部程序文件執(zhí)行哈希運算來認證的(簡稱為“基于全文件哈希認證”)。該方法使用了移動應用程序的全部程序文件,存在哈希運算的執(zhí)行時間過長的問題。另外,在執(zhí)行基于全文件哈希認證時,惡意攻擊者可以不去讀取正在運行的代碼,而是繞道去讀取未經篡改的程序文件的原始代碼,這種繞道讀取做法,使得基于全文件哈希認證的方法存在程序文件被惡意篡改的可能。
[0005]在云端服務平臺對移動應用程序進行認證時,通常會用到密鑰?,F(xiàn)有的,認證密鑰通常以靜態(tài)數(shù)據(jù)的形式來存儲,無論存儲的密鑰數(shù)據(jù)是完整的還是碎片式的,即使對其進行加密,也很容易使密鑰被跟蹤及替換。特別是在移動支付領域,使用安全元件(SE)存儲密鑰的安全性問題是有關移動應用程序安全的核心問題,雖然使用依賴硬件支持的安全元件來存儲密鑰具有高度的安全性,但是金融機構、設備制造商和運營商之間對安全元件控制權的爭奪,使得整個市場嚴重條塊化,推廣難度很大。例如,蘋果支付(Apple Pay)使用的安全元件,是一種硬件上的改進,無法使用于市場中擁有較早硬件版本的存量10S手機中。即使是基于硬件SE的安全方案,也不是完全安全的,業(yè)界已有旁路攻擊、暴力破解的實例,安全是相對于破解所必須付出的代價而言的。
[0006]基于軟件的安全方案,如HCE方案,提供了一種新的安全框架,但是其是在云端服務器還是在本地應用程序中實現(xiàn)SE功能,想象空間太大,且缺乏具體的實現(xiàn)方式描述。同樣,HCE方案依然無法涵蓋存量10S手機,且HCE方案對移動應用程序的認證機制,依然是整個方案中的一個弱點。目前已經公布的由銀行主導的HCE方案,只解決了數(shù)據(jù)管道的通信安全問題,尚未解決APP本身的認證問題。
[0007]使用軟件存儲密鑰目前尚未能達到EAL4+以上的風控等級。軟件加固產品的技術本身在高速發(fā)展,隨著早期的DEX文件加密方式的成熟,加殼的強度也會越來越高,但脫殼技術的進展毫不遜色。加固產品廠商梆梆、愛加密、百度、通付盾的產品均有公開記載的破解記錄。

【發(fā)明內容】

[0008]本發(fā)明要解決的技術問題是提供一種不依賴于本地密鑰的對移動應用程序的認證方法,該認證方法對移動應用程序的程序文件進行抽樣,將抽樣的內容依照特定的指令模版生成合法的CPU指令,從而合成移動應用程序的認證密鑰生成子程序,最后采用執(zhí)行該認證密鑰子程序并對執(zhí)行結果進行哈希運算的方式,完成云端服務平臺對移動應用程序的認證。該方法不需要在移動終端存儲移動應用程序的認證密鑰,而采用動態(tài)運行程序的方式在移動應用程序端產生和云端服務平臺一致的認證密鑰,從而避免了移動應用程序采用安全元件(Secure Element, SE)硬件存儲認證密鑰的的兼容一致性問題,且避免了由軟件存儲認證密鑰的易受攻擊問題。
[0009]為解決上述技術問題,本發(fā)明采用如下的技術方案:
[0010]—種不依賴于本地密鑰的對移動應用程序的認證方法,用于云端服務平臺對設置在移動終端上的移動應用程序進行認證,包括以下步驟:
[0011]S10,移動應用程序初次運行時,
[0012]S101,對移動應用程序的抽樣總體進行抽樣,對抽樣選取出的每個抽樣個體的地址進行編碼得到地址序列;
[0013]S102,將地址序列每個地址下的內容按照一定的指令模版生成CPU指令,在某一運行參數(shù)的進一步配置下將生成的CPU指令合成為移動應用程序的認證密鑰生成子程序,執(zhí)行該認證密鑰生成子程序并對其執(zhí)行結果進行哈希運算,生成移動應用程序的認證密鑰,對應于運行參數(shù)的多個取值的多個認證密鑰構成認證密鑰序列;
[0014]S103,對地址序列進行加密,將已加密的地址序列存儲于移動終端;
[0015]S104,將地址序列的解密密碼、運行參數(shù)序列以及認證密鑰序列發(fā)送至云端服務平臺;
[0016]S20,移動應用程序后續(xù)運行時,
[0017]S201,移動應用程序接收云端服務平臺使用初始會話密鑰發(fā)送的解密密碼和從運行參數(shù)序列中任意選取的某一取值的運行參數(shù);
[0018]S202,移動應用程序對已加密的地址序列進行解密得到地址序列;
[0019]S203,讀取地址序列各元素地址處的內容并生成相應的CPU指令,合成密鑰生成子程序并在執(zhí)行后生成認證密鑰;
[0020]S204,云端服務平臺發(fā)送隨機數(shù)至移動應用程序,經加密后得到加密結果并返回至云端服務平臺;
[0021]S205,云端服務平臺根據(jù)加密結果完成最終認證。
[0022]—優(yōu)選實施例中,S101中,所述抽樣總體包括so庫文件、dex文件、資源文件和主配文件之一或其組合的所有有效信息。
[0023]—優(yōu)選實施例中,增加屬于易受攻擊、篡改、加殼的代碼、數(shù)據(jù)和配置類型的抽樣個體占抽樣總體比例,或增加位于接近最大地址端、最小地址端的部位的抽樣個體占抽樣總體比例,或者增加位于便于識別異同的部位的抽樣個體占抽樣總體比例。
[0024]—優(yōu)選實施例中,S102中,所述指令模版為用于進行指令的配置、規(guī)范和過濾的一系列配置文件。
[0025]—優(yōu)選實施例中,所述CPU指令包括數(shù)據(jù)處理指令、內存訪問指令、跳轉指令,其中數(shù)據(jù)處理指令具有占最高的比例。
[0026]—優(yōu)選實施例中,單條CPU指令生成后被送入指令過濾器,根據(jù)動態(tài)運行時的上下文判斷該CPU指令運行時是否會產生意外,若該CPU指令運行時會產生意外,指令過濾器會按一定規(guī)則自動修改該CPU指令直至其合法為止。
[0027]—優(yōu)選實施例中,運行參數(shù)為認證密鑰生成子程序的版本號。
[0028]一優(yōu)選實施例中,運行參數(shù)為認證密鑰生成子程序的配置參數(shù)。
[0029]—優(yōu)選實施例中,所述配置參數(shù)為循環(huán)配置參數(shù)、分支配置參數(shù)或遞歸配置參數(shù)、指令模版版本參數(shù),不同的運行參數(shù)的取值對應于不同的認證密鑰生成子程序;對應不同運行參數(shù)的認證密鑰生成子程序運行后生成的認證密鑰不同。
[0030]—優(yōu)選實施例中,S102中,執(zhí)行該認證密鑰生成子程序并對其執(zhí)行結果進行哈希運算,生成移動應用程序的認證密鑰具體為,執(zhí)行認證密鑰生成子程序后,對CPU中所有可讀寄存器的值進行哈希運算,或對CPU中所有可讀寄存器的值和部分內存中的值進行哈希運算,從而生成認證密鑰。
[0031]—優(yōu)選實施例中,S201中,初始會話密鑰來自安全套接層或由云服務平臺對移動應用程序進行的其他的便捷認證方法生成。
[0032]—優(yōu)選實施例中,在由多條CPU指令合成認證密鑰生成子程序時,可按一定的規(guī)律將由部分CPU指令形成的指令塊做分支、做循環(huán)、或做遞歸。
[0033]—優(yōu)選實施例中,移動應用程序在初次運行時,對運行參數(shù)所有的取值進行遍歷以形成運行參數(shù)序列,從而生成認證密鑰生成子程序的集合以及認證密鑰序列,運行參數(shù)序列、認證密鑰生成子程序的集合和認證密鑰序列三者的相應元素存在一一對應關系。
[0034]—優(yōu)選實施例中,在移動應用程序每次后續(xù)運行對其進行認證時,云端服務平臺隨機地從運行參數(shù)序列中選取一個用于本次認證的運行參數(shù),移動應用程序每次后續(xù)運行時只生成一個認證密鑰生成子程序。
[0035]—優(yōu)選實施例中,運行參數(shù)的不同取值對應于不同的指令模版,在移動應用程序每次后續(xù)運行執(zhí)行認證時,云端服務平臺根據(jù)發(fā)送至移動應用程序的運行參數(shù)的取值,發(fā)送相應的指令模版至移動應用程序以生成認證密鑰生成子程序。
[0036]—優(yōu)選實施例中,
當前第1頁1 2 3 4 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1