国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種被加固軟件的認證方法及裝置與流程

      文檔序號:12365088閱讀:245來源:國知局
      一種被加固軟件的認證方法及裝置與流程

      本發(fā)明涉及互聯(lián)網(wǎng)安全技術(shù)領(lǐng)域,尤其涉及一種被加固軟件的認證方法及裝置。



      背景技術(shù):

      在安卓(Android)系統(tǒng)中,為了安全的需要,我們會對應(yīng)用軟件安裝包做相應(yīng)的加固處理,并且相應(yīng)的希望市場上流通的都是經(jīng)過加固處理的安裝包。但是現(xiàn)有的安卓軟件市場種類繁多,對同一軟件安裝包的發(fā)布也會有很多自定義的版本。

      對安卓系統(tǒng)的服務(wù)而言,當(dāng)作為應(yīng)用的服務(wù)運行時,會啟動一個新的進程或者利用應(yīng)用現(xiàn)有進程,創(chuàng)建一個服務(wù)對象。當(dāng)其他應(yīng)用調(diào)用到此服務(wù)時由此服務(wù)對象的代碼完成具體的業(yè)務(wù)邏輯。

      然而按照現(xiàn)有安卓系統(tǒng)的服務(wù)提供方式,服務(wù)提供應(yīng)用無法對提供的數(shù)據(jù)進行存取保護。即使服務(wù)請求應(yīng)用在存取數(shù)據(jù)時進行安全提示,但對用戶而言,也不能有效分清服務(wù)請求的來源,在惡意應(yīng)用請求提供服務(wù)時,無法進行有效的保護。為避免未經(jīng)保護的安裝包在市面上的安裝傳播,需要對應(yīng)用軟件進行認證。



      技術(shù)實現(xiàn)要素:

      為了克服上述問題,本發(fā)明提供了一種被加固軟件的認證方法及裝置,既能夠有效分清服務(wù)請求的來源,又能夠在惡意應(yīng)用請求提供服務(wù)時,進行有效的保護,大大提高了對被加固軟件的保護強度,有效地防止攻擊者的攻擊,保證被加固軟件可以正常運行。

      為了解決上述技術(shù)問題,本發(fā)明采用如下技術(shù)方案:

      依據(jù)本發(fā)明的一個方面,提供了一種被加固軟件的認證方法,應(yīng)用于一移 動終端,所述認證方法包括:

      在服務(wù)器對被加固軟件的殼程序驗證通過之后,獲取所述服務(wù)器發(fā)送的關(guān)鍵數(shù)據(jù),所述關(guān)鍵數(shù)據(jù)包括:所述被加固軟件的明文軟件代碼中被隱藏的數(shù)據(jù)和所述被隱藏數(shù)據(jù)對應(yīng)的入口地址;

      根據(jù)所述被隱藏的數(shù)據(jù)和所述入口地址,替換內(nèi)存中存儲的所述被加固軟件的明文軟件代碼所隱藏的對應(yīng)數(shù)據(jù),然后加載所述明文軟件代碼。

      可選地,在服務(wù)器對被加固軟件的殼程序驗證通過之前,所述認證方法還包括:

      計算得到被加固軟件的殼程序的完整性校驗值,并對所述殼程序的完整性校驗值進行處理,將處理后的處理結(jié)果發(fā)送給所述服務(wù)器,由所述服務(wù)器對所述處理結(jié)果進行驗證,若驗證結(jié)果為驗證通過,則由所述服務(wù)器對關(guān)鍵數(shù)據(jù)加密處理生成加密數(shù)據(jù)。

      可選地,所述計算得到被加固軟件的殼程序的完整性校驗值,并對所述殼程序的完整性校驗值進行處理,將處理后的處理結(jié)果發(fā)送給所述服務(wù)器,由所述服務(wù)器對所述處理結(jié)果進行驗證,若驗證結(jié)果為驗證通過,則由所述服務(wù)器對關(guān)鍵數(shù)據(jù)加密處理生成加密數(shù)據(jù),具體包括:

      將所述被加固軟件的請求信息發(fā)送給服務(wù)器,由所述服務(wù)器根據(jù)所述被加固軟件的請求信息隨機生成第一隨機數(shù);

      根據(jù)第一算法計算得到被加固軟件的殼程序的完整性校驗值;

      獲取所述第一隨機數(shù),將所述第一隨機數(shù)與所述殼程序的完整性校驗值進行第一級聯(lián)處理,獲取第一級聯(lián)結(jié)果;

      根據(jù)第二算法對所述第一級聯(lián)結(jié)果進行計算,獲取第一計算結(jié)果;

      將所述第一計算結(jié)果與所述被加固軟件隨機生成的第二隨機數(shù)進行第二級聯(lián)處理,并將處理結(jié)果發(fā)送給所述服務(wù)器,由所述服務(wù)器對所述處理結(jié)果進行驗證,若驗證結(jié)果為驗證通過,則由所述服務(wù)器對關(guān)鍵數(shù)據(jù)加密處理生成加密數(shù)據(jù)。

      可選地,所述在服務(wù)器對被加固軟件的殼程序驗證通過之后,獲取所述服務(wù)器發(fā)送的關(guān)鍵數(shù)據(jù),具體包括:

      在服務(wù)器對被加固軟件的殼程序驗證通過之后,對所述服務(wù)器發(fā)送的加密 數(shù)據(jù)進行解密運算;

      所述解密運算完成后,獲取解密數(shù)據(jù)中包含的所述服務(wù)器發(fā)送的關(guān)鍵數(shù)據(jù)。

      可選地,所述根據(jù)所述被隱藏的數(shù)據(jù)和所述入口地址,替換內(nèi)存中存儲的所述被加固軟件的明文軟件代碼所隱藏的對應(yīng)數(shù)據(jù),然后加載所述明文軟件代碼,具體包括:

      根據(jù)所述入口地址,定位所述被加固軟件的明文軟件代碼所隱藏的對應(yīng)數(shù)據(jù)在所述被加固軟件的明文軟件代碼中的位置;

      將所述被隱藏的數(shù)據(jù)替換內(nèi)存中存儲的所述被加固軟件的明文軟件代碼所隱藏的對應(yīng)數(shù)據(jù),然后加載所述明文軟件代碼。

      依據(jù)本發(fā)明的另一方面,還提供了一種被加固軟件的認證方法,應(yīng)用于一服務(wù)器,所述認證方法包括:

      獲取被加固軟件發(fā)送的處理結(jié)果,對所述被加固軟件的殼程序的完整性校驗值進行驗證;

      若所述驗證結(jié)果為驗證通過,則對關(guān)鍵數(shù)據(jù)進行加密處理,并將加密生成的加密數(shù)據(jù)發(fā)送給所述被加固軟件,所述關(guān)鍵數(shù)據(jù)包括:所述被加固軟件的明文軟件代碼中被隱藏的數(shù)據(jù)和所述被隱藏數(shù)據(jù)對應(yīng)的入口地址。

      可選地,所述根據(jù)被加固軟件發(fā)送的處理結(jié)果,對所述被加固軟件的殼程序的完整性校驗值進行驗證,具體包括:

      獲取被加固軟件的請求信息,根據(jù)所述請求信息隨機生成第一隨機數(shù),并將所述第一隨機數(shù)發(fā)送給所述被加固軟件;

      根據(jù)所述被加固軟件的請求信息獲取所述被加固軟件的ID信息,并根據(jù)所述被加固軟件的ID信息獲取所述被加固軟件的殼程序的完整性校驗值,將所述第一隨機數(shù)與所述殼程序的完整性校驗值進行第一級聯(lián)處理,獲取第二級聯(lián)結(jié)果;

      根據(jù)第二算法對所述第二級聯(lián)結(jié)果進行計算,得到第二計算結(jié)果;

      獲取所述被加固軟件發(fā)送的處理結(jié)果,根據(jù)所述處理結(jié)果識別獲取第一計算結(jié)果和第二隨機數(shù);

      對所述第一計算結(jié)果與所述第二計算結(jié)果進行驗證,若所述第一計算結(jié)果與所述第二計算結(jié)果相同,則驗證結(jié)果為驗證通過。

      可選地,所述若所述驗證結(jié)果為驗證通過,則對關(guān)鍵數(shù)據(jù)進行加密處理,將加密生成的加密數(shù)據(jù)發(fā)送給所述被加固軟件,具體包括:

      獲取根據(jù)所述第二級聯(lián)結(jié)果識別得到的所述第二隨機數(shù);

      所述第二隨機數(shù)與關(guān)鍵數(shù)據(jù)中包括的所述被隱藏數(shù)據(jù)對應(yīng)的入口地址根據(jù)第三算法進行計算,并得到第三計算結(jié)果;

      對所述第三計算結(jié)果進行加密處理,將加密后生成的加密數(shù)據(jù)發(fā)送給所述被加固軟件。

      可選地,所述將所述第二隨機數(shù)與所述被加固軟件的明文軟件代碼中的入口地址根據(jù)第三算法進行計算,具體為:

      對所述第二隨機數(shù)與所述被加固軟件的明文軟件代碼中的入口地址進行異或的邏輯運算。

      依據(jù)本發(fā)明的另一個方面,還提供了一種被加固軟件的認證裝置,應(yīng)用于一移動終端,所述認證裝置包括:

      獲取模塊,用于在服務(wù)器對被加固軟件的殼程序驗證通過之后,獲取所述服務(wù)器發(fā)送的關(guān)鍵數(shù)據(jù),所述關(guān)鍵數(shù)據(jù)包括:所述被加固軟件的明文軟件代碼中被隱藏的數(shù)據(jù)和所述被隱藏數(shù)據(jù)對應(yīng)的入口地址;

      替換模塊,用于根據(jù)所述被隱藏的數(shù)據(jù)和所述入口地址,替換內(nèi)存中存儲的所述被加固軟件的明文軟件代碼所隱藏的對應(yīng)數(shù)據(jù),然后加載所述明文軟件代碼。

      可選地,所述認證裝置還包括:

      處理模塊,用于計算得到被加固軟件的殼程序的完整性校驗值,并對所述殼程序的完整性校驗值進行處理,將處理后的處理結(jié)果發(fā)送給所述服務(wù)器,由所述服務(wù)器對所述處理結(jié)果進行驗證,若驗證結(jié)果為驗證通過,則由所述服務(wù)器對關(guān)鍵數(shù)據(jù)加密處理生成加密數(shù)據(jù)。

      可選地,所述處理模塊具體包括:

      發(fā)送單元,用于將所述被加固軟件的請求信息發(fā)送給服務(wù)器,由所述服務(wù)器根據(jù)所述被加固軟件的請求信息隨機生成第一隨機數(shù);

      第一計算單元,用于根據(jù)第一算法計算得到被加固軟件的殼程序的完整性校驗值;

      第一級聯(lián)單元,用于獲取所述第一隨機數(shù),將所述第一隨機數(shù)與所述殼程序的完整性校驗值進行第一級聯(lián)處理,獲取第一級聯(lián)結(jié)果;

      第二計算單元,用于根據(jù)第二算法對所述第一級聯(lián)結(jié)果進行計算,獲取第一計算結(jié)果;

      第二級聯(lián)單元,用于將所述第一計算結(jié)果與所述被加固軟件隨機生成的第二隨機數(shù)進行第二級聯(lián)處理,并將處理結(jié)果發(fā)送給所述服務(wù)器,由所述服務(wù)器對所述處理結(jié)果進行驗證,若驗證結(jié)果為驗證通過,則由所述服務(wù)器對關(guān)鍵數(shù)據(jù)加密處理生成加密數(shù)據(jù)。

      可選地,所述獲取模塊具體包括:

      解密單元,用于在服務(wù)器對被加固軟件的殼程序驗證通過之后,對所述服務(wù)器發(fā)送的加密數(shù)據(jù)進行解密運算;

      第一獲取單元,用于所述解密運算完成后,獲取解密數(shù)據(jù)中包含的所述服務(wù)器發(fā)送的關(guān)鍵數(shù)據(jù)。

      可選地,所述替換模塊具體包括:

      定位單元,用于根據(jù)所述入口地址,定位所述被加固軟件的明文軟件代碼所隱藏的對應(yīng)數(shù)據(jù)在所述被加固軟件的明文軟件代碼中的位置;

      替換單元,用于將所述被隱藏的數(shù)據(jù)替換內(nèi)存中存儲的所述被加固軟件的明文軟件代碼所隱藏的對應(yīng)數(shù)據(jù),然后加載所述明文軟件代碼。

      依據(jù)本發(fā)明的另一方面,還提供了一種被加固軟件的認證裝置,應(yīng)用于一服務(wù)器,所述認證裝置包括:

      驗證模塊,用于獲取被加固軟件發(fā)送的處理結(jié)果,對所述被加固軟件的殼程序的完整性校驗值進行驗證;

      加密模塊,用于若所述驗證結(jié)果為驗證通過,則對關(guān)鍵數(shù)據(jù)進行加密處理,將加密生成的加密數(shù)據(jù)發(fā)送給所述被加固軟件,所述關(guān)鍵數(shù)據(jù)包括:所述被加固軟件的明文軟件代碼中被隱藏的數(shù)據(jù)和所述被隱藏數(shù)據(jù)對應(yīng)的入口地址。

      可選地,所述驗證模塊具體包括:

      生成單元,用于獲取被加固軟件的請求信息,根據(jù)所述請求信息隨機生成第一隨機數(shù),并將所述第一隨機數(shù)發(fā)送給所述被加固軟件;

      第三級聯(lián)單元,用于根據(jù)所述被加固軟件的請求信息獲取所述被加固軟件的ID信息,并根據(jù)所述被加固軟件的ID信息獲取所述被加固軟件的殼程序的完整性校驗值,將所述第一隨機數(shù)與所述殼程序的完整性校驗值進行第一級聯(lián)處理,獲取第二級聯(lián)結(jié)果;

      第三計算單元,用于根據(jù)第二算法對所述第二級聯(lián)結(jié)果進行計算,得到第二計算結(jié)果;

      識別單元,用于獲取所述被加固軟件發(fā)送的處理結(jié)果,根據(jù)所述處理結(jié)果識別獲取第一計算結(jié)果和第二隨機數(shù);

      驗證單元,用于對所述第一計算結(jié)果與所述第二計算結(jié)果進行驗證,若所述第一計算結(jié)果與所述第二計算結(jié)果相同,則驗證結(jié)果為驗證通過。

      可選地,所述添加模塊具體包括:

      第二獲取單元,用于獲取根據(jù)所述第二級聯(lián)結(jié)果識別得到的所述第二隨機數(shù);

      第四計算單元,用于所述第二隨機數(shù)與關(guān)鍵數(shù)據(jù)中包括的所述被隱藏數(shù)據(jù)對應(yīng)的入口地址根據(jù)第三算法進行計算,并得到第三計算結(jié)果;

      加密單元,用于對所述第三計算結(jié)果進行加密處理,將加密后生成的加密數(shù)據(jù)發(fā)送給所述被加固軟件。

      可選地,所述第四計算單元在根據(jù)所述第三算法進行計算時,具體為:

      對所述第二隨機數(shù)與所述被加固軟件的明文軟件代碼中的入口地址進行異或的邏輯運算。

      本發(fā)明的有益效果是:

      本發(fā)明中提供的被加固軟件的認證方法,在服務(wù)器對被加固軟件的殼程序驗證通過之后,可獲取服務(wù)器提供的關(guān)鍵數(shù)據(jù),并根據(jù)關(guān)鍵數(shù)據(jù)中的被加固軟件的明文軟件代碼中被隱藏的數(shù)據(jù)對應(yīng)的入口地址,能夠確定內(nèi)存中存儲的被加固軟件的明文軟件代碼所隱藏的對應(yīng)數(shù)據(jù)在明文軟件代碼中的位置,然后用關(guān)鍵數(shù)據(jù)中包括的明文軟件代碼中被隱藏的數(shù)據(jù)替換內(nèi)存中存儲的被加固軟件的明文軟件代碼所隱藏的對應(yīng)數(shù)據(jù),保證了該被加固軟件正常運行。另外,通過對被加固軟件的殼程序進行驗證,有效地防止殼程序被篡改,保證了殼程序的完整性。所以,通過本發(fā)明提供的認證方法既能夠有效分清服務(wù)請求的來 源,又能夠在惡意應(yīng)用請求提供服務(wù)時,進行有效的保護,大大提高了對被加固軟件的保護強度,有效地防止攻擊者的攻擊,保證被加固軟件可以正常運行。

      附圖說明

      圖1表示本發(fā)明實施例中被加固軟件的認證方法的流程圖之一;

      圖2表示本發(fā)明實施例中對殼程序的完整性校驗值進行處理的流程圖;

      圖3表示本發(fā)明實施例中獲取關(guān)鍵數(shù)據(jù)的流程圖;

      圖4表示本發(fā)明實施例中替換明文軟件代碼所隱藏的對應(yīng)數(shù)據(jù)的流程圖;

      圖5表示本發(fā)明實施例中被加固軟件的認證方法的流程圖之二;

      圖6表示本發(fā)明實施例中驗證殼程序的完整性校驗值的流程圖;

      圖7表示本發(fā)明實施例中加密關(guān)鍵數(shù)據(jù)的流程圖;

      圖8表示本發(fā)明實施例中被加固軟件的認證裝置的結(jié)構(gòu)框圖之一;

      圖9表示本發(fā)明實施例中處理模塊的結(jié)構(gòu)框圖;

      圖10表示本發(fā)明實施例中獲取模塊的結(jié)構(gòu)框圖;

      圖11表示本發(fā)明實施例中替換模塊的結(jié)構(gòu)框圖;

      圖12表示本發(fā)明實施例中被加固軟件的認證裝置的結(jié)構(gòu)框圖之二;

      圖13表示本發(fā)明實施例中驗證模塊的結(jié)構(gòu)框圖;以及

      圖14表示本發(fā)明實施例中加密模塊的結(jié)構(gòu)框圖。

      具體實施方式

      為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖及具體實施例對本發(fā)明進行詳細描述。

      實施例一

      依據(jù)本發(fā)明的一個方面,提供了一種被加固軟件的認證方法,應(yīng)用于一移動終端,如圖1所示,該認證方法100包括:

      步驟S103、在服務(wù)器對被加固軟件的殼程序驗證通過之后,獲取服務(wù)器發(fā)送的關(guān)鍵數(shù)據(jù),關(guān)鍵數(shù)據(jù)包括:被加固軟件的明文軟件代碼中被隱藏的數(shù)據(jù)和被隱藏數(shù)據(jù)對應(yīng)的入口地址;

      步驟S105、根據(jù)被隱藏的數(shù)據(jù)和入口地址,替換內(nèi)存中存儲的被加固軟 件的明文軟件代碼所隱藏的對應(yīng)數(shù)據(jù),然后加載明文軟件代碼。

      通過本發(fā)明實施例提供的被加固軟件的認證方法,可獲取服務(wù)器提供的關(guān)鍵數(shù)據(jù),并根據(jù)關(guān)鍵數(shù)據(jù)中的被加固軟件的明文軟件代碼中被隱藏的數(shù)據(jù)對應(yīng)的入口地址,能夠確定內(nèi)存中存儲的被加固軟件的明文軟件代碼所隱藏的對應(yīng)數(shù)據(jù)在明文軟件代碼中的位置,然后用關(guān)鍵數(shù)據(jù)中包括的明文軟件代碼中被隱藏的數(shù)據(jù)替換內(nèi)存中存儲的被加固軟件的明文軟件代碼所隱藏的對應(yīng)數(shù)據(jù)。因此,在本發(fā)明實施例提供的被加固軟件的認證方法中,被加固軟件需要從服務(wù)器上獲取自身隱藏的關(guān)鍵數(shù)據(jù),可以有效地對抗了攻擊者的攻擊,對該被加固軟件有很好的保護作用,而且在獲取隱藏的關(guān)鍵數(shù)據(jù)后,還可以保證該被加固軟件正常運行。

      其中,如圖1所示,在本發(fā)明實施例中,該認證方法100還包括:

      步驟S101、計算得到被加固軟件的殼程序的完整性校驗值,并對殼程序的完整性校驗值進行處理,將處理后的處理結(jié)果發(fā)送給服務(wù)器,由服務(wù)器對處理結(jié)果進行驗證,若驗證結(jié)果為驗證通過,則由服務(wù)器對關(guān)鍵數(shù)據(jù)加密處理生成加密數(shù)據(jù)。

      因此,在本發(fā)明實施例中,在獲取關(guān)鍵數(shù)據(jù)前,首先需要對被加固軟件的殼程序的完整性校驗值進行驗證,只有當(dāng)驗證通過后,才能獲取服務(wù)器發(fā)送的關(guān)鍵數(shù)據(jù)。另外,通過服務(wù)器對被加固軟件的殼程序的完整性校驗值進行驗證,能夠有效防止殼程序被篡改,很好地保證其完整性。而且服務(wù)器在對被加固軟件的殼程序的完整性校驗值進行驗證過程中,采用基于對稱體制的雙向挑戰(zhàn)應(yīng)答方式,即由安裝于移動終端的被加固軟件與服務(wù)器雙向配合實現(xiàn),避免了傳統(tǒng)的信道攻擊,實現(xiàn)了雙向?qū)嶓w認證,增加了對被加固軟件的殼程序的保護強度。

      具體地,如圖2所示,在本發(fā)明實施例中,計算得到被加固軟件的殼程序的完整性校驗值,并對殼程序的完整性校驗值進行處理,將處理后的處理結(jié)果發(fā)送給服務(wù)器,由服務(wù)器對處理結(jié)果進行驗證,若驗證結(jié)果為驗證通過,則由服務(wù)器對關(guān)鍵數(shù)據(jù)加密處理生成加密數(shù)據(jù)(步驟S101)具體包括:

      步驟S1011、將被加固軟件的請求信息發(fā)送給服務(wù)器,由服務(wù)器根據(jù)被加固軟件的請求信息隨機生成第一隨機數(shù);

      步驟S1013、根據(jù)第一算法計算得到被加固軟件的殼程序的完整性校驗值;

      步驟S1015、獲取第一隨機數(shù),將第一隨機數(shù)與殼程序的完整性校驗值進行第一級聯(lián)處理,獲取第一級聯(lián)結(jié)果;

      步驟S1017、根據(jù)第二算法對第一級聯(lián)結(jié)果進行計算,獲取第一計算結(jié)果;

      步驟S1019、將第一計算結(jié)果與被加固軟件隨機生成的第二隨機數(shù)進行第二級聯(lián)處理,并將處理結(jié)果發(fā)送給服務(wù)器,由服務(wù)器對處理結(jié)果進行驗證,若驗證結(jié)果為驗證通過,則由服務(wù)器對關(guān)鍵數(shù)據(jù)加密處理生成加密數(shù)據(jù)。

      其中,在本發(fā)明實施例中,在對被加固軟件的殼程序的完整性校驗值進行校驗時,首先需要對其殼程序的完整性校驗值進行處理,有效地防止了在將殼程序的完整性校驗值發(fā)送給服務(wù)器的過程中遭受到被攻擊者修改或者破壞,因此,對被加固軟件的殼程序的完整性校驗值起到了很好的保護作用。

      具體地,如圖3所示,在本發(fā)明實施例中,在服務(wù)器對被加固軟件的殼程序驗證通過之后,獲取服務(wù)器發(fā)送的關(guān)鍵數(shù)據(jù)(步驟S103),具體包括:

      步驟S1031、在服務(wù)器對被加固軟件的殼程序驗證通過之后,對服務(wù)器發(fā)送的加密數(shù)據(jù)進行解密運算;

      步驟S1033、解密運算完成后,獲取解密數(shù)據(jù)中包含的服務(wù)器發(fā)送的關(guān)鍵數(shù)據(jù)。

      通過對關(guān)鍵數(shù)據(jù)進行加密處理,能夠有效防止服務(wù)器發(fā)送關(guān)鍵數(shù)據(jù)的過程中,關(guān)鍵數(shù)據(jù)被攻擊者獲取,對關(guān)鍵數(shù)據(jù)起到了很好的保護作用。因此,被加固軟件在獲取加密數(shù)據(jù)后,需要對其進行解密以獲取服務(wù)器發(fā)送的關(guān)鍵數(shù)據(jù)。

      具體地,如圖4所示,在本發(fā)明實施例中,根據(jù)被隱藏的數(shù)據(jù)和入口地址,替換內(nèi)存中存儲的被加固軟件的明文軟件代碼所隱藏的對應(yīng)數(shù)據(jù),然后加載明文軟件代碼(步驟S105),具體包括:

      步驟S1051、根據(jù)入口地址,定位被加固軟件的明文軟件代碼所隱藏的對應(yīng)數(shù)據(jù)在被加固軟件的明文軟件代碼中的位置;

      步驟S1053、將被隱藏的數(shù)據(jù)替換內(nèi)存中存儲的被加固軟件的明文軟件代碼所隱藏的對應(yīng)數(shù)據(jù),然后加載明文軟件代碼。

      因此,在獲取服務(wù)器提供的關(guān)鍵數(shù)據(jù)后,根據(jù)關(guān)鍵數(shù)據(jù)中的被加固軟件的明文軟件代碼中被隱藏的數(shù)據(jù)對應(yīng)的入口地址,能夠確定內(nèi)存中存儲的被加固 軟件的明文軟件代碼所隱藏的對應(yīng)數(shù)據(jù)在明文軟件代碼中的位置,并用關(guān)鍵數(shù)據(jù)中包括的明文軟件代碼中被隱藏的數(shù)據(jù)替換內(nèi)存中存儲的被加固軟件的明文軟件代碼所隱藏的對應(yīng)數(shù)據(jù)。因此,本發(fā)明實施例提供的被加固軟件的認證方法不僅可以保證該被加固軟件正常運行,而且對該被加固軟件有很好的保護作用,能夠有效地對抗了攻擊者的攻擊。

      其中,在本發(fā)明實施例中,上述完整性校驗值、第一隨機數(shù)以及第二隨機數(shù)均采用十六進制表示,當(dāng)然可以理解的是,在本發(fā)明實施例中,對完整性校驗值、第一隨機數(shù)以及第二隨機數(shù)的表述方式并不進行具體限定。

      實施例二

      依據(jù)本發(fā)明的另一方面,還提供了一種被加固軟件的認證方法,應(yīng)用于一服務(wù)器,如圖5所示,該認證方法500包括:

      步驟S501、獲取被加固軟件發(fā)送的處理結(jié)果,對被加固軟件的殼程序的完整性校驗值進行驗證;

      步驟S503、若驗證結(jié)果為驗證通過,則對關(guān)鍵數(shù)據(jù)進行加密處理,并將加密生成的加密數(shù)據(jù)發(fā)送給被加固軟件,關(guān)鍵數(shù)據(jù)包括:被加固軟件的明文軟件代碼中被隱藏的數(shù)據(jù)和被隱藏數(shù)據(jù)對應(yīng)的入口地址。

      其中,在本發(fā)明實施例中,首先要對被加固軟件的殼程序的完整性校驗值進行驗證,以保證其殼程序的完整性,有效地防止殼程序被篡改,只有當(dāng)驗證通過后,才能向被加固軟件發(fā)送關(guān)鍵數(shù)據(jù),在發(fā)送關(guān)鍵數(shù)據(jù)前,需要對關(guān)鍵數(shù)據(jù)進行加密處理,因此保證了在發(fā)送關(guān)鍵數(shù)據(jù)過程中的安全性,能夠有效防止服務(wù)器發(fā)送關(guān)鍵數(shù)據(jù)被攻擊者獲取,對關(guān)鍵數(shù)據(jù)起到了很好的保護作用。

      具體地,如圖6所示,在本發(fā)明實施例中,根據(jù)被加固軟件發(fā)送的處理結(jié)果,對被加固軟件的殼程序的完整性校驗值進行驗證(步驟S501),具體包括:

      步驟S5011、獲取被加固軟件的請求信息,根據(jù)請求信息隨機生成第一隨機數(shù),并將第一隨機數(shù)發(fā)送給被加固軟件;

      步驟S5013、根據(jù)被加固軟件的請求信息獲取被加固軟件的ID信息,并根據(jù)被加固軟件的ID信息獲取被加固軟件的殼程序的完整性校驗值,將第一隨機數(shù)與殼程序的完整性校驗值進行第一級聯(lián)處理,獲取第二級聯(lián)結(jié)果;

      步驟S5015、根據(jù)第二算法對第二級聯(lián)結(jié)果進行計算,得到第二計算結(jié)果;

      步驟S5017、獲取被加固軟件發(fā)送的處理結(jié)果,根據(jù)處理結(jié)果識別獲取第一計算結(jié)果和第二隨機數(shù);

      步驟S5019、對第一計算結(jié)果與第二計算結(jié)果進行驗證,若第一計算結(jié)果與第二計算結(jié)果相同,則驗證結(jié)果為驗證通過。

      由于被加固軟件對其殼程序的完整性校驗值進行了相應(yīng)的處理,因此,服務(wù)器需要對其獲取的被加固軟件的殼程序的完整性校驗值進行同樣的處理,并對被加固軟件計算的第一計算結(jié)果與服務(wù)器計算的第二計算結(jié)果進行對比,若第一結(jié)果與第二結(jié)果不同,則證明被加固軟件的殼程序被篡改,遭到攻擊者的攻擊;若第一計算結(jié)果與第二計算結(jié)果相同,則被加固軟件的殼程序沒有被破壞。

      所以,本發(fā)明提供的認證方法能夠有效防止殼程序被篡改,很好地保證其完整性,并通過被加固軟件與服務(wù)器的雙向配合,實現(xiàn)了對殼程序完整性的驗證,能夠避免傳統(tǒng)的信道攻擊,實現(xiàn)了雙向?qū)嶓w認證。其中,上述完整性校驗值、第一隨機數(shù)以及第二隨機數(shù)均采用十六進制表示,當(dāng)然可以理解的是,在本發(fā)明實施例中,對完整性校驗值、第一隨機數(shù)以及第二隨機數(shù)的表述方式并不進行具體限定。

      具體地,如圖7所示,在本發(fā)明實施例中,若驗證結(jié)果為驗證通過,則對關(guān)鍵數(shù)據(jù)進行加密處理,將加密生成的加密數(shù)據(jù)發(fā)送給被加固軟件(步驟S503),具體包括:

      步驟S5031、獲取根據(jù)第二級聯(lián)結(jié)果識別得到的第二隨機數(shù);

      步驟S5033、第二隨機數(shù)與關(guān)鍵數(shù)據(jù)中包括的被隱藏數(shù)據(jù)對應(yīng)的入口地址根據(jù)第三算法進行計算,并得到第三計算結(jié)果;

      步驟S5035、對第三計算結(jié)果進行加密處理,將加密后生成的加密數(shù)據(jù)發(fā)送給被加固軟件。

      具體地,在本發(fā)明實施例中,將第二隨機數(shù)與被加固軟件的明文軟件代碼中的入口地址根據(jù)第三算法進行計算,具體為:對第二隨機數(shù)與被加固軟件的明文軟件代碼中的入口地址進行異或的邏輯運算。

      其中,在本發(fā)明實施例中,經(jīng)過上述加密處理,提高了對關(guān)鍵數(shù)據(jù)的保護程度,保證了在發(fā)送關(guān)鍵數(shù)據(jù)過程中的安全性,能夠有效防止服務(wù)器發(fā)送關(guān)鍵 數(shù)據(jù)被攻擊者獲取,對關(guān)鍵數(shù)據(jù)起到了很好的保護作用。

      由上述可知,本發(fā)明實施例提供的認證方法中的流程不能被逾越,只要在認證過程中出現(xiàn)錯誤,則不能繼續(xù)后續(xù)流程,因此既能夠有效分清服務(wù)請求的來源,又能夠在惡意應(yīng)用請求提供服務(wù)時,進行有效的保護,大大提高了對被加固軟件的保護強度,有效地防止攻擊者的攻擊,保證被加固軟件可以正常運行。

      實施例三

      依據(jù)本發(fā)明的另一個方面,還提供了一種被加固軟件的認證裝置,應(yīng)用于一移動終端,如圖8所示,該認證裝置800包括:

      獲取模塊803,用于在服務(wù)器對被加固軟件的殼程序驗證通過之后,獲取服務(wù)器發(fā)送的關(guān)鍵數(shù)據(jù),關(guān)鍵數(shù)據(jù)包括:被加固軟件的明文軟件代碼中被隱藏的數(shù)據(jù)和被隱藏數(shù)據(jù)對應(yīng)的入口地址;

      替換模塊805,用于根據(jù)被隱藏的數(shù)據(jù)和入口地址,替換內(nèi)存中存儲的被加固軟件的明文軟件代碼所隱藏的對應(yīng)數(shù)據(jù),然后加載明文軟件代碼。

      其中,如圖8所示,在本發(fā)明實施例中,該認證裝置800還包括:

      處理模塊801,用于計算得到被加固軟件的殼程序的完整性校驗值,并對殼程序的完整性校驗值進行處理,將處理后的處理結(jié)果發(fā)送給服務(wù)器,由服務(wù)器對處理結(jié)果進行驗證,若驗證結(jié)果為驗證通過,則由服務(wù)器對關(guān)鍵數(shù)據(jù)加密處理生成加密數(shù)據(jù)。

      具體地,如圖9所示,在本發(fā)明實施例中,處理模塊801具體包括:

      發(fā)送單元8011,用于將被加固軟件的請求信息發(fā)送給服務(wù)器,由服務(wù)器根據(jù)被加固軟件的請求信息隨機生成第一隨機數(shù);

      第一計算單元8013,用于根據(jù)第一算法計算得到被加固軟件的殼程序的完整性校驗值;

      第一級聯(lián)單元8015,用于獲取第一隨機數(shù),將第一隨機數(shù)與殼程序的完整性校驗值進行第一級聯(lián)處理,獲取第一級聯(lián)結(jié)果;

      第二計算單元8017,用于根據(jù)第二算法對第一級聯(lián)結(jié)果進行計算,獲取第一計算結(jié)果;

      第二級聯(lián)單元8019,用于將第一計算結(jié)果與被加固軟件隨機生成的第二 隨機數(shù)進行第二級聯(lián)處理,并將處理結(jié)果發(fā)送給服務(wù)器,由服務(wù)器對處理結(jié)果進行驗證,若驗證結(jié)果為驗證通過,則由服務(wù)器對關(guān)鍵數(shù)據(jù)加密處理生成加密數(shù)據(jù)。

      具體地,如圖10所示,在本發(fā)明實施例中,獲取模塊803具體包括:

      解密單元8031,用于在服務(wù)器對被加固軟件的殼程序驗證通過之后,對服務(wù)器發(fā)送的加密數(shù)據(jù)進行解密運算;

      第一獲取單元8033,用于解密運算完成后,獲取解密數(shù)據(jù)中包含的服務(wù)器發(fā)送的關(guān)鍵數(shù)據(jù)。

      具體地,如圖11所示,在本發(fā)明實施例中,替換模塊805具體包括:

      定位單元8051,用于根據(jù)入口地址,定位被加固軟件的明文軟件代碼所隱藏的對應(yīng)數(shù)據(jù)在被加固軟件的明文軟件代碼中的位置;

      替換單元8053,用于將被隱藏的數(shù)據(jù)替換內(nèi)存中存儲的被加固軟件的明文軟件代碼所隱藏的對應(yīng)數(shù)據(jù),然后加載明文軟件代碼。

      通過本發(fā)明實施例提供的被加固軟件的認證裝置,可獲取服務(wù)器提供的關(guān)鍵數(shù)據(jù),并根據(jù)關(guān)鍵數(shù)據(jù)中的被加固軟件的明文軟件代碼中被隱藏的數(shù)據(jù)對應(yīng)的入口地址,能夠確定內(nèi)存中存儲的被加固軟件的明文軟件代碼所隱藏的對應(yīng)數(shù)據(jù)在明文軟件代碼中的位置,然后用關(guān)鍵數(shù)據(jù)中包括的明文軟件代碼中被隱藏的數(shù)據(jù)替換內(nèi)存中存儲的被加固軟件的明文軟件代碼所隱藏的對應(yīng)數(shù)據(jù)。因此,被加固軟件需要從服務(wù)器上獲取自身隱藏的關(guān)鍵數(shù)據(jù),可以有效地對抗了攻擊者的攻擊,對該被加固軟件有很好的保護作用,而且在獲取隱藏的關(guān)鍵數(shù)據(jù)后,還可以保證該被加固軟件正常運行。

      實施例四

      依據(jù)本發(fā)明的另一方面,還提供了一種被加固軟件的認證裝置,應(yīng)用于一服務(wù)器,如圖12所示,該認證裝置1200包括:

      驗證模塊1201,用于獲取被加固軟件發(fā)送的處理結(jié)果,對被加固軟件的殼程序的完整性校驗值進行驗證;

      加密模塊1203,用于若驗證結(jié)果為驗證通過,則對關(guān)鍵數(shù)據(jù)進行加密處理,將加密生成的加密數(shù)據(jù)發(fā)送給被加固軟件,關(guān)鍵數(shù)據(jù)包括:被加固軟件的明文軟件代碼中被隱藏的數(shù)據(jù)和被隱藏數(shù)據(jù)對應(yīng)的入口地址。

      具體地,如圖13所示,在本發(fā)明實施例中,驗證模塊1201具體包括:

      生成單元12011,用于獲取被加固軟件的請求信息,根據(jù)請求信息隨機生成第一隨機數(shù),并將第一隨機數(shù)發(fā)送給被加固軟件;

      第三級聯(lián)單元12013,用于根據(jù)被加固軟件的請求信息獲取被加固軟件的ID信息,并根據(jù)被加固軟件的ID信息獲取被加固軟件的殼程序的完整性校驗值,將第一隨機數(shù)與殼程序的完整性校驗值進行第一級聯(lián)處理,獲取第二級聯(lián)結(jié)果;

      第三計算單元12015,用于根據(jù)第二算法對第二級聯(lián)結(jié)果進行計算,得到第二計算結(jié)果;

      識別單元12017,用于獲取被加固軟件發(fā)送的處理結(jié)果,根據(jù)處理結(jié)果識別獲取第一計算結(jié)果和第二隨機數(shù);

      驗證單元12019,用于對第一計算結(jié)果與第二計算結(jié)果進行驗證,若第一計算結(jié)果與第二計算結(jié)果相同,則驗證結(jié)果為驗證通過。

      具體地,如圖14所示,在本發(fā)明實施例中,添加模塊1203具體包括:

      第二獲取單元12031,用于獲取根據(jù)第二級聯(lián)結(jié)果識別得到的第二隨機數(shù);

      第四計算單元12033,用于第二隨機數(shù)與關(guān)鍵數(shù)據(jù)中包括的被隱藏數(shù)據(jù)對應(yīng)的入口地址根據(jù)第三算法進行計算,并得到第三計算結(jié)果;

      加密單元12035,用于對第三計算結(jié)果進行加密處理,將加密后生成的加密數(shù)據(jù)發(fā)送給被加固軟件。

      其中,第四計算單元12033在根據(jù)第三算法進行計算時,具體為:

      對第二隨機數(shù)與被加固軟件的明文軟件代碼中的入口地址進行異或的邏輯運算。

      本發(fā)明實施例提供的認證裝置首先要對被加固軟件的殼程序的完整性校驗值進行驗證,以保證其殼程序的完整性,有效地防止殼程序被篡改,然后在當(dāng)驗證通過后,向被加固軟件發(fā)送關(guān)鍵數(shù)據(jù),其中在發(fā)送關(guān)鍵數(shù)據(jù)前,需要對關(guān)鍵數(shù)據(jù)進行加密處理,因此保證了在發(fā)送關(guān)鍵數(shù)據(jù)過程中的安全性,能夠有效防止服務(wù)器發(fā)送關(guān)鍵數(shù)據(jù)被攻擊者獲取,對關(guān)鍵數(shù)據(jù)起到了很好的保護作用。

      以上所述的是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出對于本技術(shù)領(lǐng)域的普通人員來說,在不脫離本發(fā)明所述的原理前提下還可以作出若干改進和潤飾,這 些改進和潤飾也在本發(fā)明的保護范圍內(nèi)。

      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1