專利名稱:一種安全加載程序庫的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機數(shù)據(jù)加密技術(shù)領(lǐng)域,具體涉及一種安全加載程序庫的方法和裝置。
背景技術(shù):
中大型軟件程序可執(zhí)行程序文件由一個主程序可執(zhí)行文件和多個程序庫文件組成,當(dāng)軟件程序執(zhí)行時,首先運行主程序文件,當(dāng)主程序文件開始運行時根據(jù)需要動態(tài)加載一個或多個程序庫文件,大型軟件需要加載成百上千的程序庫文件。有些程序庫文件本身實現(xiàn)某些通用的功能,所有需要實現(xiàn)這些功能的軟件都可以直接加載和使用這些程序庫文件,這些程序庫文件也會在多個應(yīng)用程序之間共享。 程序庫即是一個以動態(tài)鏈接庫形式提供的可執(zhí)行的功能集合,目前編譯產(chǎn)生的程序庫文件的格式都為固定的格式,例如windows系統(tǒng)上的PE (可移植可執(zhí)行程序)格式,linux/unix系統(tǒng)上的ELF (可執(zhí)行和可鏈接)格式。程序庫的功能接口通過導(dǎo)出函數(shù)的方式暴露給使用程序庫的上層軟件,每一個導(dǎo)出函數(shù)代表程序庫提供的一種功能,上層軟件通過調(diào)用導(dǎo)出函數(shù)使用程序庫的功能。根據(jù)程序庫文件格式的要求,這些導(dǎo)出函數(shù)的相關(guān)信息(函數(shù)名稱、函數(shù)參數(shù)、函數(shù)返回值)放置在程序庫文件的文件頭中,操作系統(tǒng)提供加載這些格式的程序庫的API (應(yīng)用程序編程接口),使用程序庫的軟件程序可以通過操作系統(tǒng)提供的API加載指定位置的程序庫并獲取程序庫文件中的導(dǎo)出函數(shù)的信息,并根據(jù)這些導(dǎo)出信息調(diào)用導(dǎo)出函數(shù)從而使用程序庫提供的功能。由于程序庫文件格式的公開性,并且在文件頭中暴露了導(dǎo)出信息,故第三方惡意程序可以根據(jù)公開的程序庫文件格式更改、偽造導(dǎo)出信息的內(nèi)容,破壞軟件的正常功能,或繞過軟件的安全檢驗機制。此外,在同一程序庫被多個軟件共享使用時,不同的版本之間程序庫的功能實現(xiàn)存在差異,特別是新版本的程序庫功能更新后可能造成以前使用舊版本的程序庫的軟件無法正常使用。
發(fā)明內(nèi)容
本發(fā)明的特征和優(yōu)點在下文的描述中部分地陳述,或者可從該描述顯而易見,或者可通過實踐本發(fā)明而學(xué)習(xí)。為解決現(xiàn)有技術(shù)的問題,本發(fā)明提供一種安全加載程序庫的方法和裝置。通過該方法和裝置解決當(dāng)直接加載和使用程序庫時,程序庫的導(dǎo)出信息直接暴露給最終用戶導(dǎo)致的安全性問題,以及直接加載和使用程序庫時,不同程序庫版本之間的兼容性問題。本發(fā)明解決上述技術(shù)問題所采用的技術(shù)方案如下根據(jù)本發(fā)明的一個方面,本發(fā)明提供一種安全加載程序庫的方法,包括步驟Al、屏蔽程序庫的導(dǎo)出信息,得到關(guān)聯(lián)該導(dǎo)出信息的地址信息;A2、加密該地址信息,并將加密后的該地址信息寫入存儲設(shè)備;A3、在加載該程序庫時,通過解密獲取該地址信息,并根據(jù)該地址信息獲取該導(dǎo)出信息。根據(jù)本發(fā)明的一個實施例,該導(dǎo)出信息包括該程序庫的導(dǎo)出函數(shù)集合,在屏蔽該導(dǎo)出信息時,設(shè)置一個返回值為間接值的元導(dǎo)出函數(shù),使用該元導(dǎo)出函數(shù)替換該導(dǎo)出函數(shù)集合中的所有導(dǎo)出函數(shù)。根據(jù)本發(fā)明的一個實施例,該地址信息包括該元導(dǎo)出函數(shù)的返回值結(jié)構(gòu)信息,在加載該程序庫時,根據(jù)該返回值結(jié)構(gòu)信息獲取該程序庫的功能函數(shù)。根據(jù)本發(fā)明的一個實施例,該步驟A2中還加密該程序庫的狀態(tài)信息,并將加密后的該狀態(tài)信息寫入該存儲設(shè)備;該步驟A3中在加載該程序庫時,還解密獲取該狀態(tài)信息,根據(jù)該狀態(tài)信息判斷該程序庫是否符合兼容性要求,在符合兼容性要求時才加載所述程序庫。
根據(jù)本發(fā)明的一個實施例,該步驟A2中該狀態(tài)信息包括程序庫的版本信息,該步驟A3中在加載該程序庫時,通過解密獲取該版本信息,并根據(jù)該版本信息判斷該程序庫是否符合兼容性要求,在符合兼容性要求時才加載所述程序庫。根據(jù)本發(fā)明的一個實施例,在該步驟A2中,該存儲設(shè)備采用文件或數(shù)據(jù)庫;該步驟A2中還對該文件或訪問該數(shù)據(jù)庫的令牌進(jìn)行加密;該步驟A3中在加載該程序庫時,首先對該文件或該令牌進(jìn)行解密,然后再對該文件的內(nèi)容進(jìn)行解密或通過該令牌訪問該數(shù)據(jù)庫,獲取該地址信息。根據(jù)本發(fā)明的一個實施例,在該步驟A2中,該存儲設(shè)備采用文件或數(shù)據(jù)庫,該步驟A2中還對該文件、或訪問該數(shù)據(jù)庫的令牌進(jìn)行加密,該步驟A3中在加載該程序庫時,首先對該文件或該令牌進(jìn)行解密,然后再對該文件的內(nèi)容進(jìn)行解密或通過該令牌訪問該數(shù)據(jù)庫,獲取該狀態(tài)信息。根據(jù)本發(fā)明的一個實施例,在該步驟A2中還計算加密后文件的哈希值,在該步驟A3中首先通過重新計算加密后文件的哈希值進(jìn)行校驗,如果校驗不成功則中止加載該程序庫。根據(jù)本發(fā)明的一個實施例,在該步驟Al中還計算該程序庫的哈希值,在該步驟A2中還加密該程序庫的哈希值,并將加密后的該程序庫的哈希值寫入存儲設(shè)備,該步驟A3中在加載該程序庫時,還通過解密獲取該程序庫的哈希值,并通過重新計算該程序庫的哈希值進(jìn)行校驗,如果校驗不成功則中止加載該程序庫。根據(jù)本發(fā)明的另一方面,提供一種安全加載程序庫的裝置,包括屏蔽模塊、加密模塊和解密模塊,該屏蔽模塊、該加密模塊和該解密模塊依次相連,該屏蔽模塊用于屏蔽程序庫的導(dǎo)出信息,得到關(guān)聯(lián)該導(dǎo)出信息的地址信息,該加密模塊用于加密該地址信息,并將加密后的該地址信息寫入存儲設(shè)備,該解密模塊用于在加載該程序庫時,解密獲取該地址信息,通過該地址信息獲取該導(dǎo)出信息。 本發(fā)明通過安全加載程序庫的方法和裝置避免使程序庫的導(dǎo)出信息直接暴露給最終用戶,因此第三方工具無法篡改、偽造程序庫的導(dǎo)出信息,破壞使用程序庫的軟件的執(zhí)行流程,確保了程序庫加載的安全性,本發(fā)明安全加載程序庫的方法和裝置在對程序庫的狀態(tài)信息解密過程中增加了對程序庫版本信息進(jìn)行核對的步驟,確保當(dāng)前程序庫版本滿足兼容性要求,避免了因上層軟件無法獲知程序庫的版本變化,在使用新版本的程序庫時因兼容性問題導(dǎo)致程序庫無法使用的現(xiàn)象。
通過閱讀說明書,本領(lǐng)域普通技術(shù)人員將更好地了解這些實施例和其它實施例的特征和方面。
下面通過參考附圖并結(jié)合實例具體地描述本發(fā)明,本發(fā)明的優(yōu)點和實現(xiàn)方式將會更加明顯,其中附圖所示內(nèi)容僅用于對本發(fā)明的解釋說明,而不構(gòu)成對本發(fā)明的任何意義上的限制,在附圖中圖I為本發(fā)明安全加載程序庫的方法流程圖;圖2為本發(fā)明安全加載程序庫的裝置示意圖。
具體實施例方式為解決當(dāng)直接加載和使用程序庫時,程序庫的導(dǎo)出信息直接暴露給最終用戶所導(dǎo) 致的安全性問題,本發(fā)明提供一種安全加載程序庫的方法,包括步驟Al、屏蔽程序庫的導(dǎo)出信息,得到關(guān)聯(lián)該導(dǎo)出信息的地址信息;優(yōu)選地,該導(dǎo)出信息包括該程序庫的導(dǎo)出函數(shù)集合,在屏蔽該導(dǎo)出信息時,設(shè)置一個返回值為間接值的元導(dǎo)出函數(shù),使用該元導(dǎo)出函數(shù)替換該導(dǎo)出函數(shù)集合中的所有導(dǎo)出函數(shù)。優(yōu)選地,該地址信息包括該元導(dǎo)出函數(shù)的返回值結(jié)構(gòu)信息,在加載該程序庫時,根據(jù)該返回值結(jié)構(gòu)信息獲取該程序庫的功能函數(shù)。A2、加密該地址信息,并將加密后的該地址信息寫入存儲設(shè)備;A3、在加載該程序庫時,通過解密獲取該地址信息,并根據(jù)該地址信息獲取該導(dǎo)出信息。為了解決直接加載和使用程序庫時,不同程序庫版本之間的兼容性問題,本發(fā)明在該步驟A2中還加密該程序庫的狀態(tài)信息,并將加密后的該狀態(tài)信息寫入該存儲設(shè)備;該步驟A3中在加載該程序庫時,還通過解密獲取該狀態(tài)信息,并根據(jù)該狀態(tài)信息判斷該程序庫是否符合兼容性要求,在符合兼容性要求時才加載所述程序庫,且在不符合兼容性要求的時候則不加載該程序庫。優(yōu)選地,該步驟A2中該狀態(tài)信息包括程序庫的版本信息,該步驟A3中在加載該程序庫時,通過解密獲取該版本信息,并根據(jù)該版本信息判斷該程序庫是否符合兼容性要求,在符合兼容性要求時才加載所述程序庫,且在不符合兼容性要求的時候則不加載該程序庫。為進(jìn)一步確保了程序庫加載的安全性,本發(fā)明采用多重加密的方式。在該步驟A2中,該存儲設(shè)備采用文件或數(shù)據(jù)庫,該步驟A2中還對該文件、或訪問該數(shù)據(jù)庫的令牌進(jìn)行加密,該步驟A3中在加載該程序庫時,首先解密該文件、或該令牌,然后再對該文件的內(nèi)容進(jìn)行解密、或者通過該令牌訪問該數(shù)據(jù)庫,獲取該地址信息。在解決兼容性問題的情況下,在該步驟A2中,該存儲設(shè)備采用文件或數(shù)據(jù)庫,該步驟A2中還對該文件、或訪問該數(shù)據(jù)庫的令牌進(jìn)行加密,該步驟A3中在加載該程序庫時,首先解密該文件或該令牌,然后再對該文件的內(nèi)容進(jìn)行解密或通過該令牌訪問該數(shù)據(jù)庫,獲取該狀態(tài)信息。為提高加載程序庫的安全性,本發(fā)明增加了對加密文件的校驗步驟。在該步驟A2中還計算加密后文件的哈希值,在該步驟A3中首先通過重新計算加密后文件的哈希值進(jìn)行校驗,如果校驗不成功則中止加載該程序庫。
為提高加載程序庫的安全性,本發(fā)明增加了對程序庫的校驗步驟。在該步驟Al中還計算該程序庫的哈希值,在該步驟A2中還加密該程序庫的哈希值,并將加密后的該程序庫的哈希值寫入存儲設(shè)備,該步驟A3中在加載該程序庫時,還解密獲取該程序庫的哈希值,并通過重新計算該程序庫的哈希值進(jìn)行校驗,如果校驗不成功則中止加載該程序庫。在本發(fā)明的具體實施例中采用如下方法屏蔽程序庫的導(dǎo)出信息步驟本實施例首先將程序庫中所有的導(dǎo)出函數(shù)及相關(guān)信息屏蔽,使得上層軟件無法通過直接加載程序庫和調(diào)用導(dǎo)出函數(shù)使用程序庫的相關(guān)功能。屏蔽的關(guān)鍵是用一個元導(dǎo)出函數(shù)替換所有導(dǎo)出函數(shù)(元函數(shù)是可以產(chǎn)生或者獲取其他函數(shù)的函數(shù))。元導(dǎo)出函數(shù)的返回值是一個間接值,此間接值配合下一步中的程序庫信息內(nèi)容才能獲取其他功能函數(shù),直接加載元導(dǎo)出函數(shù)并不能獲取程序庫的任何功能,此步驟保證了未授權(quán)的軟件和程序無法使用程序庫。程序庫加密步驟本實施例的此步驟主要是對程序庫的信息進(jìn)行加密處理。需要加密處理的第一種信息為元導(dǎo)出函數(shù)的返回值信息內(nèi)容,通過此信息配置元導(dǎo)出函數(shù)返回 的間接值可以獲取其他功能函數(shù)。返回值的信息內(nèi)容與元導(dǎo)出函數(shù)的實現(xiàn)相關(guān)。此外還需要對整個程序庫通過哈希算法(例如MD5SHA1)產(chǎn)生哈希值,此哈希值能唯一確定一個程序庫。將元導(dǎo)出函數(shù)返回值信息內(nèi)容結(jié)構(gòu)(與元導(dǎo)出函數(shù)的實現(xiàn)相關(guān))、程序庫哈希值、程序版本信息、程序庫位置信息通過加密算法加密,并將加密后的信息寫入存儲設(shè)備。這里存儲設(shè)備可以是一個獨立的文件、一個數(shù)據(jù)庫、或者注冊表等。加密程序庫信息存儲步驟本實施例的此步驟主要是提高安全性和穩(wěn)定的多重加密,對于第二步中加密存儲的程序庫信息內(nèi)容,為了防止存儲設(shè)備被篡改,需要進(jìn)行多重加密和校驗。此步驟與具體的存儲設(shè)備的類型相關(guān),如果存儲設(shè)備是一個文件需要對文件進(jìn)行加密和校驗,如果存儲設(shè)備是數(shù)據(jù)庫,我們需要對訪問數(shù)據(jù)庫的令牌進(jìn)行加密(令牌是指的持有的可以訪問某些資源的入口信息)。加載程序庫步驟本實施例的此步驟主要是采用上層軟件通過密鑰和附加信息逐步解密校驗獲取程序庫的功能函數(shù)集合,從而使用該程序庫的相關(guān)功能。首先上層軟件根據(jù)上一步驟中的令牌和密鑰解密加密信息文件,并讀取加密信息,然后上層軟件對所有加密信息進(jìn)行逐一解密,獲取程序庫的元導(dǎo)出函數(shù)返回值結(jié)構(gòu)信息、程序庫哈希值、程序庫版本信息、程序庫位置信息。上層軟件首先根據(jù)程序庫位置信息和程序庫哈希值校驗程序庫,然后根據(jù)程序庫文件屬性中的版本信息校驗程序庫版本,最后加載程序庫調(diào)用元導(dǎo)出函數(shù),獲取返回值,根據(jù)解密信息中的返回值結(jié)構(gòu)信息獲取程序庫的功能函數(shù)。以下結(jié)合流程圖說明本發(fā)明的具體實施例如圖I所示,本實施例中安全加載程序庫的方法包括以下步驟SlOl :屏蔽程序庫導(dǎo)出信息;S102 :獲取程序庫哈希值;S103 :將程序庫版本信息、程序庫哈希值、程序庫導(dǎo)出函數(shù)信息和程序庫位置信息加密;S104 :存儲步驟S103得到的加密信息;S105 :存儲信息的令牌加密并附加存儲方式;S106 :根據(jù)密鑰解密信息存儲令牌;
S107 :獲取程序庫的加密信息并解密;S108 :根據(jù)程序庫位置信息判斷程序庫是否存在;如果存在,進(jìn)入步驟S109 ;否則結(jié)束;S109 :核對程序庫哈希值是否相符;如果哈希值相符,則進(jìn)入步驟SllO ;否則結(jié)束;SllO :核對程序庫版本信息是否相符;如果版本信息相符,則進(jìn)入步驟Slll ;否則結(jié)束;Slll :加載程序庫,根據(jù)內(nèi)容信息調(diào)用導(dǎo)出函數(shù)并根據(jù)內(nèi)容信息造型為所需內(nèi)容。
下面對上述實施例中程序庫加密和加載過程分別進(jìn)行詳細(xì)說明I、程序庫加密過程首先對程序庫需要屏蔽導(dǎo)出信息,實現(xiàn)元導(dǎo)出函數(shù),一個具體的實現(xiàn)元導(dǎo)出函數(shù)的方法為元導(dǎo)出函數(shù)原型無參數(shù),返回值為一個程序庫中的地址值,此地址為一個函數(shù)指針的集合的首地址,函數(shù)指針集合中的每一個函數(shù)指針指向程序庫中的一個功能函數(shù),此集合的大小和每一個函數(shù)指針原型(函數(shù)指針原型表示此函數(shù)的定義,包括函數(shù)名稱、參數(shù)、返回值)都存儲在下一步驟中的加密信息文件中。實現(xiàn)元導(dǎo)出函數(shù)替換所有的導(dǎo)出函數(shù)后,通過直接加載的方式無法使用此程序庫的功能。對程序庫通過哈希算法獲取程序庫哈希值,將上一步中元導(dǎo)出函數(shù)返回值的函數(shù)指針集合的大小、每一個函數(shù)指針原型、以及程序庫哈希值、程序庫版本信息、程序庫位置信息一起采用加密算法加密,并將加密后的信息作為一條記錄存儲在文件中。將存儲上述加密記錄的文件進(jìn)行二次加密,對加密后的文件采用哈希算法獲取文件哈希值。2、程序庫加載過程使用程序庫的上層軟件在加載程序庫之前首先讀取存儲所有程序庫加密記錄的加密文件,然后校驗哈希值,如無法通過校驗則中止加載過程。上層軟件通過密鑰解密加密文件,上層軟件逐個讀取加密文件中的記錄,并通過密鑰解密記錄,讀取記錄中的程序庫路徑、程序庫版本信息、程序庫哈希值、程序庫元函數(shù)返回值結(jié)構(gòu)信息,這里元函數(shù)返回值結(jié)構(gòu)信息為函數(shù)指針集合的大小、每一個函數(shù)指針的函數(shù)原型。上層軟件首先根據(jù)路徑搜索程序庫,搜索成功后校驗程序庫哈希值,校驗不成功則中止加載。上層軟件讀取程序庫版本信息,版本不匹配則中止加載。上層軟件調(diào)用操作系統(tǒng)提供的API加載程序庫并調(diào)用程序庫中的元導(dǎo)出函數(shù),獲取返回地址。上層軟件根據(jù)解密后的元導(dǎo)出函數(shù)返回值的信息,將地址值轉(zhuǎn)型為一個固定大小的函數(shù)指針集合(根據(jù)加密存儲的信息將這個地址值轉(zhuǎn)換為能使用的信息,即這里所指的函數(shù)指針的集合,這種轉(zhuǎn)型需要知道函數(shù)指針的具體原型定義、集合的類型和大小等相關(guān)信息),遍歷該集合將集合中的每一個值根據(jù)解密的函數(shù)原型造型為一個函數(shù)指針(該集合中的每一個指針是無類型的指針,無類型的指針不可使用,需要根據(jù)函數(shù)原型定義將無類型的指針變形成指定原型的具體函數(shù)指針,只有具有類型的函數(shù)指針即造型后的指針才能被調(diào)用)。上層軟件根據(jù)需要使用函數(shù)指針調(diào)用程序庫的功能(即通過造型后的函數(shù)指針調(diào)用程序庫的函數(shù))。如圖2所示,本發(fā)明安全加載程序庫的裝置,包括屏蔽模塊、加密模塊和解密模塊,該屏蔽模塊、該加密模塊和該解密模塊依次相連,該屏蔽模塊用于屏蔽程序庫的導(dǎo)出信息,得到關(guān)聯(lián)該導(dǎo)出信息的地址信息,該加密模塊用于加密該地址信息,并將加密后的該地址信息寫入存儲設(shè)備,該解密模塊用于在加載該程序庫時,解密獲取該地址信息,通過該地址信息獲取該導(dǎo)出信息。安全加載程序庫的裝置中的各模塊采用對應(yīng)的前述安全加載程序庫的方法,在此不再重復(fù)描述。
以上參照
了本發(fā)明的優(yōu)選實施例,本領(lǐng)域技術(shù)人員不脫離本發(fā)明的范圍和實質(zhì),可以有多種變型方案實現(xiàn)本發(fā)明。舉例而言,作為一個實施例的部分示出或描述的特征可用于另一實施例以得到又一實施例。以上僅為本發(fā)明較佳可行的實施例而已,并非因此局限本發(fā)明的權(quán)利范圍,凡運用本發(fā)明說明書及附圖內(nèi)容所作的等效變化,均包含于本發(fā)明的權(quán)利范圍之內(nèi)。
權(quán)利要求
1.一種安全加載程序庫的方法,其特征在于,包括步驟 Al、屏蔽程序庫的導(dǎo)出信息,得到關(guān)聯(lián)所述導(dǎo)出信息的地址信息; A2、加密所述地址信息,并將加密后的所述地址信息寫入存儲設(shè)備; A3、在加載所述程序庫時,通過解密獲取所述地址信息,并根據(jù)所述地址信息獲取所述導(dǎo)出信息。
2.根據(jù)權(quán)利要求I所述的安全加載程序庫的方法,其特征在于,所述導(dǎo)出信息包括所述程序庫的導(dǎo)出函數(shù)集合,在屏蔽所述導(dǎo)出信息時,設(shè)置一個返回值為間接值的元導(dǎo)出函數(shù),使用所述元導(dǎo)出函數(shù)替換所述導(dǎo)出函數(shù)集合中的所有導(dǎo)出函數(shù)。
3.根據(jù)權(quán)利要求2所述的安全加載程序庫的方法,其特征在于,所述地址信息包括所述元導(dǎo)出函數(shù)的返回值結(jié)構(gòu)信息,在加載所述程序庫時,根據(jù)所述返回值結(jié)構(gòu)信息獲取所 述程序庫的功能函數(shù)。
4.根據(jù)權(quán)利要求I所述的安全加載程序庫的方法,其特征在于,所述步驟A2中還加密所述程序庫的狀態(tài)信息,并將加密后的所述狀態(tài)信息寫入所述存儲設(shè)備;所述步驟A3中在加載所述程序庫時,還通過解密獲取所述狀態(tài)信息,并根據(jù)所述狀態(tài)信息判斷所述程序庫是否符合兼容性要求,在符合兼容性要求時才加載所述程序庫。
5.根據(jù)權(quán)利要求4所述的安全加載程序庫的方法,其特征在于,所述步驟A2中所述狀態(tài) 信息包括程序庫的版本信息,所述步驟A3中在加載所述程序庫時,通過解密獲取所述版本信息,并根據(jù)所述版本信息判斷所述程序庫是否符合兼容性要求,在符合兼容性要求時才加載所述程序庫。
6.根據(jù)權(quán)利要求I所述的安全加載程序庫的方法,其特征在于,在所述步驟A2中,所述存儲設(shè)備采用文件或數(shù)據(jù)庫;所述步驟A2中還對所述文件、或訪問所述數(shù)據(jù)庫的令牌進(jìn)行加密;所述步驟A3中在加載所述程序庫時,首先對所述文件或所述令牌進(jìn)行解密,然后再對所述文件的內(nèi)容進(jìn)行解密或通過所述令牌訪問所述數(shù)據(jù)庫,獲取所述地址信息。
7.根據(jù)權(quán)利要求4所述的安全加載程序庫的方法,其特征在于,在所述步驟A2中,所述存儲設(shè)備采用文件或數(shù)據(jù)庫,所述步驟A2中還對所述文件、或訪問所述數(shù)據(jù)庫的令牌進(jìn)行加密,所述步驟A3中在加載所述程序庫時,首先對所述文件或所述令牌進(jìn)行解密,然后再對所述文件的內(nèi)容進(jìn)行解密或通過所述令牌訪問所述數(shù)據(jù)庫,獲取所述狀態(tài)信息。
8.根據(jù)權(quán)利要求6或7所述的安全加載程序庫的方法,其特征在于,在所述步驟A2中還計算加密后文件的哈希值,在所述步驟A3中首先通過重新計算加密后文件的哈希值進(jìn)行校驗,如果校驗不成功則中止加載所述程序庫。
9.根據(jù)權(quán)利要求I所述的安全加載程序庫的方法,其特征在于,在所述步驟Al中還計算所述程序庫的哈希值,在所述步驟A2中還加密所述程序庫的哈希值,并將加密后的所述程序庫的哈希值寫入所述存儲設(shè)備,所述步驟A3中在加載所述程序庫時,還解密獲取所述程序庫的哈希值,并通過重新計算所述程序庫的哈希值進(jìn)行校驗,如果校驗不成功則中止 加載所述程序庫。
10.一種安全加載程序庫的裝置,其特征在于包括屏蔽模塊、加密模塊和解密模塊,所述屏蔽模塊、所述加密模塊和所述解密模塊依次相連,所述屏蔽模塊用于屏蔽程序庫的導(dǎo)出信息,得到關(guān)聯(lián)所述導(dǎo)出信息的地址信息,所述加密模塊用于加密所述地址信息,并將加密后的所述地址信息寫入存儲設(shè)備,所述解密模塊用于在加載所述程序庫時,解密獲取所述地址信息,通過所述地址信息獲取所述導(dǎo)出信息 。
全文摘要
本發(fā)明提供了一種安全加載程序庫的方法和裝置,該方法包括下列步驟屏蔽程序庫的導(dǎo)出信息,得到關(guān)聯(lián)該導(dǎo)出信息的地址信息;加密該地址信息,并將加密后的該地址信息寫入存儲設(shè)備;在加載該程序庫時,解密獲取該地址信息,通過該地址信息獲取該導(dǎo)出信息。該裝置包括屏蔽模塊、加密模塊和解密模塊,該屏蔽模塊、該加密模塊和該解密模塊依次相連。通過本發(fā)明的方法和裝置解決了當(dāng)直接加載和使用程序庫時,程序庫的導(dǎo)出信息直接暴露給最終用戶導(dǎo)致的安全性問題,以及直接加載和使用程序庫時,不同程序庫版本之間的兼容性問題。
文檔編號G06F21/00GK102799815SQ20121022338
公開日2012年11月28日 申請日期2012年6月29日 優(yōu)先權(quán)日2012年6月29日
發(fā)明者徐源, 張 林, 胡志雄, 李虹輝 申請人:安科智慧城市技術(shù)(中國)有限公司, 武漢恒億電子科技發(fā)展有限公司