[發明專利]驅動保護方法及系統有效
| 申請號: | 201110213910.4 | 申請日: | 2011-07-28 |
| 公開(公告)號: | CN102902910A | 公開(公告)日: | 2013-01-30 |
| 發明(設計)人: | 王宇;吳海濤 | 申請(專利權)人: | 騰訊科技(深圳)有限公司 |
| 主分類號: | G06F21/51 | 分類號: | G06F21/51 |
| 代理公司: | 廣州華進聯合專利商標代理有限公司 44224 | 代理人: | 何平;曾旻輝 |
| 地址: | 518044 廣東省深圳*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 驅動 保護 方法 系統 | ||
【技術領域】
本發明涉及驅動防護領域,特別涉及一種驅動保護方法及系統。
【背景技術】
IRP(I/O?Request?Package,輸入輸出請求包)為Windows內核中的一種數據結構,派遣函數是Windows驅動中的重要概念。上層應用程序與底層驅動層通信時,應用程序會發送I/O請求,操作系統將I/O請求轉化為相應的IRP數據,不同類型的IRP數據會根據類型傳遞到不同的派遣函數中。
IRP的兩個基本的屬性,一個是MajorFunction(主功能函數),用于記錄IRP的主要類型,將IRP的主要類型與派遣函數相關聯,另一個是MinorFunction(子功能函數),用于記錄IRP子類型。操作系統根據MajorFunction將IRP派遣到不同的派遣函數中,在派遣函數中還可以繼續判斷這個IRP屬于哪種MinorFunction。如文件I/O的相關函數CreateFile(創建文件內核對象)、ReadFile(讀文件)、WriteFile(寫文件)等,會創建相對應的IRP_MJ_CREATE(創建類型的輸入輸出請求包)、IRP_MJ_READ(讀類型的輸入輸出請求包)、IRP_MJ_WRITE的IRP(寫類型的輸入輸出請求包)。這些IRP會被傳遞到驅動層的派遣函數中。其中,函數CreateFile用于創建或打開對象,并返回一個可用來訪問該對象的句柄;函數ReadFile用于從文件指針指向的位置開始將數據讀出到一個文件中,且支持同步和異步;函數WriteFile用于將數據寫入一個文件。
在Windows系統中,一個應用程序想要打開驅動層,首先需要發送一個IRP_MJ_CREATE的IRP給驅動層,驅動層經過相應的派遣函數處理后返回句柄。其中,句柄為一個整數值,用于標志應用層中應用程序的不同對象和同類對象中的不同的實例,如一個窗口、鈕、圖標、滾動條、輸出設備、控件或者文件等,應用層能夠通過句柄訪問相應的驅動層。
然而,若有第三方程序通過工具查看到句柄,然后通過該句柄打開驅動層,如此,第三方程序就可以向驅動層發送IOCTL(設備驅動層中對I/O通道管理的函數),達到直接控制驅動層的目的。若該第三方程序是惡意軟件,其可在用戶電腦上肆意破壞。
【發明內容】
基于此,有必要提供一種能提高驅動層安全性的驅動保護方法。
一種驅動保護方法,包括以下步驟:
對程序文件進行加密,并發送輸入輸出請求包及加密后的程序文件;
接收所述輸入輸出請求包及加密后的程序文件,并對所述加密后的程序文件進行解密,以及對解密后的程序文件進行驗證,若驗證通過,則返回句柄,否則不返回句柄。
優選地,所述對程序文件進行加密的步驟具體為:
讀取程序文件;
計算所述程序文件的信息摘要值;
對所述信息摘要值進行非對稱加密;
將非對稱加密的信息摘要值寫入到所述程序文件尾部。
優選地,對所述加密后的程序文件進行解密,對解密后的程序文件進行驗證,若驗證通過,則返回句柄,否則不返回句柄的步驟具體為:
讀取非對稱加密后的信息摘要值,對其進行解密得到信息摘要值;
計算所述程序文件的信息摘要值,將計算得到的信息摘要值與解密得到的信息摘要值進行比較,若兩者相同,則返回句柄,否則不返回句柄。
優選地,所述非對稱加密或解密采用RSA算法。
優選地,對所述加密后的程序文件進行解密,以及對解密后的程序文件進行驗證的步驟具體為:在創建類型的輸入輸出請求包中對加密后的程序文件進行解密及對解密后的程序文件進行驗證。
此外,還有必要提供一種能提高驅動層安全性的驅動保護系統。
一種驅動保護系統,包括:
應用層模塊,包括加密子模塊和第一通信子模塊,所述加密子模塊用于對程序文件進行加密,所述第一通信子模塊用于發送輸入輸出請求包及加密后的程序文件;
驅動層模塊,包括解密驗證子模塊和第二通信子模塊,所述第二通信子模塊用于接收所述輸入輸出請求包及加密后的程序文件,所述解密驗證子模塊用于對所述加密后的程序文件進行解密,以及對解密后的程序文件進行驗證,若驗證通過,則所述第二通信子模塊返回句柄到所述第一通信子模塊,若驗證不通過,則所述第二通信子模塊不返回句柄到所述第一通信子模塊。
優選地,所述加密子模塊還用于讀取程序文件,計算所述程序文件的信息摘要值,并對所述信息摘要值進行非對稱加密,以及將非對稱加密的信息摘要值寫入到所述程序文件尾部。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于騰訊科技(深圳)有限公司,未經騰訊科技(深圳)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110213910.4/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種具有微波透鏡的微波加熱腔結構
- 下一篇:一種可拆分式多功能電磁爐





