CN101593252B - 一种计算机对usb设备进行访问的控制方法和系统 - Google Patents

一种计算机对usb设备进行访问的控制方法和系统 Download PDF

Info

Publication number
CN101593252B
CN101593252B CN200910085695.7A CN200910085695A CN101593252B CN 101593252 B CN101593252 B CN 101593252B CN 200910085695 A CN200910085695 A CN 200910085695A CN 101593252 B CN101593252 B CN 101593252B
Authority
CN
China
Prior art keywords
usb device
hardware description
filtration drive
respective value
list
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN200910085695.7A
Other languages
English (en)
Other versions
CN101593252A (zh
Inventor
陆舟
于华章
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Feitian Technologies Co Ltd
Original Assignee
Feitian Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Feitian Technologies Co Ltd filed Critical Feitian Technologies Co Ltd
Priority to CN200910085695.7A priority Critical patent/CN101593252B/zh
Publication of CN101593252A publication Critical patent/CN101593252A/zh
Application granted granted Critical
Publication of CN101593252B publication Critical patent/CN101593252B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Systems (AREA)

Abstract

本发明公开了一种计算机对USB设备进行访问的控制方法和系统,属于信息安全领域。方法包括:计算机加载过滤驱动;USB设备与所述计算机建立连接;过滤驱动判断所述USB设备是否为缺省访问设备,当所述USB设备为非缺省访问设备时,判断认证设备是否与所述计算机建立连接,当所述认证设备与所述计算机建立连接后,所述过滤驱动与所述认证设备共同完成对所述USB设备的合法性的验证。系统包括:计算机、USB设备和认证设备。解决了计算机与USB设备之间的安全性问题。

Description

一种计算机对USB设备进行访问的控制方法和系统
技术领域
本发明涉及信息安全领域,特别涉及一种计算机对USB设备进行访问的控制方法和系统。
背景技术
USB(Universal Serial Bus,通用串行总线)接口是一种串行接口的新标准,其主要优点是速度快、功耗低、支持PNP(Plug and Play,即插即用)、使用安装方便。USB设备是通过USB总线跟计算机交互的设备,随着计算机技术和信息存储技术的快速发展,USB设备已成为人们日常生活、办公和学习必不可少的设备。越来越多的用户习惯于将计算机中大量的文件存放到USB设备之中,通过USB设备可以很容易地传递文件,给人们带来了很大的便利。
USB设备与计算机之间进行数据通信的过程中存在着许多不安全因素,现有技术中保护USB设备与计算机交互过程中数据的安全及防止非法用户使用USB设备窃取敏感数据的手段主要包括:存储加密、或使用用户身份认证设备来保证USB设备存放数据的安全性,用以控制非法用户阅读或截获敏感信息。例如,利用各种密钥机制实现对USB设备中存放数据的存储加密,或者利用双因子认证模式来认证用户的身份。
这些针对USB设备与计算机交互过程中的安全处理手段,非法用户可以通过第三方软件截获USB设备与计算机进行通信数据,并对特征信息进行破解分析,达到窃取敏感数据的目的,从而给USB设备与计算机通信带来安全隐患。此外,如果USB设备是计算机的非法USB设备,是不被允许使用的USB设备,那么非法用户使用非法USB设备与计算机进行交互,非法复制机密或传播病毒到计算机中,给计算机中敏感信息的安全带来了极大的威胁,由此带来的损失是无法估计的。
发明内容
为了保证USB设备与计算机交互过程的安全性,本发明提供了一种计算机对USB设备进行访问的控制方法和系统。所述技术方案如下:
一种计算机对USB设备进行访问的控制方法,所述方法包括:
计算机加载过滤驱动,所述过滤驱动中预置缺省访问控制列表,所述过滤驱动位于所述计算机的即插即用管理器和USB总线驱动之间;
USB设备与所述计算机建立连接;
所述过滤驱动根据所述缺省访问控制列表,判断所述USB设备是否为缺省访问设备;
如果是,所述过滤驱动发送所述USB设备的连接关系给所述计算机的即插即用管理器;
如果否,所述过滤驱动判断认证设备是否与所述计算机建立连接;如果是,所述过滤驱动拦截所述计算机的即插即用管理器与USB总线驱动之间的交互数据,根据所述交互数据中的认证数据,所述过滤驱动与所述认证设备共同完成对所述USB设备是否为合法设备的验证,当所述USB设备为合法设备时,所述过滤驱动发送所述交互数据中的所述USB设备的连接关系数据给所述即插即用管理器,并保存所述连接关系数据;当所述USB设备为非法设备时,所述过滤驱动发送上一次保存的合法连接关系数据给所述即插即用管理器;如果否,所述过滤驱动发送清空后的连接关系数据给所述即插即用管理器。
所述缺省访问控制列表用于存储可缺省访问所述计算机的缺省访问设备;
相应的,所述过滤驱动根据所述缺省访问控制列表,判断所述USB设备是否为缺省访问设备,具体包括:
当所述缺省访问控制列表中存在所述USB设备时,所述USB设备为缺省访问设备;
当所述缺省访问控制列表中不存在所述USB设备时,所述USB设备为非缺省访问设备。
所述缺省访问控制列表用于存储不可缺省访问所述计算机的缺省访问设备;
相应的,所述过滤驱动根据所述缺省访问控制列表,判断所述USB设备是否为缺省访问设备,具体包括:
当所述缺省访问控制列表中存在所述USB设备时,所述USB设备为非缺省访问设备;
当所述缺省访问控制列表中不存在所述USB设备时,所述USB设备为缺省访问设备。
所述过滤驱动判断认证设备是否与所述计算机建立连接,具体包括:
所述过滤驱动向与所述计算机建立连接的全部USB设备的设备对象指针发送私有命令,所述设备对象指针为USB设备与所述计算机建立连接时所述USB总线驱动创建的;
接收所述设备对象指针返回的数值;
判断所述返回的数值是否与所述过滤驱动中预置的数值相匹配;
如果匹配,则判断结果为是;
如果不匹配,则判断结果为否。
所述过滤驱动拦截所述计算机的即插即用管理器与所述USB总线驱动之间的交互数据,具体包括:
所述过滤驱动拦截所述计算机的即插即用管理器下发的数据请求包,并将所述数据请求包转发给所述USB总线驱动;
所述过滤驱动拦截所述USB总线驱动返回的所述USB设备的连接关系数据。
所述认证数据具体为所述USB设备的硬件描述符;
所述硬件描述符的获得过程具体为:
所述过滤驱动将拦截到的所述USB设备的连接关系数据与其保存的连接关系数据相比较;
当存在新接入所述计算机的USB设备时,所述过滤驱动向所述USB总线驱动发送获取新接入USB端口的USB设备的硬件描述符信息,并接收所述USB总线驱动返回的所述USB设备的硬件描述符。
所述认证设备中预置USB设备控制使用列表,所述USB设备控制使用列表用于存储可合法使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
相应的,所述根据所述交互数据中的认证数据,所述过滤驱动与所述认证设备共同完成对所述USB设备是否为合法设备的验证,具体包括:
所述认证设备接收所述过滤驱动通过所述USB总线驱动发送的所述USB设备的硬件描述符;
在所述认证设备内,结合预设的算法对所述硬件描述符进行计算,得到所述USB设备的硬件描述符的相应数值;
枚举所述USB设备控制使用列表中存储的所述可合法使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
如果所述枚举的相应数值中存在与所述USB设备的硬件描述符的相应数值相等的数值,则所述USB设备为合法设备;否则所述USB设备为非法设备。
所述认证设备中预置USB设备控制使用列表,所述USB设备控制使用列表用于存储不可使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
相应的,所述根据所述交互数据中的认证数据,所述过滤驱动与所述认证设备共同完成对所述USB设备是否为合法设备的验证,具体包括:
所述认证设备接收所述过滤驱动通过所述USB总线驱动发送的所述USB设备的硬件描述符;
在所述认证设备内,结合预设的算法对所述硬件描述符进行计算,得到所述USB设备的硬件描述符的相应数值;
枚举所述USB设备控制使用列表中存储的所述不可使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
如果所述枚举的相应数值中存在与所述USB设备的硬件描述符的相应数值相等的数值,则所述USB设备为非法设备;否则所述USB设备为合法设备。
所述认证设备中预置USB设备控制使用列表,所述USB设备控制使用列表用于存储可合法使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
相应的,所述根据所述交互数据中的认证数据,所述过滤驱动与所述认证设备共同完成对所述USB设备是否为合法设备的验证,具体包括:
所述认证设备接收所述过滤驱动发送的列表获得消息;
所述认证设备使用预定的加密算法将所述USB设备控制使用列表进行加密后发送给所述过滤驱动;
所述过滤驱动使用预定的解密算法解密得到所述USB设备控制使用列表;
所述过滤驱动使用预设的算法对所述硬件描述符进行计算,得到所述USB设备的硬件描述符的相应数值;
枚举所述过滤驱动中解密得到的所述USB设备控制使用列表中的可合法使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
如果所述枚举的相应数值中存在与所述USB设备的硬件描述符的相应数值相等的数值,则所述USB设备为合法设备;否则所述USB设备为非法设备。
所述认证设备中预置USB设备控制使用列表,所述USB设备控制使用列表用于存储不可使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
相应的,所述根据所述交互数据中的认证数据,所述过滤驱动与所述认证设备共同完成对所述USB设备是否为合法设备的验证,具体包括:
所述认证设备接收所述过滤驱动发送的列表获得消息;
所述认证设备使用预定的加密算法将所述USB设备控制使用列表进行加密后发送给所述过滤驱动;
所述过滤驱动使用预定的解密算法解密得到所述USB设备控制使用列表;
所述过滤驱动使用预设的算法对所述硬件描述符进行计算,得到所述USB设备的硬件描述符的相应数值;
枚举所述过滤驱动中解密得到的所述USB设备控制使用列表中的不可使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
如果所述枚举的相应数值中存在与所述USB设备的硬件描述符的相应数值相等的数值,则所述USB设备为非法设备;否则所述USB设备为合法设备。
所述认证设备中预置USB设备控制使用列表,所述USB设备控制使用列表用于存储可合法使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
相应的,所述根据所述交互数据中的认证数据,所述过滤驱动与所述认证设备共同完成对所述USB设备是否为合法设备的验证,具体包括:
所述认证设备接收所述过滤驱动通过所述USB总线驱动发送的所述USB设备的硬件描述符;
在所述认证设备内,结合预设的算法对所述硬件描述符进行计算,得到所述USB设备的硬件描述符的相应数值;
枚举所述USB设备控制使用列表中存储的所述可合法使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
判断所述枚举的相应数值中是否存在与所述USB设备的硬件描述符的相应数值相等的数值;
将判断结果发送给所述过滤驱动;
当所述判断结果为存在时,所述过滤驱动判定所述USB设备合法;
当所述判断结果为不存在时,所述过滤驱动判定所述USB设备为非法设备。
所述认证设备中预置USB设备控制使用列表,所述USB设备控制使用列表用于存储不可使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
相应的,所述根据所述交互数据中的认证数据,所述过滤驱动与所述认证设备共同完成对所述USB设备是否为合法设备的验证,具体包括:
所述认证设备接收所述过滤驱动通过所述USB总线驱动发送的所述USB设备的硬件描述符;
在所述认证设备内,结合预设的算法对所述硬件描述符进行计算,得到所述USB设备的硬件描述符的相应数值;
枚举所述USB设备控制使用列表中存储的所述不可使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
判断所述枚举的相应数值中是否存在与所述USB设备的硬件描述符的相应数值相等的数值;
将判断结果发送给所述过滤驱动;
当所述判断结果为存在时,所述过滤驱动判定所述USB设备为非法设备;
当所述判断结果为不存在时,所述过滤驱动判定所述USB设备为合法设备。
一种计算机对USB设备进行访问的控制系统,所述系统包括:计算机、USB设备和认证设备;
所述计算机包括:加载模块、连接模块和过滤驱动;
所述加载模块用于加载所述过滤驱动,所述过滤驱动中预置缺省访问控制列表,所述过滤驱动位于所述计算机的即插即用管理器和USB总线驱动之间;
所述连接模块用于所述USB设备与所述计算机建立连接;
所述过滤驱动包括:
缺省验证单元,用于根据所述缺省访问控制列表,判断所述USB设备是否为缺省访问设备;
发送单元,用于当所述缺省验证单元的结果为是时,发送所述USB设备的连接关系给所述计算机的即插即用管理器;
判断单元,用于当所述缺省验证单元的结果为否时,判断认证设备是否与所述计算机建立连接;
拦截单元,用于当所述判断单元的结果为是时,拦截所述计算机的即插即用管理器与USB总线驱动之间的交互数据;
验证单元,用于根据所述交互数据中的认证数据,与所述认证设备共同完成对所述USB设备是否为合法设备的验证,所述认证设备预置USB设备控制使用列表;
相应的,所述发送单元还用于,当所述USB设备为合法设备时,发送所述交互数据中的所述USB设备的连接关系数据给所述即插即用管理器,并保存所述连接关系数据;当所述USB设备为非法设备时,发送所述过滤驱动上一次保存的连接关系数据给所述即插即用管理器;
所述发送单元还用于,当所述判断单元的结果为否时,发送清空后的连接关系数据给所述即插即用管理器。
所述缺省访问控制列表用于存储可缺省访问所述计算机的缺省访问设备;
相应的,所述缺省验证单元具体包括:
第一子单元,用于当所述缺省访问控制列表中存在所述USB设备时,判断所述USB设备为缺省访问设备;
第二子单元,用于当所述缺省访问控制列表中不存在所述USB设备时,判断所述USB设备为非缺省访问设备。
所述缺省访问控制列表用于存储不可缺省访问所述计算机的缺省访问设备;
相应的,所述缺省验证单元具体包括:
第一子单元,用于当所述缺省访问控制列表中存在所述USB设备时,判断所述USB设备为非缺省访问设备;
第二子单元,用于当所述缺省访问控制列表中不存在所述USB设备时,判断所述USB设备为缺省访问设备。
所述判断单元包括:
发送子单元,用于向与所述计算机建立连接的全部USB设备的设备对象指针发送私有命令,所述设备对象指针为USB设备与所述计算机建立连接时所述USB总线驱动创建的;
接收子单元,用于接收所述设备对象指针返回的数值;
判断子单元,用于判断所述返回的数值是否与所述过滤驱动中预置的数值相匹配;
如果匹配,则判断结果为是;
如果不匹配,则判断结果为否。
所述拦截单元具体包括:
第一拦截子单元,用于拦截所述计算机的即插即用管理器下发的数据请求包;
第一转发子单元,用于将所述数据请求包转发给所述USB总线驱动;
第二拦截子单元,用于拦截所述USB总线驱动返回的所述USB设备的连接关系数据。
所述认证数据具体为所述USB设备的硬件描述符;所述USB设备控制使用列表中存储的是可合法使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
相应的,所述认证设备具体包括:
接收模块,用于接收所述过滤驱动通过所述USB总线驱动发送的所述USB设备的硬件描述符;
计算模块,用于在所述认证设备内部结合预设的算法对所述硬件描述符进行计算,得到所述USB设备的硬件描述符的相应数值;
枚举模块,用于枚举所述USB设备控制使用列表中存储的所述可合法使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
认证模块,用于如果所述枚举的相应数值中存在与所述USB设备的硬件描述符的相应数值相等的数值,则所述USB设备合法;否则所述USB设备为非法设备。
所述认证数据具体为所述USB设备的硬件描述符;所述USB设备控制使用列表中存储的是不可使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
相应的,所述认证设备具体包括:
接收模块,用于接收所述过滤驱动通过所述USB总线驱动发送的所述USB设备的硬件描述符;
计算模块,用于在所述认证设备内部结合预设的算法对所述硬件描述符进行计算,得到所述USB设备的硬件描述符的相应数值;
枚举模块,用于枚举所述USB设备控制使用列表中存储的所述不可使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
认证模块,用于如果所述枚举的相应数值中存在与所述USB设备的硬件描述符的相应数值相等的数值,则认证所述USB设备为非法设备;否则认证所述USB设备为合法设备。
所述认证数据具体为所述USB设备的硬件描述符;所述USB设备控制使用列表中存储可合法使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
相应的,所述认证设备具体包括:
接收模块,用于接收所述过滤驱动发送的列表获得消息;
加密发送模块,用于使用预定的加密算法将所述USB设备控制使用列表进行加密后发送给所述过滤驱动;
所述计算机的过滤驱动还包括:
解密单元,用于使用预定的解密算法解密得到所述USB设备控制使用列表;
计算单元,用于使用预设的算法对所述硬件描述符进行计算,得到所述USB设备的硬件描述符的相应数值;
枚举单元,用于枚举所述过滤驱动中解密得到的所述USB设备控制使用列表中的可合法使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
判定单元,用于如果所述枚举的相应数值中存在与所述USB设备的硬件描述符的相应数值相等的数值,则判定所述USB设备为合法设备;否则判定所述USB设备为非法设备。
所述认证数据具体为所述USB设备的硬件描述符;所述USB设备控制使用列表中存储不可使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
相应的,所述认证设备具体包括:
接收模块,用于接收所述过滤驱动发送的列表获得消息;
加密发送模块,用于使用预定的加密算法将所述USB设备控制使用列表进行加密后发送给所述过滤驱动;
所述计算机的过滤驱动还包括:
解密单元,用于使用预定的解密算法解密得到所述USB设备控制使用列表;
计算单元,用于使用预设的算法对所述硬件描述符进行计算,得到所述USB设备的硬件描述符的相应数值;
枚举单元,用于枚举所述过滤驱动中解密得到的所述USB设备控制使用列表中的不可使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
判定单元,用于如果所述枚举的相应数值中存在与所述USB设备的硬件描述符的相应数值相等的数值,则判定所述USB设备为非法设备;否则判定所述USB设备为合法设备。
所述认证数据具体为所述USB设备的硬件描述符;所述USB设备控制使用列表中存储可合法使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
相应的,所述认证设备具体包括:
接收模块,用于接收所述过滤驱动通过所述USB总线驱动发送的所述USB设备的硬件描述符;
计算模块,用于在所述认证设备内部结合预设的算法对所述硬件描述符进行计算,得到所述USB设备的硬件描述符的相应数值;
枚举模块,用于枚举所述USB设备控制使用列表中存储的所述可合法使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
判断模块,用于判断所述枚举的相应数值中是否存在与所述USB设备的硬件描述符的相应数值相等的数值;
发送模块,用于将判断结果发送给所述过滤驱动;
相应的,所述计算机的过滤驱动还包括:
判定单元,用于当所述判断结果为存在时,判定所述USB设备合法;当所述判断结果为不存在时,判定所述USB设备为非法设备。
所述认证数据具体为所述USB设备的硬件描述符;所述USB设备控制使用列表中存储不可使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
相应的,所述认证设备具体包括:
接收模块,用于接收所述过滤驱动通过所述USB总线驱动发送的所述USB设备的硬件描述符;
计算模块,用于在所述认证设备内部结合预设的算法对所述硬件描述符进行计算,得到所述USB设备的硬件描述符的相应数值;
枚举模块,用于枚举所述USB设备控制使用列表中存储的所述不可使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
判断模块,用于判断所述枚举的相应数值中是否存在与所述USB设备的硬件描述符的相应数值相等的数值;
发送模块,用于将判断结果发送给所述过滤驱动;
相应的,所述计算机的过滤驱动还包括:
判定单元,用于当所述判断结果为存在时,判定所述USB设备为非法设备;当所述判断结果为不存在时,判定所述USB设备为合法设备。
本发明提供的技术方案带来的有益效果是:
通过在预置了USB设备控制使用列表的认证设备中对接入计算机的USB设备进行合法性的认证,从而控制了计算机对USB设备的访问,解决了USB设备与计算机的交互过程中的不安全问题。
附图说明
图1是本发明实施例1中提供的计算机对USB设备进行访问的控制方法的信号流向图;
图2是本发明实施例1中提供的计算机对USB设备进行访问的控制方法的方法流程图;
图3是本发明实施例1中提供的过滤驱动拦截到的USB设备连接关系的示意图;
图4是本发明实施例1中提供的过滤驱动保存的USB设备连接关系的示意图;
图5是本发明实施例1中提供的过滤驱动保存的USB设备连接关系的另一种示意图;
图6是本发明实施例1中提供的在认证设备中预置的USB设备控制使用列表中增加新的合法USB设备的方法流程图;
图7本发明实施例1中提供的在认证设备中预置的USB设备控制使用列表中删除USB设备的方法流程图;
图8是本发明实施例2中提供的计算机对USB设备进行访问的控制系统的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
本实施例提供了一种计算机对USB设备进行访问的控制方法,参见图1,图1给出了该控制方法的信号流向图,下面分别对每一步的信号流向进行详细的解释:
101:当USB设备接入计算机的USB端口时,计算机的USB控制器产生中断发送给USB总线驱动;
102:USB总线驱动对该中断做出响应,调用即插即用管理器的无效设备关系函数;
103:即插即用管理器发送数据包(即输入输出请求包)给USB总线驱动,在此过程中,计算机加载的过滤驱动对该输入输出请求包进行拦截后转发给USB总线驱动;
104:过滤驱动拦截USB总线驱动返回的数据(即USB设备连接关系数据);
105:过滤驱动根据预置的缺省访问控制列表判断该USB设备是否为缺省访问的设备;当USB设备为缺省访问设备时,过滤驱动发送USB设备的连接关系数据给即插即用管理器;
106:当USB设备为非缺省访问设备时,根据返回的数据中的认证数据,过滤驱动与认证设备共同完成对USB设备是否为合法设备的验证;
107:当USB设备为合法设备时,过滤驱动发送USB设备的连接关系给即插即用管理器;当USB设备为非法设备时,过滤驱动发送清空后的连接关系给即插即用管理器。
其中,USB设备的连接关系具体为USB设备的连接关系数据,下述所有USB设备的连接关系亦为USB设备的连接关系数据,不再赘述。
下面结合图2,对本实施例提供了一种计算机对USB设备进行访问的控制方法的流程进行详细的说明,该方法具体可以包括:
步骤201:计算机加载过滤驱动;
需要说明的是,过滤驱动是一种主要基于WDM(Windows Driver Model,窗口驱动模型)的分层模式。在此分层模式中,硬件设备之上至少有两个驱动程序,分别为功能驱动程序(function driver)和总线驱动程序(bus driver)。其中,功能驱动程序实现设备的具体功能。一个设备还可能增加过滤驱动程序(filter driver)层,用来变更标准设备驱动程序的行为。这些服务于同一个设备的驱动程序组成了一个设备栈。在设备栈里,过滤驱动程序附加在功能驱动程序的上层或下层,拦截相应IRP(I/O Request Packet,输入/输出请求包),并做相应的处理,以改变设备的行为或添加新的功能。过滤驱动程序只处理那些它所关心的I/O请求,对其他的I/O请求不作处理,这样可以非常灵活地改变设备的行为,IRP将会沿着一定的顺序从上往下传递并返回。因此,可以使用过滤驱动程序来检查、修改、完成它截获的IRP,或者构造自己的IRP。
本实施例中的计算机加载的过滤驱动为计算机即插即用管理器PNPManager和USB总线驱动之间加载的USB总线驱动上位过滤驱动。
步骤202:USB设备与计算机的USB端口建立连接,计算机中的USB总线驱动为该建立连接的USB设备创建设备对象指针PDO(Physical Device Object),并存储该设备对象指针;
其中,USB设备具体可以为U盘类存储设备、键盘鼠标类HID(Human InputDevice)设备、或其他智能USB设备等。
具体的,当USB设备与计算机的USB端口建立连接时,USB控制器产生硬件中断,然后USB总线驱动响应该硬件中断,为该新接入的USB设备创建设备对象指针并存储于计算机的内存中。本实施例中建立连接的USB设备可以是一个或者多个,USB总线驱动为每个建立连接的USB设备分别创建设备对象指针PDO。
步骤203:过滤驱动根据自身预置的缺省访问控制列表,判断该建立连接的USB设备是否为缺省访问设备;
如果是,则过滤驱动发送该USB设备的连接关系数据给计算机的即插即用管理器;
如果否,执行步骤204。
具体的,缺省访问控制列表用于存储可缺省访问计算机的缺省访问设备;
相应的,步骤203具体可以包括:
当缺省访问控制列表中存在USB设备时,USB设备为缺省访问设备;
当缺省访问控制列表中不存在USB设备时,USB设备为非缺省访问设备。
或者,缺省访问控制列表用于存储不可缺省访问计算机的缺省访问设备;
相应的,步骤203具体可以包括:
当缺省访问控制列表中存在USB设备时,USB设备为非缺省访问设备;
当缺省访问控制列表中不存在USB设备时,USB设备为缺省访问设备。
步骤204:过滤驱动判断认证设备是否与计算机建立连接;
其中,过滤驱动为每一个USB总线驱动创建的USB设备的设备对象指针发送私有命令,判断各个设备对象指针返回数值是否与过滤驱动预置的数值匹配;
如果是,则过滤驱动判定认证设备已经接入计算机的USB端口,执行步骤205;
如果否,则过滤驱动判定认证设备没有接入计算机的USB端口,发送清空后的连接关系数据给即插即用管理器;
实际应用中,还可以是过滤驱动获取接入USB端口的USB设备的硬件描述符,判断各个USB设备的硬件描述符是否与过滤驱动预置的认证设备的硬件描述符匹配,是,则过滤驱动判定认证设备已经接入计算机的USB端口;否,则过滤驱动判定认证设备没有接入计算机的USB端口。其中,过滤驱动获取USB设备的硬件描述符的过程与下述获取新接入的USB设备的硬件描述符的过程相同,此处不做赘述。
这里需要说明的是,认证设备是一种智能USB设备,其内部预置了USB设备控制使用列表。USB设备控制使用列表中存储了可合法使用的USB设备的硬件描述符通过预设算法计算得到的相应数值,用于在后续的过程中判断接入USB端口的USB设备是否合法。当然,认证设备中的USB设备控制使用列表还可以存储不可使用的USB设备的硬件描述符通过预设算法计算得到的相应数值,用于在后续的过程中判断接入USB端口的USB设备是否合法。
本实施例中,所有接入计算机的USB端口的非缺省访问的USB设备在认证设备确认其合法后才不会被过滤驱动所过滤掉,因此在没有认证设备接入USB端口时,所有非缺省访问的USB设备均被过滤驱动过滤掉。具体实现为:USB设备接入USB端口,计算机PNP manager下发输入/输出请求包IRP(IRP_QUERY_BUS_RELATIONS),过滤驱动拦截该输入/输出请求包IRP转发给USB总线驱动,并在USB总线驱动收到输入/输出请求包IRP并返回USB设备连接关系后,拦截该USB设备连接关系,然后过滤驱动清空该USB设备的连接关系,将空的USB设备连接关系返回PNP manager,则接入计算机USB端口的非缺省访问的USB设备均被过滤掉,不能使用。
步骤205:计算机的即插即用管理器下发数据包,请求USB总线确认接入USB端口的USB设备连接关系;
具体的,计算机中PNP manager下发输入/输出请求包IRP,请求USB总线驱动确认接入其USB端口的USB设备连接关系。
其中,USB设备接入USB端口,USB控制器产生硬件中断,然后USB总线驱动响应该中断,为新接入的USB设备创建设备对象指针PDO存储于计算机内存,随即USB总线驱动调用PNP manager提供的无效设备关系函数IoInvalidateDeviceRelations,则即插即用管理器PNP manager发送输入/输出请求包IRP(IRP_QUERY_BUS_RELATIONS)给USB总线驱动。
步骤206:过滤驱动拦截上述输入输出请求包IRP,并转发给USB总线驱动,并拦截USB总线驱动返回的确认后的USB设备连接关系,保存;
具体的,上述过滤驱动(也就是USB总线驱动的上位过滤驱动)将即插即用管理器PNP manager下发的输入/输出请求包IRP(IRP_QUERY_BUS_RELATIONS)转发给USB总线驱动,并在USB总线驱动收到输入/输出请求包IRP、返回USB设备连接关系后,拦截该USB设备连接关系。
步骤207:过滤驱动根据其拦截到的USB设备连接关系,判断是否有新接入USB端口的USB设备;
如果是,执行步骤208;
如果否,将拦截到的USB设备连接关系直接返回给即插即用管理器。
具体的,USB总线驱动的上位过滤驱动拦截USB总线驱动返回的USB设备连接关系后,将该拦截的USB设备连接关系与其保存的USB总线上接入的USB设备连接关系进行比较,判断是否有新接入USB端口的USB设备。其中,过滤驱动保存其最近一次拦截的USB设备连接关系并在计算机关机后清空。
具体的判断过程可以如下述过程所示:
假设USB总线驱动的上位过滤驱动拦截到的USB设备连接关系如图3所示,而上位过滤驱动保存的USB总线上接入的USB设备连接关系如图4所示;那么,过滤驱动判断出有新接入USB端口的USB设备3(U盘);
假设USB总线驱动的上位过滤驱动拦截到的USB设备连接关系如图3所示,而上位过滤驱动保存的USB总线上接入的USB设备连接关系如图5所示;那么,过滤驱动判断出没有新接入USB端口的USB设备。
当判断没有新接入USB端口的USB设备时,过滤驱动将拦截到的USB设备连接关系以输入/输出请求包IRP的形式,直接返回即插即用管理器PNPmanager。
步骤208:过滤驱动向USB总线驱动发送获取新接入USB端口的USB设备的硬件描述符信息;
具体的,USB总线驱动的上位过滤驱动根据其获取的USB设备连接关系中新接入USB端口的USB设备的设备对象指针(即步骤202中的USB总线驱动创建的PDO),以该指针为参数,向USB总线驱动发送获取设备描述符函数Get-Derice_Descriptor(Get_Device_Descriptor),USB总线驱动收到该PDO参数、Get-Derice_Descriptor(Get_Device_Descriptor)函数后发送新接入USB端口的USB设备的硬件描述符给过滤驱动。
以步骤207中的举例为例,该新接入USB端口的USB设备为设备3(U盘)。
步骤209:过滤驱动接收到该硬件描述符,并将该硬件描述符及认证设备的设备对象指针发送给USB总线驱动;
具体的过程同步骤208,此处不做赘述。
步骤210:USB总线驱动接收硬件描述符及认证设备的设备对象指针,并根据该设备对象指针在其USB总线上找到认证设备,将硬件描述符发送给认证设备;
步骤211:认证设备采用其存储的预设算法,计算该接收到的硬件描述符得到相应的数值;
具体的,该计算接收到的硬件描述符得到相应的数值的过程在认证设备内部进行,认证设备预设的算法可以为:信息摘要5算法、哈希算法、或者其他的散列算法(HMAC,Hash Message Authentication Code)。
步骤212:认证设备枚举其预置的USB设备控制使用列表中的数值,查找是否存在与步骤211中计算得到的相应的数值相等的值;
如果是,则说明该USB设备是合法设备,不会被过滤驱动过滤掉,可以允许计算机对其进行访问,执行步骤213;
如果否,执行步骤215;
步骤213:过滤驱动接收认证设备发送的USB设备合法信息,然后将拦截到的USB设备连接关系返回即插即用管理器;
步骤214:USB设备不会被过滤驱动过滤掉,可被计算机系统所识别,允许计算机对USB设备进行访问;
需要说明的是,在实际的操作中,即便是允许计算机对USB设备进行访问,也并不代表计算机就可以对USB设备进行访问。主要的原因是如步骤201中所述的“硬件设备之上至少有两个驱动程序,分别为功能驱动程序和总线驱动程序”,而本实施例中并未提及功能驱动程序。当允许计算机对USB设备进行访问时,只有在计算机上安装了功能驱动程序的USB设备才能够与计算机之间进行信息的交互,没有在计算机上安装功能驱动程序的USB设备,即便是允许计算机对其进行访问,计算机仍然无法访问该USB设备。
步骤215:过滤驱动接收认证设备发送的USB设备非法信息,然后将上一次保存的合法USB设备连接关系返回即插即用管理器。
具体的,USB总线驱动的上位过滤驱动通过输入/输出请求包IRP(IRP_QUERY_BUS_RELATIONS),将上一次保存的USB设备连接关系返回即插即用管理器PNP manager,使即插即用管理器PNP manager以为没有新接入USB端口的USB设备,则新接入USB端口的USB设备被过滤掉,不能被计算机系统识别,计算机不能操作USB设备。
需要说明的是,在本实施例中,当有USB设备拔离USB端口时,如果该USB设备是认证设备,则在USB控制器产生硬件中断后,删除USB总线驱动为其创建的设备对象指针PDO,拦截随后USB总线驱动返回的USB设备连接关系后,比较得知认证设备已拔除,则过滤驱动清空该USB设备连接关系,将空的USB设备连接关系返回给PNP manager,则接入计算机USB端口的USB设备均被过滤掉,不能使用,或由缺省访问控制列表判断接入的USB设备是否为缺省访问设备,是将该USB设备连接关系返回给PNP manager,否将清空的USB设备连接关系返回给PNP manager,方法同上不再赘述。如果该USB设备是除认证设备以外的其他USB设备,则在USB控制器产生硬件中断后,删除USB总线驱动为其创建的设备对象指针PDO,拦截随后USB总线驱动返回的USB设备连接关系后,比较得知有USB设备已拔除,则将该已拔除了USB设备的USB设备连接关系返回PNP manager。
综上,步骤201至步骤215具体地介绍了计算机对USB设备进行访问的控制方法。
可代替的,步骤210至步骤215还可以为下述步骤:
步骤210’:USB总线驱动接收硬件描述符及认证设备的设备对象指针,并根据该设备对象指针在其USB总线上找到认证设备,向认证设备发送列表获得消息;
步骤211’:认证设备接收到USB总线驱动发送的列表获得消息,将认证设备内部预置的USB设备控制使用列表按照预先约定的加密算法进行加密处理,发送给USB总线驱动;
步骤212’:过滤驱动拦截加密处理后的USB设备控制使用列表,按照预先约定的解密算法进行解密,得到USB设备控制使用列表;
步骤213’:过滤驱动采用其存储的预设算法,计算步骤209中接收到的硬件描述符得到相应的数值;
步骤214’:过滤驱动枚举USB设备控制使用列表中的数值,查找是否存在与步骤213’中计算得到的相应的数值相等的值;
如果是,则说明该USB设备是合法设备,不会被过滤驱动过滤掉,可以允许计算机对其进行访问,执行步骤215’;
如果否,则说明该USB设备为非法设备,会被过滤驱动过滤掉,不允许计算机对其进行访问,执行步骤217’;
步骤215’:过滤驱动将拦截到的USB设备连接关系返回即插即用管理器;
步骤216’:USB设备不会被过滤驱动过滤掉,可被计算机系统所识别,允许计算机对USB设备进行访问;
步骤217’:过滤驱动将其上一次保存的合法USB设备连接关系返回即插即用管理器。
还可代替的,步骤212至步骤215还可以为下述步骤:
步骤212”:认证设备枚举其预置的USB设备控制使用列表中的数值,查找是否存在与步骤211中计算得到的相应的数值相等的值;
如果是,执行步骤213”;
如果否,执行步骤215”;
步骤213”:过滤驱动判定该新接入的USB设备为合法USB设备,然后将拦截到的USB设备连接关系返回即插即用管理器;
步骤214”:USB设备不会被过滤驱动过滤掉,可被计算机系统所识别,允许计算机对USB设备进行访问;
步骤215”:过滤驱动判定该USB设备为非法USB设备,然后将其上一次保存的合法USB设备连接关系返回即插即用管理器。
还需要进一步说明的是,本实施例以认证设备中预置的USB设备控制使用列表存储的是合法的USB设备控制使用列表为例,对于USB设备控制使用列表中存储不可使用的USB设备控制使用列表未加以详细的描述,但本领域技术人员可以不进行创造性的劳动即可获得此种情况下本方法的操作流程,因此在此不再赘述。
下面,针对认证设备中预置的USB设备控制使用列表,本实施例需要说明的是:认证设备的合法用户可以对认证设备中预置的USB设备控制使用列表进行修改,包括增加和删除该USB设备控制使用列表中的表项等操作。
当管理员希望在认证设备预置的USB设备控制使用列表中增加新的合法USB设备时,参见图6,该增加过程包括:
步骤601:将希望增加的新的合法USB设备的硬件描述符发送给认证设备;
步骤602:认证设备采用其存储的预设算法,计算该硬件描述符的相应数值;
其中,该步骤的计算过程在认证设备内部进行,认证设备预设的算法是:信息摘要5算法、哈希算法、或者其他的散列算法等。
步骤603:将该计算得到的数值写入认证设备预置的USB设备控制使用列表的末位。
当管理员希望在认证设备预置的USB设备控制使用列表中删除USB设备时,参见图7,该删除过程包括:
步骤701:将希望删除的USB设备的硬件描述符发送给认证设备;
步骤702:认证设备采用其存储的预设算法,计算该硬件描述符的相应数值;
其中,该步骤的计算过程在认证设备内部进行,认证设备预设的算法是:信息摘要5算法、哈希算法、或者其他的散列算法等。
步骤703:认证设备枚举其预置的USB设备控制使用列表中的数值,找到其中与步骤702中计算得到的数值相等的数值,在USB设备控制使用列表中删除该数值。
本发明实施例提供了一种计算机对USB设备进行访问的控制方法,通过预置了缺省访问控制列表的过滤驱动与预置了USB设备控制使用列表的认证设备共同完成对接入计算机的USB设备的合法性的认证,从而控制了计算机对USB设备的访问,解决了USB设备与计算机的交互过程中的不安全问题。
实施例2
本实施例提供了一种计算机对USB设备进行访问的控制系统,如图8所示,参见方法实施例中提供的方法,该系统包括:计算机801、USB设备802和认证设备803;
计算机801包括加载模块801A、连接模块801B和过滤驱动801C;
加载模块801A用于加载过滤驱动801C,过滤驱动801C中预置缺省访问控制列表;
连接模块801B用于USB设备802与计算机801建立连接;
过滤驱动801C包括:
缺省验证单元,用于根据缺省访问控制列表,判断USB设备802是否为缺省访问设备;
发送单元,用于当缺省验证单元的结果为是时,发送USB设备802的连接关系数据给计算机801的即插即用管理器;
判断单元,用于当缺省验证单元的结果为否时,判断认证设备803是否与计算机建立连接;
拦截单元,用于当判断单元的结果为是时,拦截计算机801的即插即用管理器与USB总线驱动之间的交互数据;
验证单元,用于根据交互数据中的认证数据,过滤驱动801C与认证设备803共同完成对USB设备是否为合法设备的验证,认证设备803预置了USB设备控制使用列表;
相应的,发送单元还用于,当USB设备802为合法设备时,发送交互数据中的USB设备的连接关系数据给即插即用管理器,并保存连接关系数据;当USB设备802为非法设备时,发送过滤驱动801C上一次保存的连接关系数据给即插即用管理器;
发送单元还用于,当判断单元的结果为否时,发送清空后的连接关系数据给即插即用管理器。
其中,缺省访问控制列表用于存储可缺省访问计算机的缺省访问设备;
相应的,缺省验证单元具体包括:
第一子单元,用于当缺省访问控制列表中存在USB设备时,判断USB设备为缺省访问设备;
第二子单元,用于当缺省访问控制列表中不存在USB设备时,判断USB设备为非缺省访问设备。
或者,缺省访问控制列表用于存储不可缺省访问计算机的缺省访问设备;
相应的,缺省验证单元具体包括:
第一子单元,用于当缺省访问控制列表中存在USB设备时,判断USB设备为非缺省访问设备;
第二子单元,用于当缺省访问控制列表中不存在USB设备时,判断USB设备为缺省访问设备。
进一步的,判断单元包括:
发送子单元,用于向与计算机801建立连接的全部USB设备的设备对象指针发送私有命令,设备对象指针为USB设备与计算机801建立连接时USB总线驱动创建的;
接收子单元,用于接收设备对象指针返回的数值;
判断子单元,用于判断返回的数值是否与过滤驱动中预置的数值相匹配;
如果匹配,则判断结果为是;
如果不匹配,则判断结果为否。
进一步的,拦截单元具体包括:
第一拦截子单元,用于拦截计算机801的即插即用管理器下发的数据请求包;
第一转发子单元,用于将数据请求包转发给USB总线驱动;
第二拦截子单元,用于拦截USB总线驱动返回的USB设备802的连接关系数据。
认证数据具体为USB设备802的硬件描述符;USB设备控制使用列表中存储的是可合法使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
相应的,认证设备803具体包括:
接收模块,用于接收过滤驱动通过USB总线驱动发送的USB设备802的硬件描述符;
计算模块,用于在认证设备803内部结合预设的算法对硬件描述符进行计算,得到USB设备802的硬件描述符的相应数值;
枚举模块,用于枚举USB设备控制使用列表中存储的可合法使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
认证模块,用于如果枚举的相应数值中存在与USB设备802的硬件描述符的相应数值相等的数值,则认证USB设备802合法;否则认证USB设备802为非法设备。
认证数据具体为USB设备802的硬件描述符;USB设备控制使用列表中存储的是不可使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
相应的,认证设备803具体包括:
接收模块,用于接收过滤驱动通过USB总线驱动发送的USB设备802的硬件描述符;
计算模块,用于在认证设备803内部结合预设的算法对硬件描述符进行计算,得到USB设备802的硬件描述符的相应数值;
枚举模块,用于枚举USB设备控制使用列表中存储的不可使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
认证模块,用于如果枚举的相应数值中存在与USB设备802的硬件描述符的相应数值相等的数值,则认证USB设备802为非法设备;否则认证USB设备802为合法设备。
认证数据具体为USB设备802的硬件描述符;USB设备控制使用列表中存储可合法使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
相应的,认证设备803具体包括:
接收模块,用于接收过滤驱动发送的列表获得消息;
加密发送模块,用于使用预定的加密算法将USB设备控制使用列表进行加密后发送给过滤驱动;
计算机801的过滤驱动还包括:
解密单元,用于使用预定的解密算法解密得到USB设备控制使用列表;
计算单元,用于使用预设的算法对硬件描述符进行计算,得到USB设备802的硬件描述符的相应数值;
枚举单元,用于枚举过滤驱动中解密得到的USB设备控制使用列表中的可合法使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
判定单元,用于如果枚举的相应数值中存在与USB设备802的硬件描述符的相应数值相等的数值,则判定USB设备802为合法设备;否则判定USB设备802为非法设备。
认证数据具体为USB设备802的硬件描述符;USB设备控制使用列表中存储不可使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
相应的,认证设备803具体包括:
接收模块,用于接收过滤驱动发送的列表获得消息;
加密发送模块,用于使用预定的加密算法将USB设备控制使用列表进行加密后发送给过滤驱动;
计算机801的过滤驱动还包括:
解密单元,用于使用预定的解密算法解密得到USB设备控制使用列表;
计算单元,用于使用预设的算法对硬件描述符进行计算,得到USB设备802的硬件描述符的相应数值;
枚举单元,用于枚举过滤驱动中解密得到的USB设备控制使用列表中的不可使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
判定单元,用于如果枚举的相应数值中存在与USB设备802的硬件描述符的相应数值相等的数值,则判定USB设备802为非法设备;否则判定USB设备802为合法设备。
认证数据具体为USB设备802的硬件描述符;USB设备控制使用列表中存储可合法使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
相应的,认证设备803具体包括:
接收模块,用于接收到过滤驱动通过USB总线驱动发送的USB设备802的硬件描述符;
计算模块,用于在认证设备803内部结合预设的算法对硬件描述符进行计算,得到USB设备802的硬件描述符的相应数值;
枚举模块,用于枚举USB设备控制使用列表中存储的可合法使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
判断模块,用于判断枚举的相应数值中是否存在与USB设备802的硬件描述符的相应数值相等的数值;
发送模块,用于将判断结果发送给过滤驱动;
相应的,计算机801的过滤驱动还包括:
判定单元,用于当判断结果为存在时,判定USB设备802合法;当判断结果为不存在时,判定USB设备802为非法设备。
认证数据具体为USB设备802的硬件描述符;USB设备控制使用列表中存储不可使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
相应的,认证设备803具体包括:
接收模块,用于接收过滤驱动通过USB总线驱动发送的USB设备802的硬件描述符;
计算模块,用于在认证设备803内部结合预设的算法对硬件描述符进行计算,得到USB设备802的硬件描述符的相应数值;
枚举模块,用于枚举USB设备控制使用列表中存储的不可使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
判断模块,用于判断枚举的相应数值中是否存在与USB设备802的硬件描述符的相应数值相等的数值;
发送模块,用于将判断结果发送给过滤驱动;
相应的,计算机801的过滤驱动还包括:
判定单元,用于当判断结果为存在时,判定USB设备802为非法设备;当判断结果为不存在时,判定USB设备802为合法设备。
本发明实施例提供了一种计算机对USB设备进行访问的控制系统,通过预置了缺省访问控制列表的过滤驱动与预置了USB设备控制使用列表的认证设备共同完成对接入计算机的USB设备的合法性的认证,从而控制了计算机对USB设备的访问,解决了USB设备与计算机的交互过程中的不安全问题。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (23)

1.一种计算机对USB设备进行访问的控制方法,其特征在于,所述方法包括:
计算机加载过滤驱动,所述过滤驱动中预置缺省访问控制列表,所述过滤驱动位于所述计算机的即插即用管理器和USB总线驱动之间;
USB设备与所述计算机建立连接,所述USB总线驱动为所述USB设备创建设备对象指针,并存储所述设备对象指针;
所述过滤驱动根据所述缺省访问控制列表,判断所述USB设备是否为缺省访问设备;
如果是,所述过滤驱动发送所述USB设备的连接关系给所述计算机的即插即用管理器;
如果否,所述过滤驱动判断认证设备是否与所述计算机建立连接,
如果是,所述过滤驱动拦截所述计算机的即插即用管理器与所述USB总线驱动之间的交互数据,根据所述交互数据中的认证数据,所述过滤驱动与所述认证设备共同完成对所述USB设备是否为合法设备的验证,当所述USB设备为合法设备时,所述过滤驱动发送所述交互数据中的所述USB设备的连接关系数据给所述即插即用管理器,并保存所述连接关系数据;当所述USB设备为非法设备时,所述过滤驱动发送上一次保存的合法连接关系数据给所述即插即用管理器;
如果否,所述过滤驱动发送清空后的连接关系数据给所述即插即用管理器。
2.如权利要求1所述的方法,其特征在于,所述缺省访问控制列表用于存储可缺省访问所述计算机的缺省访问设备;
相应的,所述过滤驱动根据所述缺省访问控制列表,判断所述USB设备是否为缺省访问设备,具体包括:
当所述缺省访问控制列表中存在所述USB设备时,所述USB设备为缺省访问设备;
当所述缺省访问控制列表中不存在所述USB设备时,所述USB设备为非缺省访问设备。
3.如权利要求1所述的方法,其特征在于,所述缺省访问控制列表用于存储不可缺省访问所述计算机的缺省访问设备;
相应的,所述过滤驱动根据所述缺省访问控制列表,判断所述USB设备是否为缺省访问设备,具体包括:
当所述缺省访问控制列表中存在所述USB设备时,所述USB设备为非缺省访问设备;
当所述缺省访问控制列表中不存在所述USB设备时,所述USB设备为缺省访问设备。
4.如权利要求1所述的方法,其特征在于,所述过滤驱动判断认证设备是否与所述计算机建立连接,具体包括:
所述过滤驱动向与所述计算机建立连接的全部USB设备的设备对象指针发送私有命令,所述设备对象指针为USB设备与所述计算机建立连接时所述USB总线驱动创建的;
接收所述设备对象指针返回的数值;
判断所述返回的数值是否与所述过滤驱动中预置的数值相匹配;
如果匹配,则判断结果为是;
如果不匹配,则判断结果为否。
5.如权利要求1所述的方法,其特征在于,所述过滤驱动拦截所述计算机的即插即用管理器与所述USB总线驱动之间的交互数据,具体包括:
所述过滤驱动拦截所述计算机的即插即用管理器下发的数据请求包,并将所述数据请求包转发给所述USB总线驱动;
所述过滤驱动拦截所述USB总线驱动返回的所述USB设备的连接关系数据。
6.如权利要求5所述的方法,其特征在于,所述认证数据具体为所述USB设备的硬件描述符;
所述硬件描述符的获得过程具体为:
所述过滤驱动将拦截到的所述USB设备的连接关系数据与其保存的连接关系数据相比较;
当存在新接入所述计算机的USB设备时,所述过滤驱动向所述USB总线驱动发送获取新接入USB端口的USB设备的硬件描述符信息,并接收所述USB总线驱动返回的所述USB设备的硬件描述符。
7.如权利要求6所述的方法,其特征在于,所述认证设备中预置USB设备控制使用列表,所述USB设备控制使用列表用于存储可合法使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
相应的,所述根据所述交互数据中的认证数据,所述过滤驱动与所述认证设备共同完成对所述USB设备是否为合法设备的验证,具体包括:
所述认证设备接收到所述过滤驱动通过所述USB总线驱动发送的所述USB设备的硬件描述符;
在所述认证设备内,结合预设的算法对所述硬件描述符进行计算,得到所述USB设备的硬件描述符的相应数值;
枚举所述认证设备中预置的所述可合法使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
如果所述枚举的相应数值中存在与所述USB设备的硬件描述符的相应数值相等的数值,则所述USB设备为合法设备;否则所述USB设备为非法设备。
8.如权利要求6所述的方法,其特征在于,所述认证设备中预置USB设备控制使用列表,所述USB设备控制使用列表用于存储不可使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
相应的,所述根据所述交互数据中的认证数据,所述过滤驱动与所述认证设备共同完成对所述USB设备是否为合法设备的验证,具体包括:
所述认证设备接收到所述过滤驱动通过所述USB总线驱动发送的所述USB设备的硬件描述符;
在所述认证设备内,结合预设的算法对所述硬件描述符进行计算,得到所述USB设备的硬件描述符的相应数值;
枚举所述认证设备中预置的所述不可使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
如果所述枚举的相应数值中存在与所述USB设备的硬件描述符的相应数值相等的数值,则所述USB设备为非法设备;否则所述USB设备为合法设备。
9.如权利要求6所述的方法,其特征在于,所述认证设备中预置USB设备控制使用列表,所述USB设备控制使用列表用于存储可合法使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
相应的,所述根据所述交互数据中的认证数据,所述过滤驱动与所述认证设备共同完成对所述USB设备是否为合法设备的验证,具体包括:
所述认证设备接收所述过滤驱动发送的列表获得消息;
所述认证设备使用预定的加密算法将所述USB设备控制使用列表进行加密后发送给所述过滤驱动;
所述过滤驱动使用预定的解密算法解密得到所述USB设备控制使用列表;
所述过滤驱动使用预设的算法对所述硬件描述符进行计算,得到所述USB设备的硬件描述符的相应数值;
枚举所述过滤驱动中解密得到的所述USB设备控制使用列表中的可合法使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
如果所述枚举的相应数值中存在与所述USB设备的硬件描述符的相应数值相等的数值,则所述USB设备为合法设备;否则所述USB设备为非法设备。
10.如权利要求6所述的方法,其特征在于,所述认证设备中预置USB设备控制使用列表,所述USB设备控制使用列表用于存储不可使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
相应的,所述根据所述交互数据中的认证数据,所述过滤驱动与所述认证设备共同完成对所述USB设备是否为合法设备的验证,具体包括:
所述认证设备接收所述过滤驱动发送的列表获得消息;
所述认证设备使用预定的加密算法将所述USB设备控制使用列表进行加密后发送给所述过滤驱动;
所述过滤驱动使用预定的解密算法解密得到所述USB设备控制使用列表;
所述过滤驱动使用预设的算法对所述硬件描述符进行计算,得到所述USB设备的硬件描述符的相应数值;
枚举所述过滤驱动中解密得到的所述USB设备控制使用列表中的不可使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
如果所述枚举的相应数值中存在与所述USB设备的硬件描述符的相应数值相等的数值,则所述USB设备为非法设备;否则所述USB设备为合法设备。
11.如权利要求6所述的方法,其特征在于,所述认证设备中预置USB设备控制使用列表,所述USB设备控制使用列表用于存储可合法使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
相应的,所述根据所述交互数据中的认证数据,所述过滤驱动与所述认证设备共同完成对所述USB设备是否为合法设备的验证,具体包括:
所述认证设备接收到所述过滤驱动通过所述USB总线驱动发送的所述USB设备的硬件描述符;
在所述认证设备内,结合预设的算法对所述硬件描述符进行计算,得到所述USB设备的硬件描述符的相应数值;
枚举所述认证设备中预置的所述可合法使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
判断所述枚举的相应数值中是否存在与所述USB设备的硬件描述符的相应数值相等的数值;
将判断结果发送给所述过滤驱动;
当所述判断结果为存在时,所述过滤驱动判定所述USB设备为合法设备;
当所述判断结果为不存在时,所述过滤驱动判定所述USB设备为非法设备。
12.如权利要求6所述的方法,其特征在于,所述认证设备中预置USB设备控制使用列表,所述USB设备控制使用列表用于存储不可使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
相应的,所述根据所述交互数据中的认证数据,所述过滤驱动与所述认证设备共同完成对所述USB设备是否为合法设备的验证,具体包括:
所述认证设备接收到所述过滤驱动通过所述USB总线驱动发送的所述USB设备的硬件描述符;
在所述认证设备内,结合预设的算法对所述硬件描述符进行计算,得到所述USB设备的硬件描述符的相应数值;
枚举所述认证设备中预置的所述不可使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
判断所述枚举的相应数值中是否存在与所述USB设备的硬件描述符的相应数值相等的数值;
将判断结果发送给所述过滤驱动;
当所述判断结果为存在时,所述过滤驱动判定所述USB设备为非法设备;
当所述判断结果为不存在时,所述过滤驱动判定所述USB设备为合法设备。
13.一种计算机对USB设备进行访问的控制系统,其特征在于,所述系统包括:计算机、USB设备和认证设备;所述计算机包括:加载模块、连接模块和过滤驱动;
所述加载模块用于加载所述过滤驱动,所述过滤驱动中预置缺省访问控制列表,所述过滤驱动位于所述计算机的即插即用管理器和USB总线驱动之间;
所述连接模块用于所述USB设备与所述计算机建立连接,其中,所述USB设备与所述计算机建立连接时,所述USB总线驱动为所述USB设备创建设备对象指针,并存储所述设备对象指针;
所述过滤驱动包括:
缺省验证单元,用于根据所述缺省访问控制列表,判断所述USB设备是否为缺省访问设备;
发送单元,用于当所述缺省验证单元的结果为是时,发送所述USB设备的连接关系给所述计算机的即插即用管理器;
判断单元,用于当所述缺省验证单元的结果为否时,判断认证设备是否与所述计算机建立连接;
拦截单元,用于当所述判断单元的结果为是时,拦截所述计算机的即插即用管理器与所述USB总线驱动之间的交互数据;
验证单元,用于根据所述交互数据中的认证数据,与所述认证设备共同完成对所述USB设备是否为合法设备的验证,所述认证设备预置USB设备控制使用列表;
相应的,所述发送单元还用于,当所述USB设备为合法设备时,发送所述交互数据中的所述USB设备的连接关系数据给所述即插即用管理器,并保存所述连接关系数据;当所述USB设备为非法设备时,发送所述过滤驱动上一次保存的连接关系数据给所述即插即用管理器;
所述发送单元还用于,当所述判断单元的结果为否时,发送清空后的连接关系数据给所述即插即用管理器。
14.如权利要求13所述的系统,其特征在于,所述缺省访问控制列表用于存储可缺省访问所述计算机的缺省访问设备;
相应的,所述缺省验证单元具体包括:
第一子单元,用于当所述缺省访问控制列表中存在所述USB设备时,判断所述USB设备为缺省访问设备;
第二子单元,用于当所述缺省访问控制列表中不存在所述USB设备时,判断所述USB设备为非缺省访问设备。
15.如权利要求13所述的系统,其特征在于,所述缺省访问控制列表用于存储不可缺省访问所述计算机的缺省访问设备;
相应的,所述缺省验证单元具体包括:
第一子单元,用于当所述缺省访问控制列表中存在所述USB设备时,判断所述USB设备为非缺省访问设备;
第二子单元,用于当所述缺省访问控制列表中不存在所述USB设备时,判断所述USB设备为缺省访问设备。
16.如权利要求13所述的系统,其特征在于,所述判断单元包括:
发送子单元,用于向与所述计算机建立连接的全部USB设备的设备对象指针发送私有命令,所述设备对象指针为USB设备与所述计算机建立连接时所述USB总线驱动创建的;
接收子单元,用于接收所述设备对象指针返回的数值;
判断子单元,用于判断所述返回的数值是否与所述过滤驱动中预置的数值相匹配;
如果匹配,则判断结果为是;
如果不匹配,则判断结果为否。
17.如权利要求13所述的系统,其特征在于,所述拦截单元具体包括:
第一拦截子单元,用于拦截所述计算机的即插即用管理器下发的数据请求包;
第一转发子单元,用于将所述数据请求包转发给所述USB总线驱动;
第二拦截子单元,用于拦截所述USB总线驱动返回的所述USB设备的连接关系数据。
18.如权利要求13所述的系统,其特征在于,所述认证数据具体为所述USB设备的硬件描述符;所述USB设备控制使用列表中存储的是可合法使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
相应的,所述认证设备具体包括:
接收模块,用于接收所述过滤驱动通过所述USB总线驱动发送的所述USB设备的硬件描述符;
计算模块,用于在所述认证设备内部结合预设的算法对所述硬件描述符进行计算,得到所述USB设备的硬件描述符的相应数值;
枚举模块,用于枚举所述USB设备控制使用列表中存储的所述可合法使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
认证模块,用于如果所述枚举的相应数值中存在与所述USB设备的硬件描述符的相应数值相等的数值,则认证所述USB设备合法;否则认证所述USB设备为非法设备。
19.如权利要求13所述的系统,其特征在于,所述认证数据具体为所述USB设备的硬件描述符;所述USB设备控制使用列表中存储的是不可使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
相应的,所述认证设备具体包括:
接收模块,用于接收所述过滤驱动通过所述USB总线驱动发送的所述USB设备的硬件描述符;
计算模块,用于在所述认证设备内部结合预设的算法对所述硬件描述符进行计算,得到所述USB设备的硬件描述符的相应数值;
枚举模块,用于枚举所述USB设备控制使用列表中存储的所述不可使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
认证模块,用于如果所述枚举的相应数值中存在与所述USB设备的硬件描述符的相应数值相等的数值,则认证所述USB设备为非法设备;否则认证所述USB设备为合法设备。
20.如权利要求13所述的系统,其特征在于,所述认证数据具体为所述USB设备的硬件描述符;所述USB设备控制使用列表中存储可合法使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
相应的,所述认证设备具体包括:
接收模块,用于接收所述过滤驱动发送的列表获得消息;
加密发送模块,用于使用预定的加密算法将所述USB设备控制使用列表进行加密后发送给所述过滤驱动;
所述计算机的过滤驱动还包括:
解密单元,用于使用预定的解密算法解密出所述USB设备控制使用列表;
计算单元,用于使用预设的算法对所述硬件描述符进行计算,得到所述USB设备的硬件描述符的相应数值;
枚举单元,用于枚举所述过滤驱动中解密出的所述USB设备控制使用列表中的可合法使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
判定单元,用于如果所述枚举的相应数值中存在与所述USB设备的硬件描述符的相应数值相等的数值,则判定所述USB设备为合法设备;否则判定所述USB设备为非法设备。
21.如权利要求13所述的系统,其特征在于,所述认证数据具体为所述USB设备的硬件描述符;所述USB设备控制使用列表中存储不可使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
相应的,所述认证设备具体包括:
接收模块,用于接收所述过滤驱动发送的列表获得消息;
加密发送模块,用于使用预定的加密算法将所述USB设备控制使用列表进行加密后发送给所述过滤驱动;
所述计算机的过滤驱动还包括:
解密单元,用于使用预定的解密算法解密出所述USB设备控制使用列表;
计算单元,用于使用预设的算法对所述硬件描述符进行计算,得到所述USB设备的硬件描述符的相应数值;
枚举单元,用于枚举所述过滤驱动中解密出的所述USB设备控制使用列表中的不可使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
判定单元,用于如果所述枚举的相应数值中存在与所述USB设备的硬件描述符的相应数值相等的数值,则判定所述USB设备为非法设备;否则判定所述USB设备为合法设备。
22.如权利要求13所述的系统,其特征在于,所述认证数据具体为所述USB设备的硬件描述符;所述USB设备控制使用列表中存储可合法使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
相应的,所述认证设备具体包括:
接收模块,用于接收所述过滤驱动通过所述USB总线驱动发送的所述USB设备的硬件描述符;
计算模块,用于在所述认证设备内部结合预设的算法对所述硬件描述符进行计算,得到所述USB设备的硬件描述符的相应数值;
枚举模块,用于枚举所述USB设备控制使用列表中存储的所述可合法使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
判断模块,用于判断所述枚举的相应数值中是否存在与所述USB设备的硬件描述符的相应数值相等的数值;
发送模块,用于将判断结果发送给所述过滤驱动;
相应的,所述计算机的过滤驱动还包括:
判定单元,用于当所述判断结果为存在时,判定所述USB设备合法;当所述判断结果为不存在时,判定所述USB设备为非法设备。
23.如权利要求13所述的系统,其特征在于,所述认证数据具体为所述USB设备的硬件描述符;所述USB设备控制使用列表中存储不可使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
相应的,所述认证设备具体包括:
接收模块,用于接收所述过滤驱动通过所述USB总线驱动发送的所述USB设备的硬件描述符;
计算模块,用于在所述认证设备内部结合预设的算法对所述硬件描述符进行计算,得到所述USB设备的硬件描述符的相应数值;
枚举模块,用于枚举所述USB设备控制使用列表中存储的所述不可使用的USB设备的硬件描述符通过预设算法计算得到的相应数值;
判断模块,用于判断所述枚举的相应数值中是否存在与所述USB设备的硬件描述符的相应数值相等的数值;
发送模块,用于将判断结果发送给所述过滤驱动;
相应的,所述计算机的过滤驱动还包括:
判定单元,用于当所述判断结果为存在时,判定所述USB设备为非法设备;当所述判断结果为不存在时,判定所述USB设备为合法设备。
CN200910085695.7A 2009-05-27 2009-05-27 一种计算机对usb设备进行访问的控制方法和系统 Expired - Fee Related CN101593252B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910085695.7A CN101593252B (zh) 2009-05-27 2009-05-27 一种计算机对usb设备进行访问的控制方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910085695.7A CN101593252B (zh) 2009-05-27 2009-05-27 一种计算机对usb设备进行访问的控制方法和系统

Publications (2)

Publication Number Publication Date
CN101593252A CN101593252A (zh) 2009-12-02
CN101593252B true CN101593252B (zh) 2015-04-15

Family

ID=41407904

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910085695.7A Expired - Fee Related CN101593252B (zh) 2009-05-27 2009-05-27 一种计算机对usb设备进行访问的控制方法和系统

Country Status (1)

Country Link
CN (1) CN101593252B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102081541A (zh) * 2011-01-21 2011-06-01 青岛海信移动通信技术股份有限公司 一种usb设备驱动安装方法及装置
CN102737174A (zh) * 2011-09-23 2012-10-17 新奥特(北京)视频技术有限公司 一种数据安全防控中的数据合法性验证的方法及系统
CN102760104B (zh) * 2012-06-25 2015-07-08 成都卫士通信息产业股份有限公司 一种usb设备控制方法
CN104462940B (zh) * 2013-09-18 2018-01-19 国家电网公司 计算机usb接口的监控方法和装置
CN105335661B (zh) * 2015-09-25 2018-04-03 北京北信源软件股份有限公司 基于usb接口粒度的usb设备监控方法及装置
CN105160260B (zh) * 2015-10-20 2018-10-12 国网江西省电力公司南昌供电分公司 可鉴别是否是已认证移动存储介质的装置
CN105718361B (zh) * 2015-11-06 2021-02-02 哈尔滨安天科技集团股份有限公司 一种设备行为记录系统及方法
CN114139226A (zh) * 2021-11-30 2022-03-04 北京博衍思创信息科技有限公司 Usb设备接入控制方法、装置及电子设备
CN114861158A (zh) * 2022-05-09 2022-08-05 深圳市广和通无线通信软件有限公司 安全认证方法、装置、系统、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101211651A (zh) * 2007-12-21 2008-07-02 北京飞天诚信科技有限公司 一种usb状态限制设备及其使用方法
CN100419719C (zh) * 2006-07-05 2008-09-17 北京飞天诚信科技有限公司 利用过滤驱动程序结合智能密钥装置自动保护u盘的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100419719C (zh) * 2006-07-05 2008-09-17 北京飞天诚信科技有限公司 利用过滤驱动程序结合智能密钥装置自动保护u盘的方法
CN101211651A (zh) * 2007-12-21 2008-07-02 北京飞天诚信科技有限公司 一种usb状态限制设备及其使用方法

Also Published As

Publication number Publication date
CN101593252A (zh) 2009-12-02

Similar Documents

Publication Publication Date Title
CN101593252B (zh) 一种计算机对usb设备进行访问的控制方法和系统
CN101561855B (zh) 一种计算机对usb设备进行访问的控制方法和系统
KR100861104B1 (ko) 유에스비 키보드의 보안장치 및 그 방법
CN104320389B (zh) 一种基于云计算的融合身份保护系统及方法
JP2008522279A (ja) アクセスが制御される仮想ディスク間のオンラインによるデータのセキュリティ伝送システムおよび、これを通じたセキュリティ伝送方法
CN106575342A (zh) 包括关系数据库的内核程序、以及用于执行所述程序的方法和装置
CN105354479A (zh) 一种基于u盘鉴权的固态硬盘及数据隐藏方法
CN101345619A (zh) 基于生物特征和移动密钥的电子数据保护方法及装置
WO2014199197A1 (en) A method, system and product for securely storing data files at a remote location by splitting and reassembling said files
CN100419620C (zh) 一种usb海量存储设备上应用程序与usb海量存储设备进行命令交互和双向数据传输的方法
CN105184179A (zh) 嵌入式加密移动存储设备及其操作方法
CN102521165A (zh) 安全优盘及其识别方法和装置
CN100385860C (zh) 一种保障存储网络数据安全的方法及装置
CN105279453B (zh) 一种支持分离存储管理的文件分区隐藏系统及其方法
CN104636682A (zh) 一种基于硬件设备的密码管理系统及方法
CN102799831A (zh) 基于数据库的应用系统信息安全保护系统及信息安全保护方法
KR102356474B1 (ko) 클라우드 서비스 기반의 원격통제 기능이 탑재된 스마트워크 지원시스템
CN110543775B (zh) 一种基于超融合理念的数据安全防护方法及系统
CN101420299B (zh) 提高智能密钥设备稳定性的方法和智能密钥设备
CN108399341B (zh) 一种基于移动端的Windows双重文件管控系统
CN103824014A (zh) 一种局域网内的usb端口设备的隔离认证及监控方法
CN101271507B (zh) 一种基于usb设备的文件隐藏的方法、系统及装置
CN100571123C (zh) 用于实现应用系统与安全芯片进行交互的装置及方法
CN101291345A (zh) 存储资源访问控制方法、ip存储系统、存储设备和主机
CN104123371A (zh) 基于分层文件系统的Windows内核文件透明过滤的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150415