本發明涉及內存管理,具體涉及一種操作系統的內存安全管理裝置及管理方法。
背景技術:
1、現有的操作系統的內存管理機制能夠讓用戶靈活的使用操縱內存,這種機制給用戶帶來便利的同時,也帶來了極大的安全隱患。隨著技術的快速發展,軟件的復雜度逐漸提高,這就導致內存使用的隨意性大大增加,內存被破壞的風險系數也大大提高,這就需要內存保護機制。
2、現有的內存保護機制,通常使用mpu(內存保護單元)通過硬件配置內存訪問權限和邊界,使用編程語言內建的防止越界訪問的機制,手動添加邊界檢查。現有的內存保護機制能夠在一定程度上解決一些內存隱患,但是仍缺少內存數據校驗和權限控制。
技術實現思路
1、為了解決現有技術中存在的上述技術問題,本發明提供一種操作系統的內存安全管理裝置及管理方法。
2、為實現上述目的,本發明的技術方案如下:
3、第一方面,本發明提供一種操作系統的內存安全管理裝置,包括內存管理模塊、數據安全模塊、異常處理模塊;所述內存管理模塊為程序分配內存時,同時分配空間記錄信息,所述空間記錄信息包括內存安全信息;所述內存安全信息包括數據校驗信息;
4、往內存寫入數據完成后,所述數據安全模塊對整塊內存的數據進行校驗生成數據唯一簽名,將簽名寫入數據校驗信息;
5、訪問內存數據時,所述數據安全模塊對內存數據生成唯一簽名,并和數據校驗信息中的簽名對比;
6、如果簽名一致,則內存數據未被篡改,可正常進行內存訪問;
7、如果簽名不一致,則內存數據被篡改,終止內存訪問,丟棄內存數據,通知異常處理模塊。
8、進一步地,所述數據安全模塊使用數據校驗算法對整塊內存的數據進行校驗生成數據唯一簽名,所述數據校驗算法使用哈希算法。
9、進一步地,所述內存安全信息還包括密鑰、加密算法、解密算法。
10、更進一步地,往內存寫入數據時,使用所述加密算法將數據加密后寫入。
11、進一步地,所述內存管理模塊將內存劃分為隱私區和共享區,所述隱私區申請的內存僅允許所有者的程序訪問,所述共享區申請的內存能夠通過授權碼給予其他程序訪問權限。
12、更進一步地,所述內存管理模塊為每個程序單獨創建內存地址映射表,分配內存時,將內存地址映射成隨機虛擬內存地址,隱藏真實內存地址。
13、更進一步地,所述所述空間記錄信息還包括內存基本信息,所述內存基本信息包括真實內存地址和內存大小。
14、進一步地,所述內存管理模塊通過虛擬內存地址和內存大小設置內存邊界,防止程序越界訪問。
15、進一步地,所述空間記錄信息還包括內存權限信息,所述內存安全管理系統還包括權限管理模塊,所述權限管理模塊用于記錄和管理內存權限信息;所述內存權限信息包含所有者信息和授權信息;
16、所述授權信息包含:程序id、線程id、授權碼、權限位掩碼、程序啟動時間;
17、所述權限位掩碼用于定義不同的訪問權限:
18、0b0001:只讀,
19、0b0010:可寫,
20、0b0100:可執行,
21、0b1000:管理員權限;
22、程序請求訪問內存數據時,先校驗授權信息,請求信息與授權信息匹配則允許操作,
23、如果不匹配則終止內存訪問,通知異常處理模塊。
24、更進一步地,所述管理員權限包含:
25、設置子線程的讀、寫、執行權限,子線程默認不繼承權限,需要通過主線程在創建子線程時設置;
26、隨機生成唯一的授權碼授權第三方程序共享內存的讀、寫、執行權限;
27、取消第三方程序的授權碼。
28、更進一步地,第三方程序通過授權碼獲取共享內存的授權后,自動獲取管理員權限,僅且擁有管理員權限中設置子線程讀、寫、執行權限的權限。
29、更進一步地,所有者信息包含:程序id、主線程id、父程序id、所有者id、所屬組id、程序啟動時間。
30、進一步地,所述內存安全管理系統還包括日志系統模塊,所述日志系統模塊用于創建日志文件,所述日志文件記錄程序申請的內存信息以及內存的使用日志信息。
31、更進一步地,所述日志文件中的內容通過數據安全模塊加密后再保存到日志文件。
32、第二方面,本發明提供一種內存安全管理方法,使用上述的內存安全管理系統進行管理,所述內存安全管理方法包括:
33、設定b程序希望訪問a程序中部分內存信息,
34、首先,a程序生成授權碼,在生成授權碼的過程中,內部會指定b程序的特征信息,將授權碼保存在服務端,其中特征信息為內存權限信息;
35、然后,b程序要進行訪問時,服務端將提取b程序的特征信息,與a程序生成的授權碼內部信息進行比對,驗證是否需要進行授權,并給予相應的權限;
36、如果驗證通過,則b程序可以訪問a程序,訪問數據過程中,使用內存管理模塊對內存進行分配,并且使用數據安全模塊針對內存數據訪問過程進行數據安全保障;
37、整個訪問過程中,由異常數據模塊進行全周期監控。
38、相對于現有技術,本發明具有以下有益效果:
39、本發明提供的操作系統的內存安全管理裝置及管理方法,通過數據安全模塊對數據訪問過程進行安全保障,寫入數據時,數據安全模塊對內存數據生成唯一簽名,訪問數據時,也生成唯一簽名,并和內存中記錄的簽名對比,簽名一致在可以正常訪問。因此,本發明提供的內存安全管理系統具有數據校驗步驟,能夠避免內存非正常訪問,解決內存保護隱患。
40、另外,本發明通過權限管理模塊設置不同等級的權限,避免內存越界訪問,提高內存保護的安全性。
1.一種操作系統的內存安全管理裝置,其特征在于,包括內存管理模塊、數據安全模塊、異常處理模塊;所述內存管理模塊為程序分配內存時,同時分配空間記錄信息,所述空間記錄信息包括內存安全信息;所述內存安全信息包括數據校驗信息;
2.根據權利要求1所述的內存安全管理裝置,其特征在于,所述數據安全模塊使用數據校驗算法對整塊內存的數據進行校驗生成數據唯一簽名,所述數據校驗算法使用哈希算法。
3.根據權利要求1所述的內存安全管理裝置,其特征在于,所述內存安全信息還包括密鑰、加密算法、解密算法;
4.根據權利要求1所述的內存安全管理裝置,其特征在于,所述內存管理模塊將內存劃分為隱私區和共享區,所述隱私區申請的內存僅允許所有者的程序訪問,所述共享區申請的內存能夠通過授權碼給予其他程序訪問權限;
5.根據權利要求1所述的內存安全管理裝置,其特征在于,所述內存管理模塊通過虛擬內存地址和內存大小設置內存邊界,防止程序越界訪問。
6.根據權利要求1所述的內存安全管理裝置,其特征在于,所述空間記錄信息還包括內存權限信息,所述內存安全管理系統還包括權限管理模塊,所述權限管理模塊用于記錄和管理內存權限信息;所述內存權限信息包含所有者信息和授權信息;
7.根據權利要求6所述的內存安全管理裝置,其特征在于,所述管理員權限包含:
8.根據權利要求7所述的內存安全管理裝置,其特征在于,第三方程序通過授權碼獲取共享內存的授權后,自動獲取管理員權限,僅且擁有管理員權限中設置子線程讀、寫、執行權限的權限。
9.根據權利要求1所述的內存安全管理裝置,其特征在于,所述內存安全管理系統還包括日志系統模塊,所述日志系統模塊用于創建日志文件,所述日志文件記錄程序申請的內存信息以及內存的使用日志信息;
10.一種操作系統的內存安全管理方法,使用權利要求1-9任一項所述的內存安全管理裝置進行管理,其特征在于,所述內存安全管理方法包括: