[發明專利]影子棧數據完整性保護方法、裝置和計算機設備有效
| 申請號: | 202011457882.6 | 申請日: | 2020-12-10 |
| 公開(公告)號: | CN112579988B | 公開(公告)日: | 2022-12-06 |
| 發明(設計)人: | 姜瑩;王海洋 | 申請(專利權)人: | 海光信息技術股份有限公司 |
| 主分類號: | G06F21/12 | 分類號: | G06F21/12;G06F21/56 |
| 代理公司: | 北京天達共和知識產權代理事務所(特殊普通合伙) 11586 | 代理人: | 薛侖 |
| 地址: | 300450 天津市濱海新區天津華苑*** | 國省代碼: | 天津;12 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 影子 數據 完整性 保護 方法 裝置 計算機 設備 | ||
1.一種影子棧數據完整性保護方法,其特征在于,
基于控制流強制技術對影子棧進行保護,
包括以下步驟:
第一完整性校驗數據生成步驟,執行CALL指令,將函數返回指針寫入線程棧和影子棧,并且對所述函數返回指針生成第一完整性校驗數據并寫入所述影子棧;
第二完整性校驗數據生成步驟,執行RET指令,從影子棧中讀出所述函數返回指針和所述第一完整性校驗數據,并對所述函數返回指針生成第二完整性校驗數據;
異常判定步驟,對所述第一完整性校驗數據和所述第二完整性校驗數據進行比對,如果判斷為二者不相等,則拋出異常,
所述影子棧存儲在預留內存空間中,所述內存統一進行頁面管理。
2.根據權利要求1所述的影子棧數據完整性保護方法,其特征在于,
在所述預留內存空間中,所述第一完整性校驗數據與所述影子棧的其它數據連續存儲。
3.根據權利要求1所述的影子棧數據完整性保護方法,其特征在于,
在所述預留內存空間中,所述第一完整性校驗數據與所述影子棧的其它數據不連續存儲。
4.根據權利要求1所述的影子棧數據完整性保護方法,其特征在于,
在所述異常判定步驟中,在判斷為所述第一完整性校驗數據和所述第二完整性校驗數據相等的情況下,判斷從所述線程棧讀取的函數返回指針和從所述影子棧讀取的函數返回指針是否相等,如果判斷為不相等,則拋出異常,如果判斷為相等,則正常跳轉。
5.根據權利要求1至4的任一項所述的影子棧數據完整性保護方法,其特征在于,
安全處理器分配用于生成完整性校驗數據的初始信息。
6.根據權利要求1至4的任一項的影子棧數據完整性保護方法,其特征在于,
由作為硬件的完整性校驗數據生成模塊生成所述第一完整性校驗數據和所述第二完整性校驗數據。
7.根據權利要求1至4的任一項所述的影子棧數據完整性保護方法,其特征在于,
由作為硬件的完整性比對模塊對所述第一完整性校驗數據和所述第二完整性校驗數據進行比對。
8.一種影子棧數據完整性保護裝置,其特征在于,
基于控制流強制技術對影子棧進行保護,
包括:
處理器內核模塊;
完整性校驗數據生成模塊;
完整性比對模塊;以及
內存,
所述處理器內核模塊執行CALL指令,將函數返回指針寫入線程棧和影子棧,
所述完整性校驗數據生成模塊對所述函數返回指針生成第一完整性校驗數據,并寫入到所述內存中的影子棧中,
所述處理器內核模塊執行RET指令,從影子棧中讀出所述函數返回指針和所述第一完整性校驗數據,并對所述函數返回指針生成第二完整性校驗數據,
所述完整性比對模塊對所述第一完整性校驗數據和所述第二完整性校驗數據進行比對,如果判斷為二者不相等,則拋出異常,
所述影子棧存儲在預留內存空間中,所述內存統一進行頁面管理。
9.根據權利要求8所述的影子棧數據完整性保護裝置,其特征在于,
在所述預留內存空間中,所述第一完整性校驗數據與所述影子棧的其它數據連續存儲。
10.根據權利要求8所述的影子棧數據完整性保護裝置,其特征在于,
在所述預留內存空間中,所述第一完整性校驗數據與所述影子棧的其它數據不連續存儲。
11.根據權利要求8所述的影子棧數據完整性保護裝置,其特征在于,
在所述完整性比對模塊判斷為所述第一完整性校驗數據和所述第二完整性校驗數據相等的情況下,所述處理器內核模塊從所述線程棧讀取的函數返回指針和從所述影子棧讀取的函數返回指針是否相等,如果判斷為不相等,則拋出異常,如果判斷為相等,則正常跳轉。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于海光信息技術股份有限公司,未經海光信息技術股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011457882.6/1.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





