亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

數據安全保護方法及裝置的制造方法_2

文檔序號:9687859閱讀:來源:國知局
vanced Encrypt1nStandard,高級加密標準)加解密功能為例,具體增加AES加解密功能的過程包括:
[0038]首先,從Android源碼中將該版本所用的SQLite數據庫源碼獨立出來;SQLite數據庫源碼位于Android源碼根目錄/external/sqlite/dist中,它比開源的SQLite官方源碼多一些Android配置文件以及make文件。將所述目錄下的SQLite數據庫源碼取出,并建立成一個單獨的軟件項目,即完成了提取SQLite數據庫源碼的操作。
[0039]之后,單獨對獨立出來的SQlite數據庫的讀寫代碼進行修改,以增加AES加解密功能;增加SQLite數據庫加解密功能的核心操作就是實現SQLite數據庫源碼中預留的 sqlite3_key()、sqlite3_rekey()以及 sqlite3CodecAttach()等核心接口。sqlite3_key ()和 sqlite3_rekey ()是在 sqlite3.h 中定義的接口,其中,sqlite3_key()用于接收并傳遞加密口令;sqlite3_rekey ()用于修改加密口令;sqlite3CodecAttach()是在加解密的核心程序Codecext.c中實現的將加密口令生成的密鑰及頁面編碼函數與數據庫進行關聯的函數。
[0040]最后,將具有加解密功能的SQLite源碼合并到被提取了 SQLite數據庫源碼的Android源碼中。
[0041]S110、將操作系統(tǒng)數據庫的加解密功能以加解密接口的形式開放給操作系統(tǒng)的上層應用程序,以使得所述上層應用程序可調用加密接口,對所述操作系統(tǒng)數據庫中保存的所述上層應用程序的數據進行加密保護。
[0042]本申請一種實施例可以使用JNI技術來實現開放所述加解密接口給操作系統(tǒng)的上層應用程序,可以理解的是此處所述的加解密接口包括:加密接口及解密接口。上層應用程序可調用加密接口對所述操作系統(tǒng)數據庫中保存的所述上層應用程序的數據進行加密保護,即上層應用程序使用JNI技術調用底層加密功能函數,為數據設置加密口令進行加密保護。
[0043]以Android系統(tǒng)SQLite數據庫為例,如圖2中所示,Android系統(tǒng)采用了分層架構,分為四層:第一層為Linux內核層,其中包含:Display Driver、Camera Driver、…Power Management等模塊;第二層為C/C++函數庫,為Native層,其中包含SQLite庫、WebKit、…libe等模塊,可知SQLite庫位于本層;第三層為應用程序框架層,其中包含:Activity Manger、Windows manger、…XMPP Service 等模塊,SQLiteDatabase 位于此第三層;第四層為應用程序,或稱為應用層,其為Java層,其包含Home、Phone、Browser等應用程序,其Android數據庫應用位于此第四層。本申請實施例是在第二層,即Native層增加SQLite數據庫源碼的加解密功能,如圖2中所示,Java層(即應用程序)使用JNI技術調用Native層的加解密功能函數,即,使用JNI技術將兩層有機的聯系起來,可以互相交互操作。
[0044]本申請實施例在將增加了加解密功能的操作系統(tǒng)數據庫的源碼合并到被提取了所述操作系統(tǒng)數據庫的源碼的終端的操作系統(tǒng)源碼中,且開放了加解密接口給上層應用程序后,為使得操作系統(tǒng)可識別進行加密保護的上層應用程序的數據,即可識別上層應用程序的加密文件,可以進一步修改操作系統(tǒng)源碼,例如,一種具體實施例可以修改操作系統(tǒng)對加密文件的識別過程,來使修改后的操作系統(tǒng)可識別進行加密保護的上層應用程序的數據。以Android系統(tǒng)為例,每次讀取Android系統(tǒng)數據庫文件之前均會對數據庫文件的文件頭進行校驗,檢查數據庫文件的文件頭是否有“SQLite format3”標記,然而,進行了加密保護的數據庫文件的文件頭就不再是“SQLite format3”,而是以相應密鑰對“SQLiteformat3”進行加密的密文標記,因此需要在數據庫讀寫校驗的源碼中增加該密文標記,當系統(tǒng)讀取到該密文標記時就可以識別該密文標記,從而可將加密文件視為正常文件進行后續(xù)操作,否則系統(tǒng)無法識別該密文標記,將所述加密文件視為已損壞的文件強制刪除。
[0045]在修改操作系統(tǒng)源碼,令修改后的操作系統(tǒng)可識別進行加密保護的上層應用程序的數據后,即完成了本申請實施例對操作系統(tǒng)源碼的修改操作。之后,生成可以直接運行于終端、且支持操作系統(tǒng)數據庫加解密功能的操作系統(tǒng)鏡像文件,以及生成提供操作系統(tǒng)數據庫加解密接口的SDK (software development kit,軟件開發(fā)工具包)。生成所述鏡像文件以及所述提供操作系統(tǒng)數據庫加解密接口的SDK的方法包括:對修改后的操作系統(tǒng)源碼執(zhí)行編譯過程。該編譯過程包括編譯修改源碼后的操作系統(tǒng)及SDK,本申請實施例對具體編譯方法不做具體限定。本申請實施例編譯操作系統(tǒng)后生成的所述操作系統(tǒng)鏡像文件包括:在PC端直接運行操作系統(tǒng)需要的庫和工具以及在移動終端直接運行操作系統(tǒng)需要的庫和工具,也就是生成的操作系統(tǒng)鏡像文件可以兼容PC及移動終端。另外,本申請實施例在成功編譯操作系統(tǒng)的基礎上,可進一步編譯具有操作系統(tǒng)數據庫加解密接口的新的SDK,利用該新的SDK即可進一步開發(fā)出具有加密保護自身數據功能的應用程序。
[0046]其中,可以理解的是,在編譯系統(tǒng)及SDK前一般會修改系統(tǒng)源碼的配置文件,本申請實施例對此操作過程不做具體限制。
[0047]另外,本申請實施例考慮到移動終端硬件資源的局限性以及應用程序對執(zhí)行效率的要求等因素,以及有些應用程序不涉及隱私數據,因此,本申請實施例可以不對終端的操作系統(tǒng)數據庫中所有數據都進行加密,終端可根據應用程序的數據的隱秘程度確定是否調用加密接口對該應用程序的數據進行加密。這樣方便了對應用程序的數據的加密,保證了終端用戶數據的安全性,同時又具有很強的靈活性。
[0048]本申請實施例提供的調用加密接口,對所述操作系統(tǒng)數據庫中保存的所述上層應用程序的數據進行加密保護的方法包括如下步驟:
[0049]步驟一:接收加密口令;
[0050]所述加密口令可以為應用程序接收的、由用戶或應用開發(fā)者設置的加密口令。
[0051]步驟二、調用增加了加解密功能的操作系統(tǒng)數據庫的加密接口,獲取待加密數據,并傳遞所述加密口令給所述待加密數據;
[0052]由于所述加密接口已經開放給應用程序,因此應用程序直接調用該加密接口,即可獲取待加密數據,同時傳遞所述加密口令給所述待加密數據。
[0053]步驟三、利用所述加密口令生成密鑰,為獲取的所述待加密數據進行加密保護。
[0054]此步驟即為為待加密數據進行加密的步驟,利用加密口令生成密鑰,進而利用密鑰對待加密數據進行加密保護。本申請實施例實現了終端可根據應用程序的數據的隱秘程度,選擇對應用程序的數據設置加密口令,進行加密保護。
[0055]一種具體實施例,為Android系統(tǒng)SQLite數據庫進行加密為例,具體包括如下操作:
[0056]步驟30、接收應用程序開發(fā)者或者用戶設置的加密口令;
[0057]步驟31、使用JNI技術連接Java層與Native層的映射函數傳遞加密口令,并調用SQLite數據庫的加密接口,打開SQLite數據庫,獲取待
當前第2頁1 2 3 4 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1