一种基于Linux内核层实现的USB设备管控方法与系统与流程

文档序号:23220238发布日期:2020-12-08 15:02阅读:231来源:国知局
一种基于Linux内核层实现的USB设备管控方法与系统与流程

本发明涉及usb设备管控技术领域,特别是涉及一种基于linux内核层实现的usb设备管控方法与系统。



背景技术:

usb设备是当下最常用的可移动接口设备,其类型多种多样,几乎涵盖所有的可移动类型设备,易用性和多样性的特征使其成为当下最有可能造成数据泄露的外接设备,同时也就成为保密行业重点管控的设备类型。

usb设备的管控分为两种类型,一种是usb设备插入主机后背管控策略放行或阻断,另一种是正在被使用的usb设备被新管控策略放行或者禁用。通常情况下,usb设备的阻断和禁用才是保密行业重点关注的管控操作,针对linux平台,亦是如此。而现有技术中,对于usb的管控容易出现数据泄露的问题,不能做到安全的有效防护。



技术实现要素:

本发明的目的是提供一种基于linux内核层实现的usb设备管控方法与系统,旨在解决现有技术中usb设备数据泄露的问题,实现构建安全封闭的usb连接,解决因usb接口引入的安全隐患。

为达到上述技术目的,本发明提供了一种基于linux内核层实现的usb设备管控方法,所述方法包括以下操作:

s1、主机端与设备端之间进行认证密钥协商;

s2、接入集线器驱动,创建usb设备对象,通过集线器驱动程序与设备端进行握手,进行密钥协商的认证,当认证成功后,标识认证完成状态;

s3、接入usb设备框架驱动,对设备控制器进行配置,与主机端进行密钥协商,当认证成功后,标识认证完成状态;

s4、当usb设备对象与usb设备框架驱动均为认证完成状态后,进行usb传输。

优选地,所述认证密钥协商具体包括:向设备端发送控制请求、传输控制请求相关的数据以及向主机端发送控制请求结果。

优选地,所述步骤s2具体为:

集线器驱动程序检测到设备端接入集线器下行端口,为之创建usb设备对象,并通过复位、设置设备地址操作使设备进入地址状态;

集线器驱动程序使用标准设备请求与设备进行数次握手,完成认证密钥协商过程;

若认证通过,将会话密钥写入usb设备对象,并设置认证完成状态,集线器驱动程序继续收集设备信息,直至将usb设备对象添加到系统中,usb设备成功接入主机;若认证未通过,主机端集线器驱动程序释放该设备对象及相关资源,并临时禁用设备所连接的集线器端口,usb设备接入失败。

优选地,所述步骤s3具体为:

设备上电后,usb设备框架驱动对设备控制器进行配置,完成芯片初始化工作;

响应部分usb标准设备请求;

使用标准设备请求与主机进行认证密钥协商,若认证通过则记录会话密钥,并设置认证完成状态,此后使能其他请求的响应,usb设备框架驱动继续响应其他设备请求,完成设备配置,向功能单元提供端点访问服务,主机端成功连接usb设备;若认证未通过,禁用usb设备控制器,断开usb连接。

本发明还提供了一种基于linux内核层实现的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为本发明实施例中所提供的一种基于linux内核层实现的usb设备管控方法流程图;

图2为本发明实施例中所提供的一种基于linux内核层实现的usb设备管控系统框图。

具体实施方式

为了能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。

下面结合附图对本发明实施例所提供的一种基于linux内核层实现的usb设备管控方法与系统进行详细说明。

如图1所示,本发明实施例公开了一种基于linux内核层实现的usb设备管控方法,所述方法包括以下操作:

s1、主机端与设备端之间进行认证密钥协商;

s2、接入集线器驱动,创建usb设备对象,通过集线器驱动程序与设备端进行握手,进行密钥协商的认证,当认证成功后,标识认证完成状态;

s3、接入usb设备框架驱动,对设备控制器进行配置,与主机端进行密钥协商,当认证成功后,标识认证完成状态;

s4、当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接口引入的安全隐患。

如图2所示,本发明实施例还公开了一种基于linux内核层实现的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 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1