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