一种USB通信对象验证方法、系统、装置及存储介质与流程

文档序号:30946082发布日期:2022-07-30 05:16阅读:93来源:国知局
一种USB通信对象验证方法、系统、装置及存储介质与流程
一种usb通信对象验证方法、系统、装置及存储介质
技术领域
1.本技术涉及usb通信技术领域,尤其是一种usb通信对象验证方法、系统、装置及存储介质。


背景技术:

2.开发者使用usb工具下发命令给设备,能够查询设备的信息、控制设备的状态或者下载新的固件到设备中。比如在实际的生产过程中,在芯片的boot rom中加入usb通信功能,使得可以通过usb口与芯片的boot rom进行通信,完成烧录固件工作。为了提升usb通信的安全性,soc厂商一般会设计私有的usb通信协议来完成上述开发调试工作,并提供配套的usb工具。然而,攻击者可通过usb分析仪进行抓包分析,破解该私有的usb通信协议,并将该usb通信协议提供给任意第三方,进而开发出对应的usb破解工具,来控制设备完成各种非法目的,如读取保存在设备中的敏感信息以及下载恶意代码到设备中,对设备以及设备中储存的信息的构成威胁,极大地破坏设备的安全性。
3.目前,为了防止恶意第三方使用自行开发的usb工具来窃取保存在设备的信息、甚至下载窜改过的固件到设备中以彻底修改设备的行为,一方面,业内的做法通常是在数据读写和程序运行等命令运行前先对命令执行对应的检查,限制命令的效果。比如,针对数据读写命令限制实际可以读写数据的范围;针对程序运行命令,在程序运行前对程序进行安全性校验。显然,在命令执行前进行针对性检查的方法虽然可以起到一定的保护效果,但数据读写和程序运行等命令种类繁多,难以对命令进行周全的检查,并且该方法针对usb通信的数据进行限制,需要对数据进行解析,无法在保证灵活性的前提下固化验证代码到芯片中。另一方面,业内通常还对usb工具进行限制,通过验证usb工具的合法性排除恶意第三方自行开发的usb工具。然而,传统的usb工具限制方法需要引入了额外的验证芯片,增加设备的硬件成本。


技术实现要素:

4.本发明的目的在于至少一定程度上解决现有技术中存在的技术问题之一。
5.为此,本发明实施例的一个目的在于提供一种usb通信对象验证方法、系统、装置及存储介质,以实现在无需引入额外验证芯片的情况下对usb通信对象进行验证,降低了硬件成本并提高了安全性。
6.为了达到上述技术目的,本发明实施例所采取的技术方案包括:
7.第一方面,本发明实施例提供了一种usb通信对象验证方法,包括以下步骤:
8.根据第一请求生成随机数和第一指令,所述第一请求为所述通信对象发送的连接请求;
9.所述通信对象接收到所述随机数和所述第一指令后,根据所述第一指令和第一密钥对所述随机数进行加密,生成第一数据;
10.通过第二密钥对所述第一数据进行解密,生成第二数据;
11.根据所述第二数据和所述随机数生成验证结果;
12.根据所述验证结果处理第二指令,所述第二指令为所述通信对象发送的控制指令。
13.本发明实施例的一种usb通信对象验证方法,通过在处理通信对象下发的控制指令之前对通信对象进行验证,提高了设备的安全性,保护设备中存储的信息并防止设备行为被篡改;通过直接对通信对象进行验证,无需对通信对象下发的指令内容进行针对性限制,提升了灵活性;通过生成随机数并通过通信对象加密随机数、设备端解密随机数密文的方式验证通信对象,无需引入额外的硬件,降低了成本,并且每次验证过程中生成的随机数不一致,进一步提高了设备的安全性。
14.另外,根据本发明上述实施例的一种usb通信对象验证方法,还可以具有以下附加的技术特征:
15.进一步地,本发明实施例的一种usb通信对象验证方法中,在所述根据所述第一指令对所述随机数进行加密,生成第一数据步骤之前,还包括:
16.获取第二请求;
17.根据所述第二请求将所述随机数和所述第一指令发送至所述通信对象。
18.进一步地,在本发明的一个实施例中,所述验证结果包括第一结果和第二结果;
19.所述根据所述第二数据和所述随机数生成验证结果,包括:
20.判断所述第二数据与所述随机数是否一致;
21.若是,则生成所述第一结果,所述第一结果为验证通过;
22.若否,则生成所述第二结果,所述第二结果为验证不通过。
23.进一步地,在本发明的一个实施例中,所述根据所述验证结果处理第二指令,包括:
24.若所述验证结果为第一结果,则执行所述第二指令;
25.若所述验证结果为第二结果,则拒绝所述第二指令。
26.第二方面,本发明实施例提出了一种usb通信对象验证系统,包括:
27.随机数生成模块,用于根据第一请求生成随机数和第一指令;
28.解密模块,用于通过第二密钥对所述第一数据进行解密,生成第二数据;
29.验证模块,用于根据所述第二数据和所述随机数生成验证结果;
30.指令处理模块,用于根据所述验证结果处理第二指令。
31.进一步地,在本发明的一个实施例中,所述的一种usb通信对象验证系统还包括:
32.获取模块,用于获取第二请求;
33.发送模块,用于根据所述第二请求将所述随机数和所述第一指令发送至所述通信对象。
34.进一步地,在本发明的一个实施例中,所述验证结果包括第一结果和第二结果;
35.所述验证模块包括:
36.判断模块,用于判断所述第二数据与所述随机数是否一致;
37.验证结果生成模块,用于若是,则生成所述第一结果;用于若否,则生成所述第二结果。
38.进一步地,在本发明的一个实施例中,所述指令处理模块包括:
39.指令执行模块,用于若所述验证结果为第一结果,则执行所述第二指令;
40.指令拒绝模块,用于若所述验证结果为第二结果,则拒绝所述第二指令。
41.第三方面,本发明实施例提供了一种usb通信对象验证装置,包括:
42.至少一个处理器;
43.至少一个存储器,用于存储至少一个程序;
44.当所述至少一个程序被所述至少一个处理器执行时,使得所述至少一个处理器实现所述的一种usb通信对象验证方法。
45.第四方面,本发明实施例提供了一种存储介质,其中存储有处理器可执行的程序,所述处理器可执行的程序在由处理器执行时用于实现所述的一种usb通信对象验证方法。
46.本发明的优点和有益效果将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到:
47.本发明实施例通过在处理通信对象下发的控制指令之前对通信对象进行验证,提高了设备的安全性,保护设备中存储的信息并防止设备行为被篡改;通过直接对通信对象进行验证,无需对通信对象下发的指令内容进行针对性限制,提升了灵活性;通过生成随机数并通过通信对象加密随机数、设备端解密随机数密文的方式验证通信对象,无需引入额外的硬件,降低了成本,并且每次验证过程中生成的随机数不一致,进一步提高了设备的安全性。
附图说明
48.为了更清楚地说明本技术实施例或者现有技术中的技术方案,下面对本技术实施例或者现有技术中的相关技术方案附图作以下介绍,应当理解的是,下面介绍中的附图仅仅为了方便清晰表述本技术的技术方案中的部分实施例,对于本领域的技术人员来说,在无需付出创造性劳动的前提下,还可以根据这些附图获取到其他附图。
49.图1为本发明一种usb通信对象验证方法具体实施例的流程示意图;
50.图2为本发明一种usb通信对象验证系统具体实施例的结构示意图;
51.图3为本发明一种usb通信对象验证装置具体实施例的结构示意图。
具体实施方式
52.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本技术,而不能理解为对本技术的限制。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
53.本发明的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
54.在本发明中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以
包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
55.开发者使用usb工具下发命令给设备,能够查询设备的信息、控制设备的状态或者下载新的固件到设备中。比如在实际的生产过程中,在芯片的boot rom中加入usb通信功能,使得可以通过usb口与芯片的boot rom进行通信,完成烧录固件工作。为了提升usb通信的安全性,soc厂商一般会设计私有的usb通信协议来完成上述开发调试工作,并提供配套的usb工具。然而,攻击者可通过usb分析仪进行抓包分析,破解该私有的usb通信协议,并将该usb通信协议提供给任意第三方,进而开发出对应的usb破解工具,来控制设备完成各种非法目的,如读取保存在设备中的敏感信息以及下载恶意代码到设备中,对设备以及设备中储存的信息的构成威胁,极大地破坏设备的安全性。
56.目前,为了防止恶意第三方使用自行开发的usb工具来窃取保存在设备的信息、甚至下载窜改过的固件到设备中以彻底修改设备的行为,一方面,业内的做法通常是在数据读写和程序运行等命令运行前先对命令执行对应的检查,限制命令的效果。比如,针对数据读写命令限制实际可以读写数据的范围;针对程序运行命令,在程序运行前对程序进行安全性校验。显然,在命令执行前进行针对性检查的方法虽然可以起到一定的保护效果,但数据读写和程序运行等命令种类繁多,难以对命令进行周全的检查,并且该方法针对usb通信的数据进行限制,需要对数据进行解析,无法在保证灵活性的前提下固化验证代码到芯片中。另一方面,业内通常还对usb工具进行限制,通过验证usb工具的合法性排除恶意第三方自行开发的usb工具。然而,传统的usb工具限制方法需要引入了额外的验证芯片,增加设备的硬件成本。
57.为此,本发明提出了一种usb通信对象验证方法和系统,不同于传统的usb通信对象验证方法存在灵活性、安全性较差或者需要引入额外硬件的问题,本发明通过在处理通信对象下发的控制指令之前对通信对象进行验证,提高了设备的安全性,保护设备中存储的信息并防止设备行为被篡改;通过直接对通信对象进行验证,无需对通信对象下发的指令内容进行针对性限制,提升了灵活性;通过生成随机数并通过通信对象加密随机数、设备端解密随机数密文的方式验证通信对象,无需引入额外的硬件,降低了成本,并且每次验证过程中生成的随机数不一致,进一步提高了设备的安全性。
58.下面参照附图详细描述根据本发明实施例提出的一种usb通信对象验证方法和系统,首先将参照附图描述根据本发明实施例提出的一种usb通信对象验证方法。
59.参照图1,本发明实施例中提供一种usb通信对象验证方法,本发明实施例中的一种usb通信对象验证方法,可应用于终端中,也可应用于服务器中,还可以是运行于终端或服务器中的软件等。终端可以是平板电脑、笔记本电脑、台式计算机等,但并不局限于此。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。本发明实施例中的一种usb通信对象验证方法主要包括以下步骤:
60.s101、根据第一请求生成随机数和第一指令;
61.其中,所述第一请求为所述通信对象发送的连接请求。
62.具体地,通信对象向设备发送连接请求,设备接收到连接请求后生成用于验证所述通信对象的验证信息,包括随机数和第一指令。可以理解的是,随机数具有随机性的特点,在每次验证所述通信对象的过程中生成的随机数具有随机性,通信对象难以通过复制、重发已发生的通信数据以通过验证,提高了通信对象验证的可靠性,提高了设备安全性。
63.s102、所述通信对象接收到所述随机数和所述第一指令后,根据所述第一指令和第一密钥对所述随机数进行加密,生成第一数据;
64.其中,在本发明的一个实施例中,在合法的通信对象(与设备配套的通信对象)中所述第一密钥为rsa加密算法的私钥。可以理解的是,若通信对象为第三方自行开发的usb工具,则无法持有所述私钥,对随机数加密后生成的加密密文也不相同。
65.具体地,所述通信对象接收到所述随机数和所述第一指令后,根据所述第一指令和第一密钥对所述随机数进行加密生成加密密文,即所述第一数据。
66.在本发明的实施例中,在步骤s102之前,还包括以下步骤:
67.(1)获取第二请求;
68.(2)根据所述第二请求将所述随机数和所述第一指令发送至所述通信对象。
69.具体地,通信对象发送第二请求给设备,获取设备生成的随机数和第一指令。
70.s103、通过第二密钥对所述第一数据进行解密,生成第二数据;
71.其中,结合步骤s102所述,所述第二密钥为合法的通信对象(与设备配套的通信对象)中的私钥对应的公钥。可以理解的是,合法的通信对象(与设备配套的通信对象)通过第一密钥对随机数进行加密后生成的第一数据在第二密钥的解密下生成第二数据,所述第二数据与步骤s101中生成的所述随机数一致。
72.具体地,在本发明的一个实施例中,rsa加密算法的密钥对在设备生产时固化或者在开发过程中烧录到设备中。
73.s104、根据所述第二数据和所述随机数生成验证结果;
74.其中,所述验证结果包括第一结果和第二结果。
75.s104可以进一步划分为以下步骤s1041-s1043:
76.步骤s1041、判断所述第二数据与所述随机数是否一致;
77.具体地,根据步骤s102-s103可知,若所述通信对象合法(与设备配套的通信对象),即所述通信对象持有与所述第二密钥(公钥)配对的私钥,则在通信对象通过所述第一密钥加密随机数并在设备端通过所述第二密钥解密得到第二数据与步骤s101中生成的所述随机数一致。。
78.步骤s1042、若是,则生成所述第一结果,所述第一结果为验证通过;
79.具体地,根据步骤s1041可知,若所述第二数据与所述随机数一致,则所述通信对象验证通过。
80.步骤s1043、若否,则生成所述第二结果,所述第二结果为验证不通过。
81.具体地,根据步骤s1041可知,若所述第二数据与所述随机数不一致,则所述通信对象验证不通过。
82.s105、根据所述验证结果处理第二指令。
83.其中,所述第二指令为所述通信对象发送的控制指令。
84.s105可以进一步划分为以下步骤s1051-s1052:
85.步骤s1051、若所述验证结果为第一结果,则执行所述第二指令;
86.具体地,若所述通信对象验证通过,则设备执行所述通信对象发送的控制指令。
87.步骤s1052、若所述验证结果为第二结果,则拒绝所述第二指令。
88.具体地,若所述通信对象验证不通过,则设备拒绝执行所述通信对象发送的控制指令。
89.综上所述,本发明实施例的一种usb通信对象验证方法,通过在处理通信对象下发的控制指令之前对通信对象进行验证,提高了设备的安全性,保护设备中存储的信息并防止设备行为被篡改;通过直接对通信对象进行验证,无需对通信对象下发的指令内容进行针对性限制,提升了灵活性;通过生成随机数并通过通信对象加密随机数、设备端解密随机数密文的方式验证通信对象,无需引入额外的硬件,降低了成本,并且每次验证过程中生成的随机数不一致,进一步提高了设备的安全性。
90.其次,参照附图描述根据本技术实施例提出的一种usb通信对象验证系统。
91.图2是本技术一个实施例的一种usb通信对象验证系统结构示意图。
92.所述系统具体包括:
93.随机数生成模块201,用于根据第一请求生成随机数和第一指令;
94.解密模块202,用于通过第二密钥对所述第一数据进行解密,生成第二数据;
95.验证模块203,用于根据所述第二数据和所述随机数生成验证结果;
96.指令处理模块204,用于根据所述验证结果处理第二指令。
97.作为一种可选的实施方式,所述的一种usb通信对象验证系统还包括:
98.获取模块,用于获取第二请求;
99.发送模块,用于根据所述第二请求将所述随机数和所述第一指令发送至所述通信对象。
100.作为一种可选的实施方式,所述验证结果包括第一结果和第二结果;
101.所述验证模块包括:
102.判断模块,用于判断所述第二数据与所述随机数是否一致;
103.验证结果生成模块,用于若是,则生成所述第一结果;用于若否,则生成所述第二结果。
104.作为一种可选的实施方式,所述指令处理模块包括:
105.指令执行模块,用于若所述验证结果为第一结果,则执行所述第二指令;
106.指令拒绝模块,用于若所述验证结果为第二结果,则拒绝所述第二指令。
107.可见,上述方法实施例中的内容均适用于本系统实施例中,本系统实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
108.参照图3,本技术实施例提供了一种usb通信对象验证装置,包括:
109.至少一个处理器301;
110.至少一个存储器302,用于存储至少一个程序;
111.当所述至少一个程序被所述至少一个处理器301执行时,使得所述至少一个处理器301实现所述的一种usb通信对象验证方法。
112.同理,上述方法实施例中的内容均适用于本装置实施例中,本装置实施例所具体
实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
113.在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或所述方框有时能以相反顺序被执行。此外,在本技术的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
114.此外,虽然在功能性模块的背景下描述了本技术,但应当理解的是,除非另有相反说明,功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本技术是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本技术。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本技术的范围,本技术的范围由所附权利要求书及其等同方案的全部范围来决定。
115.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干程序用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
116.在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行程序的定序列表,可以具体实现在任何计算机可读介质中,以供程序执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从程序执行系统、装置或设备取程序并执行程序的系统)使用,或结合这些程序执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供程序执行系统、装置或设备或结合这些程序执行系统、装置或设备而使用的装置。
117.计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
118.应当理解,本技术的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的程序执行系统执行的软件
或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
119.在本说明书的上述描述中,参考术语“一个实施方式/实施例”、“另一实施方式/实施例”或“某些实施方式/实施例”等的描述意指结合实施方式或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。
120.尽管已经示出和描述了本技术的实施方式,本领域的普通技术人员可以理解:在不脱离本技术的原理和宗旨的情况下可以对这些实施方式进行多种变化、修改、替换和变型,本技术的范围由权利要求及其等同物限定。
121.以上是对本技术的较佳实施进行了具体说明,但本技术并不限于所述实施例,熟悉本领域的技术人员在不违背本技术精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本技术权利要求所限定的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1