本發明專利技術涉及一種驅動保護方法及系統。該驅動保護方法包括以下步驟:對程序文件進行加密,并發送輸入輸出請求包及加密后的程序文件;接收所述輸入輸出請求包及加密后的程序文件,并對所述加密后的程序文件進行解密,以及對解密后的程序文件進行驗證,若驗證通過,則返回句柄,否則不返回句柄。上述驅動保護方法及系統,采用對應用層的程序文件進行加密,并發送輸入輸出請求包時發送加密后的程序文件,驅動層對加密后的程序文件進行解密驗證,驗證通過后,才返回句柄給應用層,應用層根據該句柄可訪問驅動層,若驗證不通過,則驅動層將拒絕應用層的訪問,保證了合法的應用層與驅動層進行通信,防止可疑程序訪問驅動層,提高了驅動層的安全性。
【技術實現步驟摘要】
本專利技術涉及驅動防護領域,特別涉及一種驅動保護方法及系統。
技術介紹
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 (設備驅動層中對1/0通道管理的函數),達到直接控制驅動層的目的。若該第三方程序是惡意軟件,其可在用戶電腦上肆意破壞。
技術實現思路
基于此,有必要提供一種能提高驅動層安全性的驅動保護方法。一種驅動保護方法,包括以下步驟對程序文件進行加密,并發送輸入輸出請求包及加密后的程序文件;接收所述輸入輸出請求包及加密后的程序文件,并對所述加密后的程序文件進行解密,以及對解密后的程序文件進行驗證,若驗證通過,則返回句柄,否則不返回句柄。優選地,所述對程序文件進行加密的步驟具體為讀取程序文件;計算所述程序文件的信息摘要值;對所述信息摘要值進行非對稱加密;將非對稱加密的信息摘要值寫入到所述程序文件尾部。優選地,對所述加密后的程序文件進行解密,對解密后的程序文件進行驗證,若驗證通過,則返回句柄,否則不返回句柄的步驟具體為讀取非對稱加密后的信息摘要值,對其進行解密得到信息摘要值;計算所述程序文件的信息摘要值,將計算得到的信息摘要值與解密得到的信息摘要值進行比較,若兩者相同,則返回句柄,否則不返回句柄。優選地,所述非對稱加密或解密采用RSA算法。優選地,對所述加密后的程序文件進行解密,以及對解密后的程序文件進行驗證的步驟具體為在創建類型的輸入輸出請求包中對加密后的程序文件進行解密及對解密后的程序文件進行驗證。 此外,還有必要提供一種能提高驅動層安全性的驅動保護系統。 一種驅動保護系統,包括應用層模塊,包括加密子模塊和第一通信子模塊,所述加密子模塊用于對程序文件進行加密,所述第一通信子模塊用于發送輸入輸出請求包及加密后的程序文件;驅動層模塊,包括解密驗證子模塊和第二通信子模塊,所述第二通信子模塊用于接收所述輸入輸出請求包及加密后的程序文件,所述解密驗證子模塊用于對所述加密后的程序文件進行解密,以及對解密后的程序文件進行驗證,若驗證通過,則所述第二通信子模塊返回句柄到所述第一通信子模塊,若驗證不通過,則所述第二通信子模塊不返回句柄到所述第一通信子模塊。優選地,所述加密子模塊還用于讀取程序文件,計算所述程序文件的信息摘要值,并對所述信息摘要值進行非對稱加密,以及將非對稱加密的信息摘要值寫入到所述程序文件尾部。優選地,所述解密驗證子模塊還用于讀取非對稱加密后的信息摘要值,對其進行解密得到信息摘要值,計算所述程序文件的信息摘要值,將計算得到的信息摘要值與解密得到的信息摘要值進行比較,當兩者相同時,所述第二通信子模塊返回句柄到所述第一通信子模塊,當兩者不同時,所述第二通信子模塊不返回句柄到所述第一通信子模塊。優選地,所述非對稱加密或解密采用RSA算法。優選地,所述解密驗證子模塊還用于在創建類型的輸入輸出請求包中對加密后的程序文件進行解密及對解密后的程序文件進行驗證。上述驅動保護方法及系統,采用對應用層的程序文件進行加密,并發送輸入輸出請求包時發送加密后的程序文件,驅動層對加密后的程序文件進行解密驗證,驗證通過后,才返回句柄給應用層,應用層根據該句柄可訪問驅動層,若驗證不通過,則驅動層將拒絕應用層的訪問,保證了合法的應用層與驅動層進行通信,防止可疑程序訪問驅動層,提高了驅動層的安全性。附圖說明圖I為一個實施例中驅動保護方法的流程圖;圖2為一個實施例中對程序文件進行加密的具體流程圖;圖3為一個實施例中對加密后的程序文件進行解密及驗證的具體流程圖4為一個實施例中驅動保護系統的內部結構示意圖。具體實施方式下面結合具體的實施例及附圖對技術方案進行詳細的描述。如圖I所示,在一個實施例中,一種驅動保護方法,包括以下步驟步驟S110,對程序文件進行加密,并發送輸入輸出請求包及加密后的程序文件。對應用層的程序文件進行非對稱加密,即對應用程序文件進行非對稱加密。該實施例中,該非對稱加密采用RSA算法。其中,非對稱加密就是加密和解密所使用的不是同一個密鑰,通常有兩個密鑰,稱為“公鑰”和“私鑰”,它們兩個必需配對使用,否則不能打開加密文件。“公鑰”是指可以對外公布的,“私鑰”則不能,只能由持有人一個人知道。RSA公鑰加密算法就是一個非對稱加密算法,它是1977年由Ron Rivest、Adi Shamirh和LenAdleman開發的,用于數據加密,同時也能用于數字簽名的算法,易于理解和操作,應用十分廣泛,且RSA算法加密安全性高,不易被破解。 應用層訪問驅動層時需發送I/O請求,該I/O請求被轉化為IRP(輸入輸出請求包),同時發送加密后的程序文件,以便驅動層對該應用層身份進行驗證。應用層通過I/O相關函數CreateFile發送訪問請求,會創建相對應的IRP_MJ_CREATE的IRP,該IRP_MJ_CREATE派遣到驅動層中的派遣函數中。步驟S120,接收該輸入輸出請求包及加密后的程序文件,并對該加密后的程序文件進行解密,以及對解密后的程序文件進行驗證。驅動層接收到IRP及加密后的應用層的程序文件后,對加密后的應用層的程序文件進行解密。通過RSA算法對加密的應用層的程序文件進行解密。然后對解密后的應用層的程序文件進行驗證,若驗證通過,則返回驅動層的句柄到應用層,應用層根據該句柄可訪問驅動層,若驗證不通過,則驅動層將拒絕應用層進行訪問。步驟S13本文檔來自技高網...
【技術保護點】
一種驅動保護方法,包括以下步驟:對程序文件進行加密,并發送輸入輸出請求包及加密后的程序文件;接收所述輸入輸出請求包及加密后的程序文件,并對所述加密后的程序文件進行解密,以及對解密后的程序文件進行驗證,若驗證通過,則返回句柄,否則不返回句柄。
【技術特征摘要】
1.一種驅動保護方法,包括以下步驟 對程序文件進行加密,并發送輸入輸出請求包及加密后的程序文件; 接收所述輸入輸出請求包及加密后的程序文件,并對所述加密后的程序文件進行解密,以及對解密后的程序文件進行驗證,若驗證通過,則返回句柄,否則不返回句柄。2.根據權利要求I所述的驅動保護方法,其特征在于,所述對程序文件進行加密的步驟具體為 讀取程序文件; 計算所述程序文件的信息摘要值; 對所述信息摘要值進行非對稱加密; 將非對稱加密的信息摘要值寫入到所述程序文件尾部。3.根據權利要求2所述的驅動保護方法,其特征在于,對所述加密后的程序文件進行解密,對解密后的程序文件進行驗證,若驗證通過,則返回句柄,否則不返回句柄的步驟具體為 讀取非對稱加密后的信息摘要值,對其進行解密得到信息摘要值; 計算所述程序文件的信息摘要值,將計算得到的信息摘要值與解密得到的信息摘要值進行比較,若兩者相同,則返回句柄,否則不返回句柄。4.根據權利要求3所述的驅動保護方法,其特征在于,所述非對稱加密或解密采用RSA算法。5.根據權利要求I所述的驅動保護方法,其特征在于,對所述加密后的程序文件進行解密,以及對解密后的程序文件進行驗證的步驟具體為在創建類型的輸入輸出請求包中對加密后的程序文件進行解密及對解密后的程序文件進行驗證。6.一種驅動保護系統,其特征在于,包括 應用層模塊,包括加密子模塊和第一通信子模塊,所述加...
【專利技術屬性】
技術研發人員:王宇,吳海濤,
申請(專利權)人:騰訊科技深圳有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。