本發明屬于可移動磁盤接入技術領域,具體涉及一種USB設備安全接入監控方法。
背景技術:
在企事業單位辦公電腦中,經常存儲有一些涉及本單位機密的信息和數據,因此對這些信息和數據的保護非常重要,一是要防止外泄露,二是要防止被病毒感染。
實現上述目標的一種方法為:對接入電腦的U盤或移動硬盤等可移動磁盤進行監控,切斷非法或染毒的可移動磁盤接入電腦,從而有效降低重要機密文件的泄露和遺失。
現有技術中,對可移動磁盤接入監控方法是:在指定電腦上,使用專用的可移動磁盤注冊軟件,將可移動磁盤重新初始化為至少兩個分區,其中一個為容量較小的自定義格式分區,用于保存驗證信息;其他均為正常分區,用于驗證通過后的正常使用。當可移動磁盤接入電腦后,電腦會讀取可移動磁盤中自定義分區的驗證信息。如果驗證成功,可移動磁盤就可以正常的使用;如果驗證失敗,就禁止可移動磁盤對電腦的訪問。
上述方法存在的主要缺陷為:①在使用過程中,由于自定義格式的分區不是很穩定,容易造成分區損壞,以及驗證信息的丟失,導致可移動磁盤無法使用。②所有的操作都是在應用層,容易被破解。③初始時,需要對可移動磁盤進行初始化,不能保留原有的數據,從而不方便用戶使用。
技術實現要素:
針對現有技術存在的缺陷,本發明提供一種USB設備安全接入監控方法,可有效解決上述問題。
本發明采用的技術方案如下:
本發明提供一種USB設備安全接入監控方法,包括以下步驟:
步驟S1,構造USB設備安全接入監控架構,所述USB設備安全接入監控架構包括客戶端和服務端;對于所述客戶端,在其PCI層和USB驅動層之間新配置有USB設備監控單元;其中,所述USB設備監控單元包括USB過濾模塊、I/O控制模塊和緩存;所述I/O控制模塊用于實現所述USB設備監控單元與服務端管理平臺的通信;
所述客戶端還配置有USB設備注冊單元;所述服務端配置有服務端管理平臺和數據庫;所述數據庫存儲并實時維護USB設備ID注冊表和USB設備阻止類型注冊表;其中,所述USB設備ID注冊表用于存儲已注冊的USB設備ID;所述USB設備阻止類型注冊表用于存儲需要被攔截的USB設備類型;
步驟S2,當在客戶端的用戶層調用設備控制函數與USB驅動層進行通信時,立即啟動所述I/O控制模塊;所述I/O控制模塊被啟動后,立即向設備控制類派遣函數發送觸發命令;所述設備控制類派遣函數判斷所述觸發命令是否正確,如果不正確,則設置返回值為假,并將所述返回值返回給所述I/O控制模塊;如果正確,所述設備控制類派遣函數與所述服務端管理平臺建立通信,接收來自于所述服務端管理平臺的USB設備ID注冊表、USB設備阻止類型注冊表以及USB過濾模塊是否啟用的指令;
然后,所述設備控制類派遣函數將所述USB設備ID注冊表和所述USB設備阻止類型注冊表存儲到所述緩存中;另外,如果為USB過濾模塊禁用的指令,則所述設備控制類派遣函數取消BLOCK標志位;如果為USB過濾模塊啟用的指令,則設置BLOCK標志位;然后,所述設備控制類派遣函數設置返回值為真,并將所述返回值返回給所述I/O控制模塊;
步驟S3,當客戶端的USB插口被插入USB設備時,所述總線檢測到USB插口被插入USB設備,然后,所述總線觸發即插即用請求類派遣函數;
所述即插即用請求類派遣函數判斷是否存在BLOCK標志位,如果不存在BLOCK標志位,執行S4;如果存在BLOCK標志位,執行S5;
步驟S4,所述即插即用請求類派遣函數禁用所述USB過濾模塊;當USB設備插入USB插口,總線層將所述USB設備接入請求消息通過PCI層上傳到USB驅動層;然后,返回S3,如此不斷對插入的各個USB設備進行驅動接入;
步驟S5,包括:
步驟S5.1,所述即插即用請求類派遣函數啟用所述USB過濾模塊;
步驟S5.2,當總線層檢測到USB設備接入請求消息時,所述總線層將所述USB設備接入請求消息通過PCI層上傳到USB過濾模塊;
步驟S5.3,所述USB過濾模塊解析所述USB設備接入請求消息,得到USB設備的設備類型以及USB設備ID;然后,所述USB過濾模塊從所述緩存中讀取到USB設備阻止類型注冊表,判斷當前插入的USB設備的設備類型是否在所述USB設備阻止類型注冊表中,如果不在所述USB設備阻止類型注冊表中,則所述USB過濾模塊將所述USB設備接入請求消息傳輸給上層的USB驅動層;然后,返回S3,如此不斷對插入的各個USB設備進行驅動接入;如果在所述USB設備阻止類型注冊表中,則執行S5.4;
步驟S5.4,所述USB過濾模塊從所述緩存中讀取到USB設備ID注冊表,判斷當前插入的USB設備的及USB設備ID是否在所述USB設備ID注冊表中,如果在所述USB設備ID注冊表中,則所述USB過濾模塊將所述USB設備接入請求消息傳輸給上層的USB驅動層;然后,返回S3,如此不斷對插入的各個USB設備進行驅動接入;如果不在所述USB設備ID注冊表中,則執行S5.5;
步驟S5.5,所述USB過濾模塊將所接到的所述USB設備接入請求消息攔截,不再繼續向上層的USB驅動層傳送所述USB設備接入請求消息,因此,USB驅動層不會對當前插入的USB設備進行驅動,當前插入的USB設備未成功接入。
優選的,所述USB設備阻止類型注冊表用于存儲以下類型的USB設備:網卡、可移動磁盤、游戲手柄、讀卡器和照相機。
優選的,當USB設備為可移動磁盤時,所述USB設備ID包括可移動磁盤的固件中VID、PID和SN;其中,VID代表制造商ID;PID代表產品ID;SN代表序列號。
本發明提供的USB設備安全接入監控方法具有以下優點:
(1)為一種對USB設備本身無任何寫入操作的安全監控方法,由于不會對USB設備進行任何修改,因此,減少對USB設備的格式化操作,不改變USB設備的原有文件系統格式,不修改USB設備本身的任何信息,有助于提升USB設備的可用性和可靠性,并且監控效果優異;
(2)通過在USB驅動層和PCI層之間設置緩存區,緩存區預先存儲已注冊USB設備信息,因此,即便當網絡不穩定時,仍可利用本地緩存的注冊信息實現對插入的USB設備的監控。
(3)采用驅動的監控方式,具有監控可靠性高、難破解、性能穩定可靠的優點;
(4)USB過濾模塊可啟動可禁用,使用靈活性好。
附圖說明
圖1為本發明提供的USB設備安全接入監控架構的結構示意圖;
圖2為本發明提供的設備控制類派遣函數的執行流程圖;
圖3為本發明提供的即插即用請求類派遣函數的執行流程圖。
圖4為本發明提供的USB設備安全接入監控方法的整體流程圖。
具體實施方式
為了使本發明所解決的技術問題、技術方案及有益效果更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發明,并不用于限定本發明。
為方便對本發明進行理解,首先介紹重要名稱在本發明中的含義:
服務端管理平臺:在服務器電腦中始終運行,提供管理人員操作的界面,以及與客戶端數據傳輸的接口,并處理數據庫的訪問。
USB設備注冊單元:將未授權接入電腦的USB設備注冊為已授權接入設備。
USB設備監控單元:接收服務端傳輸的USB設備注冊數據,根據授權的信息判斷接入電腦的USB設備是否允許使用。
結合圖1-圖3,本發明提供一種USB設備安全接入監控方法,可廣泛應用于計算機終端安全管理領域,包括以下步驟:
步驟S1,構造USB設備安全接入監控架構,所述USB設備安全接入監控架構包括客戶端和服務端;對于所述客戶端,在其PCI層和USB驅動層之間新配置有USB設備監控單元;其中,所述USB設備監控單元包括USB過濾模塊、I/O控制模塊和緩存;所述I/O控制模塊用于實現所述USB設備監控單元與服務端管理平臺的通信;
所述客戶端還配置有USB設備注冊單元;所述服務端配置有服務端管理平臺和數據庫;所述數據庫存儲并實時維護USB設備ID注冊表和USB設備阻止類型注冊表;其中,所述USB設備ID注冊表用于存儲已注冊的USB設備ID;所述USB設備阻止類型注冊表用于存儲需要被攔截的USB設備類型,例如,USB設備阻止類型注冊表用于存儲以下類型的USB設備:網卡、可移動磁盤、游戲手柄、讀卡器和照相機等。而對于鼠標、鍵盤等常用的外設,則不需要進行攔截過濾。USB設備ID為USB設備唯一身份標識,例如,當USB設備為可移動磁盤時,可以由可移動磁盤的固件中VID、PID和SN組成USB設備唯一身份標識;其中,VID代表制造商ID;PID代表產品ID;SN代表序列號。
另外,USB設備注冊單元通過以下方法向服務端管理平臺進行注冊:USB設備注冊單元首先獲取授權的USB設備ID和授權的USB設備類型;然后,USB設備注冊單元將授權的USB設備ID和授權的USB設備類型發送到服務端管理平臺,由服務端管理平臺將注冊信息保存到數據庫中。
步驟S2,當在客戶端的用戶層調用設備控制函數與USB驅動層進行通信時,立即啟動所述I/O控制模塊;所述I/O控制模塊被啟動后,立即向設備控制類派遣函數發送觸發命令;所述設備控制類派遣函數判斷所述觸發命令是否正確,如果不正確,則設置返回值為假,并將所述返回值返回給所述I/O控制模塊;如果正確,所述設備控制類派遣函數與所述服務端管理平臺建立通信,接收來自于所述服務端管理平臺的USB設備ID注冊表、USB設備阻止類型注冊表以及USB過濾模塊是否啟用的指令;實際應用中,所述服務端管理平臺向所述設備控制類派遣函數發送的注冊信息等數據,可采用AES加密方式,從而保障數據傳輸安全性。
然后,所述設備控制類派遣函數將所述USB設備ID注冊表和所述USB設備阻止類型注冊表存儲到所述緩存中;另外,如果為USB過濾模塊禁用的指令,則所述設備控制類派遣函數取消BLOCK標志位;如果為USB過濾模塊啟用的指令,則設置BLOCK標志位;然后,所述設備控制類派遣函數設置返回值為真,并將所述返回值返回給所述I/O控制模塊;
步驟S3,當客戶端的USB插口被插入USB設備時,所述總線檢測到USB插口被插入USB設備,然后,所述總線觸發即插即用請求類派遣函數;
所述即插即用請求類派遣函數判斷是否存在BLOCK標志位,如果不存在BLOCK標志位,執行S4;如果存在BLOCK標志位,執行S5;
步驟S4,所述即插即用請求類派遣函數禁用所述USB過濾模塊;當USB設備插入USB插口,總線層將所述USB設備接入請求消息通過PCI層上傳到USB驅動層;然后,返回S3,如此不斷對插入的各個USB設備進行驅動接入;
步驟S5,包括:
步驟S5.1,所述即插即用請求類派遣函數啟用所述USB過濾模塊;
步驟S5.2,當總線層檢測到USB設備接入請求消息時,所述總線層將所述USB設備接入請求消息通過PCI層上傳到USB過濾模塊;
步驟S5.3,所述USB過濾模塊解析所述USB設備接入請求消息,得到USB設備的設備類型以及USB設備ID;然后,所述USB過濾模塊從所述緩存中讀取到USB設備阻止類型注冊表,判斷當前插入的USB設備的設備類型是否在所述USB設備阻止類型注冊表中,如果不在所述USB設備阻止類型注冊表中,則所述USB過濾模塊將所述USB設備接入請求消息傳輸給上層的USB驅動層;然后,返回S3,如此不斷對插入的各個USB設備進行驅動接入;如果在所述USB設備阻止類型注冊表中,則執行S5.4;
步驟S5.4,所述USB過濾模塊從所述緩存中讀取到USB設備ID注冊表,判斷當前插入的USB設備的及USB設備ID是否在所述USB設備ID注冊表中,如果在所述USB設備ID注冊表中,則所述USB過濾模塊將所述USB設備接入請求消息傳輸給上層的USB驅動層;然后,返回S3,如此不斷對插入的各個USB設備進行驅動接入;如果不在所述USB設備ID注冊表中,則執行S5.5;
步驟S5.5,所述USB過濾模塊將所接到的所述USB設備接入請求消息攔截,不再繼續向上層的USB驅動層傳送所述USB設備接入請求消息,因此,USB驅動層不會對當前插入的USB設備進行驅動,當前插入的USB設備未成功接入。
本發明采用USB設備監控單元的驅動層攔截原理:①該驅動共需要創建兩個驅動設備,一個是USB過濾模塊,用于監控USB設備的接入請求;另一個是IO控制模塊,用于與服務端管理平臺進行數據的傳輸。USB過濾模塊和IO控制模塊均位于USB驅動層和PCI層之間。②USB過濾模塊獲取到USB設備的接入請求時,比對當前插入的USB設備的ID和類型是否與本地緩存中的注冊表相匹配,如果通過比對,為授權的USB設備的接入請求,則繼續往下一層設備發送USB設備的接入請求,操作系統就會處理對應功能,實現USB設備的正常使用;如果不為授權的USB設備的接入請求,則USB過濾模塊攔截該USB設備的接入請求,并不再繼續向下一層設備發送,而是直接設定一個執行失敗的返回值,則操作系統就不會處理對應的功能,導致USB設備未成功的接入,從而禁止未授權的USB設備對上層應用的訪問,保證了非法或染毒的USB設備接入電腦,從而有效降低重要機密文件的泄露和遺失。
本發明提供的USB設備安全接入監控方法,具有以下優點:
(1)為一種對USB設備本身無任何寫入操作的安全監控方法,由于不會對USB設備進行任何修改,因此,減少對USB設備的格式化操作,不改變USB設備的原有文件系統格式,不修改USB設備本身的任何信息,有助于提升USB設備的可用性和可靠性,并且監控效果優異;
(2)通過在USB驅動層和PCI層之間設置緩存區,緩存區預先存儲已注冊USB設備信息,因此,即便當網絡不穩定時,仍可利用本地緩存的注冊信息實現對插入的USB設備的監控。
(3)采用驅動的監控方式,具有監控可靠性高、難破解、性能穩定可靠的優點;
(4)USB過濾模塊可啟動可禁用,使用靈活性好。
以上所述僅是本發明的優選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視本發明的保護范圍。