[發(fā)明專利]一種硬件輔助抗代碼復用攻擊防御系統(tǒng)及方法有效
| 申請?zhí)枺?/td> | 201710832254.3 | 申請日: | 2017-09-15 |
| 公開(公告)號: | CN107590385B | 公開(公告)日: | 2020-03-17 |
| 發(fā)明(設計)人: | 張吉良;齊斌航;王湘奇 | 申請(專利權)人: | 湖南大學 |
| 主分類號: | G06F21/55 | 分類號: | G06F21/55;G06F21/76 |
| 代理公司: | 長沙正奇專利事務所有限責任公司 43113 | 代理人: | 馬強;李美麗 |
| 地址: | 410082 湖*** | 國省代碼: | 湖南;43 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 硬件 輔助 代碼 攻擊 防御 系統(tǒng) 方法 | ||
1.一種硬件輔助抗代碼復用攻擊防御系統(tǒng),其特征在于,包括預處理模塊、緩存(1)、內存(2)、CPU(3)和加密解密架構(4),其中,
預處理模塊:在程序被加載進內存(2)前將程序源代碼中所有jmp指令的目的地址處的指令、所有call指令的目的地址處的指令傳送給加密解密架構(4);在程序執(zhí)行時從緩存(1)中讀取指令;
內存(2):在程序執(zhí)行時實時將程序指令傳送給緩存(1);
加密解密架構(4)在程序加載到內存(2)前執(zhí)行以下操作:在接收到jmp指令的目的地址處的指令和call指令的目的地址處的指令時產生第一密鑰和第二密鑰;計算call指令的目的地址處的指令與第二密鑰的漢明距離、jmp指令的目的地址處的指令與第二密鑰的漢明距離;將call指令目標地址處的指令進行壓縮并隱藏對應的漢明距離;將jmp指令目標地址處的指令進行壓縮并隱藏對應的漢明距離;將壓縮并隱藏有漢明距離的偽指令放回原始指令處;
加密解密架構(4)在程序執(zhí)行call指令時執(zhí)行以下操作:計算返回地址與第一密鑰之間的漢明距離并將該漢明距離編碼,將編碼后的漢明距離作為參數(shù)存入棧中;將call指令的目的地址處的指令解壓縮得到解壓縮后的指令與解壓縮后的漢明距離;計算解壓縮后的指令與第二密鑰之間的漢明距離并將該漢明距離與解壓縮后的漢明距離進行對比;若對比結果為相同則call指令正常執(zhí)行;若對比結果為不相同或解壓縮失敗,則程序產生異常并判斷出存在攻擊行為;
加密解密架構(4)在程序執(zhí)行jmp指令時執(zhí)行以下操作:將jmp指令的目的地址處的指令解壓縮得到解壓縮后的指令與解壓縮后的漢明距離;計算解壓縮后的指令與第二密鑰之間的漢明距離并將該漢明距離與解壓縮后的漢明距離進行對比;若對比結果為相同則jmp指令正常執(zhí)行;若對比結果為不相同或解壓縮失敗,則程序產生異常并判斷出存在攻擊行為;
加密解密架構(4)在程序執(zhí)行ret指令時執(zhí)行以下操作:計算ret指令的目的地址與第一密鑰之間的漢明距離;將棧中編碼過的漢明距離解碼;對比計算得到的漢明距離與解碼后的漢明距離,若對比結果為相同則ret指令正常執(zhí)行;若對比結果為不相同,則程序產生異常并判斷出存在攻擊行為。
2.如權利要求1所述的硬件輔助抗代碼復用攻擊防御系統(tǒng),其特征在于,所述加密解密架構(4)包括PUF模塊(401)、第一密鑰寄存器(402)、第一長度寄存器(403)、第二密鑰寄存器(404)、第二長度寄存器(405)、PUF加密模塊(406)、漢明距離編碼模塊(407)、漢明距離解碼模塊(408)、解壓縮模塊(409)和判決模塊(410),其中,
PUF模塊(401):用于產生第一密鑰及第一密鑰的長度,產生第二密鑰及第二密鑰的長度;第一密鑰保存在第一密鑰寄存器(402)內,第二密鑰保存在第二密鑰寄存器(404)內,第一密鑰的長度保存在第一長度寄存器(403)內,第二密鑰的長度保存在第二長度寄存器(405)內;
PUF加密模塊(406):用于在程序加載到內存(2)前計算call指令的目的地址處的指令與第二密鑰的漢明距離、jmp指令的目的地址處的指令與第二密鑰的漢明距離;將call指令目標地址處的指令進行壓縮并隱藏對應的漢明距離;將jmp指令目標地址處的指令進行壓縮并隱藏對應的漢明距離;將壓縮并隱藏有漢明距離的偽指令放回原始指令處;
漢明距離編碼模塊(407):用于在執(zhí)行call指令時計算返回地址與第一密鑰之間的漢明距離并將該漢明距離編碼,將編碼后的漢明距離作為參數(shù)存入棧中;
漢明距離解碼模塊(408):用于在執(zhí)行ret指令時計算ret指令的目的地址與第一密鑰之間的漢明距離;將棧中編碼過的漢明距離解碼;
解壓縮模塊(409):用于在執(zhí)行call指令時將call指令的目的地址處的指令解壓縮得到解壓縮后的指令與解壓縮后的漢明距離;計算解壓縮后的call指令的目的地址處的指令與第二密鑰之間的漢明距離;用于在執(zhí)行jmp指令時將jmp指令的目的地址處的指令解壓縮得到解壓縮后的jmp指令的目的地址處的指令與解壓縮后的漢明距離;計算解壓縮后的jmp指令的目的地址處的指令與第二密鑰之間的漢明距離;
判決模塊(410):用于對比解壓縮后的call指令的目的地址處的指令與第二密鑰之間的漢明距離及解壓縮call指令后得到的漢明距離,若對比結果為相同則call指令正常執(zhí)行;用于對比解壓縮后的jmp指令的目的地址處的指令與第二密鑰之間的漢明距離及解壓縮jmp指令時得到的漢明距離,若對比結果為相同則jmp指令正常執(zhí)行;用于對比ret指令目的地址與第一密鑰間的漢明距離與棧中解碼后的漢明距離,若對比結果為相同則ret指令正常執(zhí)行。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于湖南大學,未經湖南大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710832254.3/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種注塑模具用拋光工藝
- 下一篇:一種雙面研磨機





