一种基于传输延时特征的USB设备识别认证方法

专利2025-04-19  8


本发明属于设备认证,具体涉及一种基于传输延时特征的usb设备识别认证方法。


背景技术:

1、基于传输延时特征的usb设备识别认证是一种基于时间特征的新型设备认证方法,适用于u盘、移动硬盘、键盘和鼠标等usb设备。当usb设备接入主机时,主机会检测新设备的插入,并对插入的usb设备进行设备枚举,确定设备的类型、功能和规格。一旦设备枚举完成,主机和usb设备之间就可以进行数据传输,包括读取和写入数据。在usb设备枚举阶段,由于不同usb设备的自身硬件属性,如制造厂商、设备型号等不同,其设备枚举的时间特征会有所不同;在usb数据传输阶段,由于usb设备间物理属性和文件存储结构的差异,对usb设备的读取操作也会存在相应的时序特征。使用工具测量usb设备与主机间所有通信传输的时间,可以形成一个对于某个特定usb设备的独一无二的指纹,从而实现usb设备的身份识别和认证。

2、目前已经存在了很多针对usb设备的认证方法,考虑到安全性、成本、便利性、复杂性等因素,现有的技术存在着一些短板。基于用户名和口令的身份认证方式要求用户在连接usb设备时输入用户名、密码或口令,但是用户名和口令很容易外泄或者通过技术手段获取,安全性不高,同时,输入用户名和口令对usb设备的使用便利性存在影响;基于生物特征识别技术的身份认证方式利用人类生物特征的唯一性,比如指纹、静脉等唯一的人类特征,但是生物特征识别usb设备的探索较少,技术不成熟,且实施成本昂贵;基于设备特征的身份认证方式利用usb设备本身的特征信息例如设备的产品id、序列号等进行认证,这种方法依赖于设备本身的信息,但这些信息可以被伪造或篡改,安全性不高;基于高级硬件的身份认证方式利用全新的高级硬件,如硬件加密模块、安全芯片等来确保usb设备的身份认证和安全性,这些硬件可以提供更高级别的安全保障,但也增加了成本和复杂性。

3、上述方法中,usb设备的认证或是利用了用户的主动交互,对usb设备使用的便利性有影响,或是利用了设备本身的硬件特征,或是利用了昂贵复杂的高级硬件和生物识别技术,无法同时在保证安全性的同时减少成本。

4、当然目前存在一种从时间维度上对usb设备进行识别认证的方案,具体方案的实现细节如下所示:

5、time-print的设计和实现:time-print扩展usb驱动程序,通过scsi命令在usb设备上随机选择的块上生成许多额外的读取操作,然后测量这些读取操作的计时信息。time-print的过程包括四个步骤,即:1、进行精确的时序测量;2、对usb闪存驱动器进行运算生成时序配置文件;3、对时序配置文件进行预处理;4、根据时序配置文件进行分类,以进行设备接受/拒绝。

6、具体来讲,time-print通过扩展usb驱动程序,在usb驱动程序中,使用usb_store_msg_common函数,负责发送命令报文和接收状态报文,usb_stor_bulk_transfer_sglist函数负责接收设备发送的实际数据。为了对这些事务执行精确的计时测量,time-print利用了一个低开销和高粒度的计时源,即cpu时间戳计数器(tsc),在每个事务之前和之后都使用内置的内核函数rdtsc()来记录执行每个通信所需的精确时间。有了收集到的计时信息,time-print进一步为这个计时信息集成了一个低开销的存储和报告组件。该组件修改usb驱动程序以保持驱动器的连续时序信息流,增加了usb存储头中的us_data结构,以包含数组来跟踪每个事务的命令操作码、大小、地址和tsc值。同时,为了传输时间值并记录它们,time-print在usb存储驱动程序中实现了一个字符设备,以将时间信息传输到用户空间以进行进一步处理。通过按大小和偏移量分组的计时信息,利用机器学习为每个设备创建指纹。基于训练过的指纹,time-print可以拒绝或接受设备,完成设备的识别和认证。

7、当前从时间维度对usb设备进行识别的方法处于理论和实验阶段,存在着一些缺点:

8、(1)及时性不足:time-print在usb设备枚举完成后,通过在驱动程序中对设备的不同块地址进行读取,完成身份的创建。这一认证过程可以在2-3秒内完成,已经具备了较高的效率。但是,一旦usb设备被枚举完成,就可以与主机进行数据的传输,有可能会对主机进行攻击。time-print的认证发现仍然不够及时,需要考虑更早连接阶段的认证。

9、(2)制作成本高:当time-print用作身份认证的块地址被写入时,其指纹会受到影响。对此,time-print给出的方案是使用lba预留或者制作厂商支持,使得用于身份认证的地址不可以被写入,而这一方案需要对usb设备的硬件属性进行修改或限制,需要较高的成本。

10、(3)可移植性较差,无法广泛投入应用:time-print通过扩展usb驱动程序,在内核中进行指纹的采集工作,涉及到了操作系统内核源码的修改,操作较为复杂,且部署效率低,可移植性较差,更新调试不便,无法进行广泛部署。


技术实现思路

1、为了解决现有技术中存在的上述问题,本发明提供了一种基于传输延时特征的usb设备识别认证方法。本发明要解决的技术问题通过以下技术方案实现:

2、本发明提供了一种基于传输延时特征的usb设备识别认证方法包括:

3、s100,获取任一usb设备接入时产生的通信数据包;

4、s200,从所述通信数据包中分别提取出枚举时间序列和读取时间序列;

5、s300,分别构建所述枚举时间序列的身份信息和读取时间序列的身份信息;

6、s400,依次对所述枚举时间序列的身份信息和读取时间序列的身份信息分别作身份认证,如果认证成功,则对所述usb设备不进行操作,如果认证失败则对所述usb进行弹出操作。

7、有益效果:

8、(1)及时性更高:本发明对usb设备的认证包括两个阶段,枚举阶段和读取阶段。在枚举阶段可以利用枚举时间序列对不同型号的usb设备进行区分,对相同型号的usb设备则进入第二步,利用读取时间序列作认证。在usb设备不同的情况下,本发明对usb身份的认证更为及时,而在usb设备型号相同的情况下,本发明的认证速度也和已有的time-print相近。

9、(2)成本更低:本发明考虑了文件存储情况对usb设备的读取指纹的稳定性影响,解决了time-print的硬件属性限制以及time-print通过lba预定或者制造厂商支持来实现指纹的稳定,这一操作需要对usb设备的硬件属性进行调整设计。而本发明将文件存储的动态变化考虑在内,可以通过重新连接usb设备的方式来更新设备身份信息,无须对硬件设备加以改动,大幅节约了成本。

10、(3)具备更强的可移植性,适用于工程实践:本发明通过监听usb设备与主机通信的数据包收集时间信息,相比于time-print修改了usb设备的驱动程序,实现思路更加便捷,减少了部署和调试的时间成本。同时,基于软件实现的usb认证方法,相较于time-print,具有更强的可移植性,适合大范围推广使用。

11、以下将结合附图及实施例对本发明做进一步详细说明。


技术特征:

1.一种基于传输延时特征的usb设备识别认证方法,其特征在于,包括:

2.根据权利要求1所述的基于传输延时特征的usb设备识别认证方法,其特征在于,s200包括:

3.根据权利要求1所述的基于传输延时特征的usb设备识别认证方法,其特征在于,所述枚举时间序列的身份信息包括主机获取usb设备电气属性的时间和主机获取usb设备的设备信息时间。

4.根据权利要求1所述的基于传输延时特征的usb设备识别认证方法,其特征在于,s300中构建所述读取时间序列的身份信息包括:

5.根据权利要求1所述的基于传输延时特征的usb设备识别认证方法,其特征在于,在s400之前,所述基于传输延时特征的usb设备识别认证方法还包括:

6.根据权利要求1所述的基于传输延时特征的usb设备识别认证方法,其特征在于,s400包括:

7.根据权利要求6所述的基于传输延时特征的usb设备识别认证方法,其特征在于,所述将所述枚举时间序列的身份信息与数据库中存在的身份信息作匹配,匹配成功,再将读取时间序列的身份信息与数据库中存在的身份信息作匹配,如果匹配成功则表示认证成功,对所述usb设备不进行操作,如果匹配失败则表示认证失败,对所述usb进行弹出操作包括:

8.根据权利要求1所述的基于传输延时特征的usb设备识别认证方法,其特征在于,在s400之前,所述基于传输延时特征的usb设备识别认证方法还包括:

9.根据权利要求1所述的基于传输延时特征的usb设备识别认证方法,其特征在于,在s400之前,所述基于传输延时特征的usb设备识别认证方法还包括:


技术总结
本发明提供了一种基于传输延时特征的USB设备识别认证方法,通过监听USB设备与主机连接后的通信传输数据包,测量USB设备与主机间所有通信传输的时间,在USB设备的枚举完成前后都进行了设备的身份认证,对不同型号的USB设备,可以在枚举完成前发现并区分,提高了认证的及时性;本发明考虑了文件存储对读取时间的影响,解决了Time‑Print需要硬件设备支持的缺陷,并提供了动态更新身份信息的方案,降低了成本;本发明无需修改操作系统的底层代码,而是使用工具测量USB设备与主机间所有通信传输的时间,基于软件实现的USB时序监控,增加了本发明的可移植性,适用于工程实践。

技术研发人员:张志为,傅镐哲,朱洪勇,汤贵源,沈玉龙,习宁
受保护的技术使用者:西安电子科技大学
技术研发日:
技术公布日:2024/6/26
转载请注明原文地址:https://doc.8miu.com/read-1818844.html

最新回复(0)