公开/公告号CN115941204A
专利类型发明专利
公开/公告日2023-04-07
原文格式PDF
申请/专利权人 镁佳(北京)科技有限公司;
申请/专利号CN202211555325.7
发明设计人 程兵兵;
申请日2022-12-06
分类号H04L9/32(2006.01);H04L9/40(2022.01);H04L9/08(2006.01);
代理机构北京三聚阳光知识产权代理有限公司 11250;
代理人周玉涛
地址 100102 北京市朝阳区创远路34号院6号楼11层1101室
入库时间 2023-06-19 19:14:59
法律状态公告日
法律状态信息
法律状态
2023-04-25
实质审查的生效 IPC(主分类):H04L 9/32 专利申请号:2022115553257 申请日:20221206
实质审查的生效
2023-04-07
公开
发明专利申请公布
技术领域
本发明涉及软件安全防护技术领域,涉及一种基于HSE的数据防重放方法及系统。
背景技术
当前,市面客户端程序client app具有硬件安全引擎HSE(hardware securityengine)模块,提供了对client app的数据进行加密、签名等安全操作的接口,HSE模块会存储client app的敏感数据,如:个人信息和密钥等。
但是,当client app调用这些加密、签名等安全接口时,HSE没有对client app的身份验证和防重放机制,导致非法用户client app通过重放攻击或中间人攻击的手段,利用HSE模块进行非法的计算,对敏感的数据身份信息、交易信息的加密信息截取后,进行重放攻击,从而导致用户的经济损失。例如:client app1将一笔交易数据发送给硬件安全引擎HSE做解密和签名,如果被非法client app2截取后可以重复发送给硬件安全引擎HSE做相同的操作,达到欺骗硬件安全引擎HSE做解密和签名的操作。在没有抗重放的保护下,该比交易数据就能够重复进行多次对用户账户进行扣款,造成用户经济损失。现有的HSE缺少数据防重放机制,使得用户敏感数据面临重放攻击的威胁,造成信息泄露甚至财产损失。
发明内容
因此,本发明提供了一种基于HSE的数据防重放方法及系统,相对于现有HSE模块,增加了数据防重放机制,有效防止了用户的敏感数据被重放,保证了用户通信安全,避免了用户信息泄露和财产损失,以解决上述背景技术中提出的问题。
为达到上述目的,本发明提供如下技术方案:
第一方面,本发明实施例提供一种基于HSE的数据防重放方法,应用于客户端,包括:
与认证端进行密钥交换,生成对称密钥并保存;
发起认证请求,接收认证端响应所述认证请求返回的随机数并基于预设处理规则对其进行处理;
使用对称密钥对处理后的随机数进行HMAC计算,将计算结果与当前计数值发送给认证端;
接收认证端发送的认证结果,当认证成功时,发起应用指令并等待认证端响应后更新计数值。
可选地,对称密钥保存在白盒中,白盒保存对称密钥的过程,包括:基于预设的对称加密算法对对称密钥进行加密,并将加密的结果存储到文件系统或存储介质中。
可选地,基于预设处理规则对随机数进行处理的过程,包括:对随机数进行首字节减1,末字节加1的处理。
第二方面,本发明实施例提供一种基于HSE的数据防重放方法,应用于搭载有HSE模块的认证端,与客户端通过通信接口连接,包括:
与客户端进行密钥交换,生成对称密钥并保存在HSE模块中;
响应客户端的认证请求并生成随机数发送给客户端;
接收客户端发送的当前计数值和计算结果并对其进行对比认证,当认证成功时发送认证结果给客户端,同时将认证结果标记状态进行更新以及对密钥进行记录用于后续客户端和认证端通信数据的加密;
接收客户端的应用指令并处理,处理完成后更新计数值并更新认证结果标记状态。
可选地,接收客户端发送的当前计数值和计算结果并对其进行对比认证的过程,包括:当客户端发送的当前计数值与其内部的当前计数值不相同时,认证失败并发送认证失败结果给客户端;当客户端发送的当前计数值与其内部的当前计数值相同时,使用HSE模块中的对称密钥对随机数进行HMAC计算并与客户端发送的计算结果进行对比,当计算结果不一致时认证失败,释放认证请求并将认证失败结果发送给客户端,当计算结果一致时,认证成功。
可选地,认证结果标记状态,包括:认证失败结果记为INIT=0以及认证成功结果记为VERIFIED=1,其中,初始默认状态为INIT=0。
可选地,计数值更新方式的过程,包括:计数值存储在非易失性存储器中,用于对客户端和HSE模块的之间的请求验证进行计数值的比较,当两者计数值相同时,认证成功对应计数值加1进行更新,反之认证失败计数值不变。
第三方面,本发明实施例提供一种基于HSE的数据防重放系统,应用于客户端,包括:
密钥交换模块,用于与认证端进行密钥交换,生成对称密钥并保存;
请求处理模块,用于发起认证请求,接收认证端响应所述认证请求返回的随机数并基于预设处理规则对其进行处理;
认证处理模块,用于使用对称密钥对处理后的随机数进行HMAC计算,将计算结果与当前计数值发送给认证端;
接收处理模块,用于接收认证端发送的认证结果,当认证成功时,发起应用指令并等待认证端响应后更新计数值。
第四方面,本发明实施例提供一种基于HSE的数据防重放系统,应用于搭载有HSE模块的认证端,与客户端通过通信接口连接,包括:
密钥交换模块,用于与客户端进行密钥交换,生成对称密钥并保存在HSE模块中;
请求响应模块,用于响应客户端的认证请求并生成随机数发送给客户端;
认证响应模块,用于接收客户端发送的当前计数值和计算结果并对其进行对比认证,当认证成功时发送认证结果给客户端,同时将认证结果标记状态进行更新以及对密钥进行记录用于后续客户端和认证端通信数据的加密;
接收响应模块,用于接收客户端的应用指令并处理,处理完成后更新计数值并更新认证结果标记状态。
第五方面,本发明实施例提供一种计算机设备,包括:客户端和认证端,客户端和认证端均包括至少一个存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行第一方面或第二方面中任一所述的方法。
本发明技术方案,具有如下优点:
本发明提供的基于HSE的数据防重放方法及系统,客户端与搭载有HSE模块的认证端进行密钥交换,生成对称密钥并保存;客户端发起认证请求,接收认证端响应所述认证请求返回的随机数并基于预设处理规则对其进行处理;使用对称密钥对处理后的随机数进行HMAC计算,将计算结果与当前计数值发送给认证端;接收认证端发送的认证结果,当认证成功时,发起应用指令并等待认证端响应后更新计数值;认证端响应客户端的认证请求并生成随机数发送给客户端;接收客户端发送的当前计数值和计算结果并对其进行对比认证,当认证成功时发送认证结果给客户端,同时将认证结果标记状态进行更新以及对密钥进行记录用于后续客户端和认证端通信数据的加密;接收客户端的应用指令并处理,处理完成后更新计数值并更新认证结果标记状态。通过本发明的防重放方法及系统,相对于现有HSE模块,增加了数据防重放机制,有效防止了用户的敏感数据被重放,保证了用户通信安全,避免了用户信息泄露和财产损失。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1本发明实施例中提供的基于HSE的数据防重放方法的一个流程图;
图2本发明实施例中提供的基于HSE的数据防重放方法的另一个流程图;
图3本发明实施例中提供的正常交易的流程示意图;
图4本发明实施例中提供的重放攻击交易的流程示意图;
图5本发明实施例中提供的基于HSE的数据防重放攻击交易的流程示意图;
图6本发明实施例中提供的基于HSE的数据防重放系统的一个结构示意图;
图7本发明实施例中提供的基于HSE的数据防重放系统的另一个结构示意图;
图8本发明实施例中提供的一种计算机设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分的实施例,不是全部的实施例,而并非要限制本发明公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要的混淆本发明公开的概念。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
实施例1
本发明实施例提供一种基于HSE的数据防重放方法,应用于客户端,如图1所示,该方法包括以下步骤:
步骤S11:与认证端进行密钥交换,生成对称密钥并保存。
本实施例中,采用预设方法进行密钥交换,生成对称密钥。具体地,预设方法包括:RSA密钥交换方法和国密SM2密钥交换方法,仅作为举例说明,依据具体应用场景做适应性修改。
本实施例中,对称密钥保存在白盒中,白盒保存对称密钥的过程,包括:基于预设的对称加密算法对对称密钥进行加密,并将加密的结果存储到文件系统或存储介质中。一具体实施例中,预设的对称加密算法为AES加密算法,仅作为举例说明,不以此为限制,依据具体的适应场景确定。
步骤S12:发起认证请求,接收认证端响应所述认证请求返回的随机数并基于预设处理规则对其进行处理。
本实施例中,基于预设处理规则对随机数进行处理的过程,包括:对随机数进行首字节减1,末字节加1的处理,仅作为举例说明,不以此为限制。
步骤S13:使用对称密钥对处理后的随机数进行HMAC计算,将计算结果与当前计数值发送给认证端。
具体地,采用HMAC计算与计数机制,有效防止敏感数据被重放,保证数据安全。
步骤S14:接收认证端发送的认证结果,当认证成功时,发起应用指令并等待认证端响应后更新计数值。
一具体实施例中,应用指令为交易指令,仅作为举例说明,不以此为限制。
本发明实施例提供的基于HSE的数据防重放方法,增加了客户端与HSE模块的防重放机制,采用HMAC计算与计数机制,有利于防止敏感数据的重放,保证客户端与HSE模块的通信安全。
实施例2
本发明实施例提供一种基于HSE的数据防重放方法,应用于搭载有HSE模块的认证端,与客户端通过通信接口连接,如图2所示,该方法包括以下步骤:
步骤S21:与客户端进行密钥交换,生成对称密钥并保存在HSE模块中。
本实施例中,对称密钥生成并保存的过程,包括:基于预设方法进行密钥交换,生成对称密钥并保存在HSE模块中。具体地,预设方法包括:RSA密钥交换方法和国密SM2密钥交换方法,仅作为举例说明,依据具体应用场景做适应性修改。
步骤S22:响应客户端的认证请求并生成随机数发送给客户端。
步骤S23:接收客户端发送的当前计数值和计算结果并对其进行对比认证,当认证成功时发送认证结果给客户端,同时将认证结果标记状态进行更新以及对密钥进行记录用于后续客户端和认证端通信数据的加密。
本实施例中,接收客户端发送的当前计数值和计算结果并对其进行对比认证的过程,包括:当客户端发送的当前计数值与其内部的当前计数值不相同时,认证失败并发送认证失败结果给客户端;当客户端发送的当前计数值与其内部的当前计数值相同时,使用HSE模块中的对称密钥对随机数进行HMAC计算并与客户端发送的计算结果进行对比,当计算结果不一致时认证失败,释放认证请求并将认证失败结果发送给客户端,当计算结果一致时,认证成功。
本实施例中,认证结果标记状态,包括:认证失败结果记为INIT=0以及认证成功结果记为VERIFIED=1,其中,初始默认状态为INIT=0。
步骤S24:接收客户端的应用指令并处理,处理完成后更新计数值并更新认证结果标记状态。
本实施例中,计数值更新方式的过程,包括:计数值存储在非易失性存储器中,用于对客户端和HSE模块的之间的请求验证进行计数值的比较,当两者计数值相同时,认证成功对应计数值加1进行更新,反之认证失败计数值不变。
一具体实施例中,认证端与客户端的通信接口,包括:SPI、UART和IIC,仅作为举例说明,不以此为限制,依据实际应用场景确定。
本发明实施例提供的基于HSE的数据防重放方法,相对于现有HSE模块,增加了客户端与HSE模块的防重放机制,能够有效防止用户的敏感数据被重放;其次,防重放机制中增加的计数使得HSE模块对敏感数据只能进行一次运算以及密钥存放于HSE模块中,通信过程更加安全。
实施例3
如图3所示,正常交易的流程,包括以下步骤:
步骤1:客户端用户1购买产生一笔100元的交易数据;
步骤2:服务器对应100元的交易数据下发;
步骤3:客户端调用认证端的HSE模块对100元的交易数据进行签名运算;
步骤4:HSE模块向客户端返回签名成功的结果;
步骤5:客户端将签名成功的结果发送给服务器,服务器验签成功后对客户端用户1进行扣款100元。
当客户端和HSE模块之间没有防重放机制时,容易遭受重放攻击,重放攻击交易的流程,如图4所示,包括以下步骤:
步骤1:客户端用户2非法截取获得了用户1的100元的交易数据;
步骤2:服务器对应100元的交易数据下发;
步骤3:客户端调用认证端的HSE模块对100元的交易数据进行签名运算;
步骤4:HSE模块向客户端返回签名成功的结果
步骤5:客户端将签名成功的结果发送给服务器,服务器验签成功后对客户端用户1进行扣款100元。
当正常的交易流程的过程中增加了本发明实施例提供的基于HSE的数据防重放方法后,交易流程如图5所示,包括以下步骤:
步骤1:客户端用户1购买产生一笔100元的交易数据;
步骤2:服务器对应100元的交易数据下发;
步骤3.1:客户端与搭载有HSE模块的认证端进行密钥交换,生成对称密钥并保存,其中,认证端的对称密钥保存在HSE模块中;
步骤3.2:客户端的对称密钥保存在白盒中;
步骤3.3:客户端发起认证请求;
步骤3.4:认证端响应客户端的认证请求并生成随机数发送给客户端;
步骤3.5:客户端对返回的随机数基于预设处理规则处理后,调用白盒中的对称密钥对处理后的随机数进行HMAC计算,将计算结果与当前计数值发送给认证端;
步骤3.6:认证端接收客户端发送的当前计数值和计算结果并对其进行对比认证,当认证成功时发送认证结果给客户端,同时将认证结果标记状态进行更新以及对密钥进行记录用于后续客户端和认证端通信数据的加密;
步骤3.7:客户端接收认证端发送的认证结果,当认证成功时,调用认证端的HSE模块的密钥对100元的交易数据进行签名运算;
步骤4:HSE模块向客户端返回签名成功的结果并更新计数值和认证结果标记状态;
步骤5:客户端将签名成功的结果发送给服务器,服务器验签成功后对客户端用户1进行扣款100元。
本发明实施例提供基于HSE的数据防重放方法,能够有效防止用户敏感数据被重放,保证用户的通信安全。
实施例4
本发明实施例提供一种基于HSE的数据防重放系统,应用于客户端,如图6所示,包括:
密钥交换模块,用于与认证端进行密钥交换,生成对称密钥并保存;此模块执行实施例1中的步骤S11所描述的方法,在此不再赘述。
请求处理模块,用于发起认证请求,接收认证端响应所述认证请求返回的随机数并基于预设处理规则对其进行处理;此模块执行实施例1中的步骤S12所描述的方法,在此不再赘述。
认证处理模块,用于使用对称密钥对处理后的随机数进行HMAC计算,将计算结果与当前计数值发送给认证端;此模块执行实施例1中的步骤S13所描述的方法,在此不再赘述。
接收处理模块,用于接收认证端发送的认证结果,当认证成功时,发起应用指令并等待认证端响应后更新计数值;此模块执行实施例1中的步骤S14所描述的方法,在此不再赘述。
本发明实施例提供的基于HSE的数据防重放系统,能够有效防止用户敏感数据被重放,保证用户通信安全,避免用户的信息泄露和财产损失。
实施例5
本发明实施例提供一种基于HSE的数据防重放系统,应用于搭载有HSE模块的认证端,与客户端通过通信接口连接,如图7所示,包括:
密钥交换模块,用于与客户端进行密钥交换,生成对称密钥并保存在HSE模块中;此模块执行实施例2中的步骤S21所描述的方法,在此不再赘述。
请求响应模块,用于响应客户端的认证请求并生成随机数发送给客户端;此模块执行实施例2中的步骤S22所描述的方法,在此不再赘述。
认证响应模块,用于接收客户端发送的当前计数值和计算结果并对其进行对比认证,当认证成功时发送认证结果给客户端,同时将认证结果标记状态进行更新以及对密钥进行记录用于后续客户端和认证端通信数据的加密;此模块执行实施例2中的步骤S23所描述的方法,在此不再赘述。
接收响应模块,用于接收客户端的应用指令并处理,处理完成后更新计数值并更新认证结果标记状态;此模块执行实施例2中的步骤S24所描述的方法,在此不再赘述。
本发明实施例提供的基于HSE的数据防重放系统,能够有效防止用户敏感数据被重放,保证用户的通信安全,有效避免用户的信息泄露和财产损失。
实施例6
本发明实施例提供一种计算机设备,包括:客户端和认证端,客户端和认证端的结构均如图8所示,包括:至少一个处理器801,至少一个通信接口803,存储器804和至少一个通信总线802。其中,通信总线802用于实现这些组件之间的连接通信,通信接口803可以包括显示屏和键盘,可选通信接口803还可以包括标准的有线接口、无线接口。存储器804可以是高速易挥发性随机存取存储器,也可以是非不稳定的存储器,还可以是至少一个位于远离前述处理器801的存储装置。其中处理器801可以执行实施例1或实施例2的方法。存储器804中存储一组程序代码,且处理器801调用存储器804中存储的程序代码,以用于执行实施例1或实施例2的方法。
其中,通信总线802可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。通信总线802可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器804可以包括易失性存储器(Volatile Memory),例如随机存取存储器(Random Access Memory,简称RAM);存储器也可以包括非易失性存储器(Non-volatileMemory),例如快闪存储器(Flash Memory),硬盘(Hard Disk Drive,简称HDD)或固降硬盘(Solid-state Drive,简称SSD);存储器804还可以包括上述种类的存储器的组合。
其中,处理器801可以是中央处理器(Central Processing Unit,简称CPU),网络处理器(Network Processor,简称NP)或者CPU和NP的组合。
其中,处理器801还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(Application-Specific Integrated Circuit,简称ASIC),可编程逻辑器件(Programmable Logic Device,简称PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(Complex Programmable Logic Device,简称CPLD)、现场可编程逻辑门阵列(FieldProgrammable Gate Array,简称FPGA)、通用阵列逻辑(Generic Array Logic,简称GAL)或其任意组合。
可选地,存储器804还用于存储程序指令。处理器801可以调用程序指令,实现如本发明执行实施例1或实施例2中的方法。
显然,上述实施例仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引申出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
机译: 一种基于估计的摩擦转矩斜率的防抱死制动系统,一种确定防抱死制动控制的起点的方法以及一种基于估计的摩擦转矩梯度,起始点的防抱死制动系统防外观制动控制装置,以及具有极限判定装置的车轮性能量伺服控制装置。
机译: 从另一种记录介质读取记录在记录介质上的替换数据的数据并重放读取的数据的重放装置,重放方法和非暂时性记录介质
机译: 基于计算机的用于处理地下矿井中的多次潜水的方法,存在的介质,基于计算机的用于基于矿井中的矿物处理井底数据的方法的方法一个基于计算机的地下信息系统。根据地下矿井中的矿物来处理数据,并基于计算机对地下矿井中的数据进行处理的方法,仓储腿目前的计算机系统是基于计算机的,用于处理基于地下的一种形式的多次潜水。计算机根据地下矿井中的矿物质来处理数据u00e7o地下,以及基于计算机的数据处理方法