CN113986578A - 一种消息校验方法及第一设备 - Google Patents
一种消息校验方法及第一设备 Download PDFInfo
- Publication number
- CN113986578A CN113986578A CN202111246074.XA CN202111246074A CN113986578A CN 113986578 A CN113986578 A CN 113986578A CN 202111246074 A CN202111246074 A CN 202111246074A CN 113986578 A CN113986578 A CN 113986578A
- Authority
- CN
- China
- Prior art keywords
- identity
- token
- identity token
- signature
- message
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 230000015654 memory Effects 0.000 claims description 28
- 238000012795 verification Methods 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 9
- 230000003111 delayed effect Effects 0.000 claims description 9
- 238000003860 storage Methods 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 abstract description 24
- 238000005516 engineering process Methods 0.000 abstract description 8
- 230000004044 response Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 15
- 238000004422 calculation algorithm Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 101100217298 Mus musculus Aspm gene Proteins 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000011022 operating instruction Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Finance (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明涉及金融科技(Fintech)领域,公开一种消息校验方法及第一设备,第一设备接收第二设备发送的第一业务消息和第一身份签名;第一设备基于第二设备的设备标识,获取第二设备对应的身份令牌组;身份令牌组包括具有时间先后的先序身份令牌和后序身份令牌;第一设备按照先序身份令牌和后序身份令牌的优先级顺序,依序与第一业务消息生成第二身份签名,并在第二身份签名与第一身份签名一致时,确定第一业务消息的内容正确。该方式通过使用身份签名,可规避背景技术中使用身份令牌进行传输时而存在的易被不法盗用的风险,及可极大减少因为身份令牌无法同时在第一设备与第二设备之间同步更新而导致的大面积消息传输失败的情况。
Description
技术领域
本申请实施例涉及金融科技(Fintech)领域,尤其涉及一种消息校验方法及第一设备。
背景技术
随着计算机技术的发展,越来越多的技术(例如:云计算、大数据或区块链)应用在金融领域,传统金融业正在逐步向金融科技转变。其中,在将计算机技术应用于金融领域时,确保服务端所服务的客户端是合法的客户端,而拒绝为不合法的客户端提供服务,这对服务端能够持久化地对外提供稳定、良好的服务显得尤为重要。
消息中间件,即一种借助队列与消息传递的技术、在网络环境中为应用***提供同步或异步、可靠的消息传输的支撑性软件***,因此消息中间件可以服务端的角色而与客户端完成业务消息的交互。目前,在对与消息中间件建立连接的各客户端进行合法性的校验时,可基于Token(令牌)机制实现,具体方案如下:
在客户端正式向消息中间件发送业务消息之前,客户端可首先向消息中间件发出请求,该请求携带用户名和密码;当消息中间件确认用户名和密码正确时,则消息中间件可向客户端派发一个Token,该Token可由消息中间件基于设定密钥生成,从而客户端在接收到派发的Token后、客户端可以在自己发出的每一笔业务消息中隐式携带该Token,进而在消息中间件接收到客户端发送的业务消息时,即可通过与客户端约定好的方式,从业务消息中将Token提取出来,并对所提取出的Token进行检查,判断是不是自身派发的合法Token;最后,若消息中间件确认所提取出的Token是自身派发的合法Token,则说明当前的业务消息是发自于合法的客户端的。其中,由于消息中间件并不会在本地存储Token,故消息中间件在对所提取出的Token进行合法性的检查时是通过逆解析该Token,以确定经解析得到的密钥是否为生成该Token时所使用的设定密钥。此外,为了增强业务消息在传递过程中的安全性,消息中间件可定期对自身派发的Token进行更新。
然而上述方案,具有以下问题:
问题1,由于消息中间件并没有从业务消息的内容本身出发来判断业务消息是否被篡改,因此,如果发生恶意程序入侵客户端,且该恶意程序破解了业务消息隐式携带Token的方法,那么通过劫持客户端的出口对业务消息的内容进行修改,或者在业务消息传递的过程中拦截捕获了Token并应用于不合法的客户端,此时消息中间件将无法准确识别业务消息内容的正确性。
问题2,一个消息中间件可能同时为多个客户端提供服务,然而在消息中间件对派发的Token进行更新时,很难确保所有的客户端都能够同时得到最新的Token。这样一来,在旧Token的有效期到期之后,一些成功更新到最新Token的客户端发送的业务消息将可以被消息中间件进行合法性的确认,而一些未成功更新到最新Token的客户端发送的业务消息将无法被消息中间件进行合法性的确认,如此容易出现因为Token原因导致的大面积消息传输失败的情况。
因此,目前亟需一种保证业务消息能被正确传输,且不易发生传输失败的方案。
发明内容
本申请提供一种消息校验方法及第一设备,用以达到保证业务消息能被正确传输,且不易发生传输失败的目的。
第一方面,本申请实施例提供一种消息校验方法,该方法包括:第一设备接收第二设备发送的第一业务消息和第一身份签名;所述第一身份签名是所述第二设备基于所述第一业务消息与所述第二设备本地的身份令牌生成的;所述第一设备基于所述第二设备的设备标识,获取所述第二设备对应的身份令牌组;所述身份令牌组包括具有时间先后的先序身份令牌和后序身份令牌;所述第一设备按照所述先序身份令牌和所述后序身份令牌的优先级顺序,依序与所述第一业务消息生成第二身份签名,并在所述第二身份签名与所述第一身份签名一致时,确定所述第一业务消息的内容正确。
上述方案中,由于身份签名是基于身份令牌(即Token)得到的,则通过将对身份令牌进行验证的方式转换为对身份签名的验证,而避免在业务消息传递的过程中对身份令牌进行传输,如此可以规避背景技术中使用身份令牌进行传输时而存在的易被不法盗用的风险;进一步的,由于不再需要传输身份令牌,消息中间件可在本地缓存终端的身份令牌来对身份签名进行校验,如当第二设备连接到第一设备上时,第一设备中由于同时持有第二设备的两个身份令牌(即身份令牌组),包括具有时间先后的先序身份令牌和后序身份令牌,从而在第二设备向其传递业务消息时,无论第二设备有没有成功接收到第一设备发送给它的需要进行更新的后序身份令牌,第一设备都将可以通过对应的两个身份令牌来对业务消息进行内容正确性的校验,显然该方式可以极大地减少因为身份令牌无法同时在第一设备与第二设备之间同步更新而导致的大面积消息传输失败的情况。
在一种可能实现的方法中,所述第一设备为消息中间件,所述第二设备为终端;所述第一设备按照所述先序身份令牌和所述后序身份令牌的优先级顺序,依序与所述第一业务消息生成第二身份签名,包括:所述第一设备生成基于所述先序身份令牌的第二身份签名;所述第一设备若确定基于所述先序身份令牌的第二身份签名与所述第一身份签名不一致,则生成基于所述后序身份令牌的第二身份签名;所述第一设备若确定基于所述后序身份令牌的第二身份签名与所述第一身份签名一致,则确定所述第一业务消息的内容正确。
上述方案中,在第一设备为消息中间件、第二设备为终端时,通过设置消息中间件先基于先序身份令牌、后基于后序身份令牌(如有需要的话)来对终端发送的业务消息进行验证,如此可以保证在任一个身份令牌所处的有效时段中,最多只有一笔消息需要被计算两次身份签名的效果,达到了极大减少计算量的效果。
在一种可能实现的方法中,所述第一设备为终端,所述第二设备为消息中间件;所述第一设备按照所述先序身份令牌和所述后序身份令牌的优先级顺序,依序与所述第一业务消息生成第二身份签名,包括:所述第一设备生成基于所述后序身份令牌的第二身份签名;所述第一设备若确定基于所述后序身份令牌的第二身份签名与所述第一身份签名不一致,则生成基于所述前序身份令牌的第二身份签名;所述第一设备若确定基于所述前序身份令牌的第二身份签名与所述第一身份签名一致,则确定所述第一业务消息的内容正确。
上述方案中,在第一设备为终端、第二设备为消息中间件时,通过设置终端先基于后序身份令牌、后基于先序身份令牌(如有需要的话)来对消息中间件发送的业务消息(此时的业务消息可以理解为消息中间件回复给终端的响应消息)进行验证,如此可以保证在任一个身份令牌所处的有效时段中,最多只有一笔消息需要被计算两次身份签名的效果,达到了极大减少计算量的效果。
在一种可能实现的方法中,所述第一设备为消息中间件,所述第二设备为终端;所述第一设备接收第二设备发送的第一业务消息和第一身份签名之前,所述方法还包括:所述第一设备在身份令牌组更新周期之前的第一设定时长内接收所述第二设备发送的身份令牌更新请求;所述第一设备生成有效时段按时间顺序依次延后的第一身份令牌、第二身份令牌和第三身份令牌;所述第一设备将所述第一身份令牌和所述二身份令牌发送至所述第二设备;其中所述第二设备用于根据所述第一身份令牌更新本地的先序身份令牌并根据所述第二身份令牌更新本地的后序身份令牌。
上述方案中,出于增强对终端身份信息进行保护的目的,终端本地的身份令牌将定期需要被更新,然而,在多个终端同时连接于某消息中间件的场景下,目前尚无法实现同时对所有终端本地的身份令牌的更新;为此,本申请实施例设置了身份令牌组,其中身份令牌组包括对终端本地的身份令牌进行更新之前的身份令牌以及更新后的身份令牌,同时在更新消息中间件本地的身份令牌组之前还设置了一缓冲期(即第一设定时长),如此可以保证消息中间件本地始终有一可用的身份令牌来满足身份令牌更新程度不一的各终端,极大的降低了因为身份令牌原因导致的大面积消息传输失败的概率。
在一种可能实现的方法中,所述第一设备在身份令牌组更新周期之后的第二设定时长内,根据所述第二身份令牌更新本地的先序身份令牌并根据所述第三身份令牌更新本地的后序身份令牌。
上述方案中,在多个终端同时连接于一消息中间件的场景下,为了提高身份令牌更新时各终端与消息中间件之间的消息传输成功率,可通过在消息中间件对本地的身份令牌进行更新之前设置一定的缓冲期(即第一设定时长);当缓冲期时间截止,消息中间件可基于第二身份令牌更新本地的先序身份令牌并根据第三身份令牌更新本地的后序身份令牌,从而可以在消息中间件更新好自己本地的身份令牌组之后的一定时间内(即第二设定时长),运用自己本地的先序身份令牌来对终端基于自己本地的后序身份令牌所生成的身份签名进行验证,由于第二设定时长内,同一终端下,终端的后序身份令牌与消息中间件的先序身份令牌是一致的,因此,可以实现消息中间件以极小的计算资源就能够快速的确定的终端所发业务消息内容的正确性的目的。
在一种可能实现的方法中,所述第一设备采用分布式***的架构;所述第一设备生成有效时段按时间顺序依次延后的第一身份令牌、第二身份令牌和第三身份令牌,包括:针对任一身份令牌,所述第一设备基于共享密钥、所述第二设备的设备标识和所述身份令牌的有效时段,生成身份令牌;所述共享密钥应用于所述分布式***中的各第一设备。
上述方案中,在消息中间件隶属于分布式***时,基于共享密钥来构建身份令牌,如此可以保证在一消息中间件无法为客户端正常提供服务时,则可以快速切换到分布式***中的其他正常可用的一消息中间件上去,且该消息中间件由于持有与故障消息中间件相同的共享密钥,则该消息中间件同样可以用于为终端生成它的身份令牌;另一方面,在对终端的身份令牌进行生成时,可引入终端的设备标识信息,因此对于不同的终端,则它们彼此的身份令牌将具有唯一性,降低了身份令牌被破解的风险。
在一种可能实现的方法中,所述确定所述第一业务消息的内容正确之后,所述方法还包括:所述第一设备对与所述第一身份签名一致的第二身份签名基于的身份令牌进行标记;所述标记用于在所述第一设定时长内控制所述第一设备根据所述标记指示的身份令牌对所述第二设备发送的各身份签名进行校验;所述第二身份签名为所述身份令牌组中优先级较低的身份令牌对应的身份签名。
上述方案中,在多个终端同时连接于一消息中间件的场景下,为了提高身份令牌更新时各终端与消息中间件之间的消息传输成功率,可通过在消息中间件对本地的身份令牌进行更新之前设置一定的缓冲期(即第一设定时长);该缓冲期期间,若消息中间件所发的更新的身份令牌组能够被终端接收,则终端将默认基于更新后的身份令牌组中的后序身份令牌和业务消息来生成发送给消息中间件的身份签名,其中,由于消息中间件无法确认自己所发的更新后的身份令牌组是否能够被终端顺利接收,因此消息中间件对于接收到的终端发送的身份签名都将会先采用自己本地的该终端下的身份令牌组中的先序身份令牌进行验证,若确定验证不通过后,则可以切换至该终端下的身份令牌组中后序身份令牌进行验证,若此时验证可以通过,则说明消息中间件知晓自己发送给终端的更新后的身份令牌已经被终端顺利接收到,那么此时的话,直到缓冲期结束之前的这一段时间内,消息中间件关于该终端所发送的各业务消息都将直接采用身份令牌组中的后序身份令牌进行验证,如此可以保证消息中间件能够以较少的计算资源快速实现对终端所发业务消息内容正确性的验证。
第二方面,本申请实施例提供一种第一设备,该第一设备包括:接收单元,用于接收第二设备发送的第一业务消息和第一身份签名;所述第一身份签名是所述第二设备基于所述第一业务消息与所述第二设备本地的身份令牌生成的;获取单元,用于基于所述第二设备的设备标识,获取所述第二设备对应的身份令牌组;所述身份令牌组包括具有时间先后的先序身份令牌和后序身份令牌;处理单元,用于按照所述先序身份令牌和所述后序身份令牌的优先级顺序,依序与所述第一业务消息生成第二身份签名,并在所述第二身份签名与所述第一身份签名一致时,确定所述第一业务消息的内容正确。
第三方面,本申请实施例提供了一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行如第一方面任一实现方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如第一方面任一实现方法。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术的一种分布式***的消息传递示意图;
图2为本申请实施例提供的一种消息校验方法的示意图;
图3为本申请实施例提供的一种第一设备的示意图;
图4为本申请实施例提供的一种计算设备。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
如图1所示,为现有技术的一种分布式***的消息传递示意图。在图1中,包括消息中间件110和终端120。作为示例,本申请中以消息中间件110包括2个消息中间件,分别为消息中间件1和消息中间件2为例进行说明;以及,作为示例,本申请中以终端120包括5个终端,分别为终端1、终端2、终端3、终端4和终端5为例进行说明,其中该5个终端基于各自安装的同一应用程序/客户端与消息中间件110进行消息传递。例如,在图1中,终端1、终端2和终端4分别与消息中间件1进行消息传递,终端3和终端5分别与消息中间件2进行消息传递。在分布式***的架构下,当消息中间件110中的某一消息中间件无法正常为所连终端提供服务时,根据设定的策略、该所连终端可以快速切换至消息中间件110中其他可用的一消息中间件上去,从而可以由新连接的消息中间件为其提供服务,如此可以提升用户体验。
基于图1,以图1中的终端3和终端5分别与消息中间件2进行业务消息的传递为例,阐述业务消息的传输过程。设终端3和终端5所基于的同一应用程序为应用程序A,则当终端3启动应用程序A时,终端3可将自己的用户名和密码传输给消息中间件2,若消息中间件2对用户名和密码验密通过,则会向终端3返回Token,从而终端3可在向消息中间件2发送的业务消息中隐式携带该Token,当且仅当消息中间件2以设定方式从业务消息中提取出该Token并确定该Token为自己派发出的合法的Token时,消息中间件2可认为该业务消息是合法的,并对其执行相应的响应操作。该业务消息传输过程同样适用于终端5,不再赘述。
但是上述方式具有以下两个缺点:
缺点1,消息中间件并没有从业务消息的内容本身出发来判断业务消息是否被篡改。例如,如果有恶意程序入侵终端3的应用程序A,且该恶意程序破解了业务消息隐式携带Token的方法,那么通过劫持应用程序A的出口而对业务消息的内容进行修改,或者在终端3对业务消息进行传递时拦截捕获了Token并应用于不合法的其他终端,那么此时消息中间件2是无法准确识别业务消息内容的正确性的。
缺点2,为了保证Token不容易被破解,可以通过消息中间件对所连终端本地的Token定期进行更新来实现。在消息中间件定期派发新Token,以对所连终端本地的Token进行更新时,若该消息中间件同时服务的终端有多个,那么将很难确保所有的终端都能够同时接收到消息中间件派发的最新的Token。这样一来,一些成功更新到最新Token的终端发送的业务消息将可以被消息中间件进行合法性的确认,而另一些未成功更新到最新Token的终端发送的业务消息将无法被消息中间件进行合法性的确认,如此容易出现因为Token原因导致的大面积消息传输失败的情况。
针对上述终端发送给消息中间件的业务消息易存在被篡改以及发生传输失败的技术问题,本申请实施例提供一种消息校验方法。如图2所示,为本申请实施例提供的一种消息校验方法的示意图,该方法包括:
步骤201,第一设备接收第二设备发送的第一业务消息和第一身份签名。
其中,所述第一身份签名是所述第二设备基于所述第一业务消息与所述第二设备本地的身份令牌生成的。
在本步骤中,第一设备可以为终端,也可以为消息中间件;在第一设备为终端时,第二设备可以为消息中间件,在第一设备为消息中间件时,第二设备可以为终端。
在本步骤中,由于第二设备发送给第一设备的内容除了有需要传递的第一业务消息,还包括第一身份签名,考虑到第一身份签名是第二设备基于需要传递的第一业务消息和自己本地的身份令牌生成的,因此本申请通过避免直接向第一设备传输身份令牌,从而可避免身份令牌被不法盗取所造成的损害。
步骤202,所述第一设备基于所述第二设备的设备标识,获取所述第二设备对应的身份令牌组;所述身份令牌组包括具有时间先后的先序身份令牌和后序身份令牌。
在本步骤中,当第一设备接收到第二设备传输来的第一业务消息时,为了确保该第一业务消息内容的正确性,可以基于第二设备同时传输来的第一身份签名进行验证;其中,为了避免身份令牌更新时,第一设备与第二设备本地的身份令牌容易存在不一致的情况,故本申请中通过在第一设备本地为第二设备设置两个身份令牌以形成一个身份令牌组,该身份令牌组中包括更新之前的身份令牌(即先序身份令牌)和更新之后的身份令牌(即后序身份令牌),从而在第一设备需要对第二设备所发业务消息进行内容合法性的校验时,可以基于该身份令牌组而进行;如此一来,在第二设备所发第一业务消息内容并没有被恶意篡改的条件下,身份令牌组中总是有一个可以用于校验的身份令牌,这样就实现了第二设备的身份令牌在需要被更新时,即使需要被更新的旧的身份令牌无法及时地被更新为新的身份令牌,第一设备都将可以基于本地为该第二设备设置的身份令牌组来对第二设备所发第一业务消息的内容正确性进行校验。
步骤203,所述第一设备按照所述先序身份令牌和所述后序身份令牌的优先级顺序,依序与所述第一业务消息生成第二身份签名,并在所述第二身份签名与所述第一身份签名一致时,确定所述第一业务消息的内容正确。
在本步骤中,当第一设备接收到第二设备发送的第一业务消息和第一身份签名,且获取到对应于第二设备的身份令牌组时,第一设备可以按照某种预设的对身份令牌组中的先序身份令牌和后序身份令牌进行使用的优先级顺序,依序分别与第一业务消息生成第二身份签名,并在某一个第二身份签名与第一身份签名一致时,第一设备将可以确定第二设备所发第一业务消息的内容并没有被篡改。
上述方案中,由于身份签名是基于身份令牌(即Token)得到的,则通过将对身份令牌进行验证的方式转换为对身份签名的验证,而避免在业务消息传递的过程中对身份令牌进行传输,如此可以规避背景技术中使用身份令牌进行传输时而存在的易被不法盗用的风险;进一步的,由于不再需要传输身份令牌,消息中间件可在本地缓存终端的身份令牌来对身份签名进行校验,如当第二设备连接到第一设备上时,第一设备中由于同时持有第二设备的两个身份令牌(即身份令牌组),包括具有时间先后的先序身份令牌和后序身份令牌,从而在第二设备向其传递业务消息时,无论第二设备有没有成功接收到第一设备发送给它的需要进行更新的后序身份令牌,第一设备都将可以通过对应的两个身份令牌来对业务消息进行内容正确性的校验,显然该方式可以极大地减少因为身份令牌无法同时在第一设备与第二设备之间同步更新而导致的大面积消息传输失败的情况。
以下将结合示例分别对上述一些步骤进行详细说明。
在本申请的某些实施中,所述第一设备采用分布式***的架构;所述第一设备生成有效时段按时间顺序依次延后的第一身份令牌、第二身份令牌和第三身份令牌,包括:针对任一身份令牌,所述第一设备基于共享密钥、所述第二设备的设备标识和所述身份令牌的有效时段,生成身份令牌;所述共享密钥应用于所述分布式***中的各第一设备。
例如,在终端启动用于和消息中间件进行业务消息传递的应用程序时,该应用程序可以向分布式***中的任一消息中间件发出请求,建立连接,并使用终端的设备标识和密码在该消息中间件上进行验密,若验密通过,则终端可以请求该消息中间件派发身份令牌(下文用Token表示身份令牌)。
其中,在消息中间件向终端派发Token时,可以先基于下述方式生成待派发的Token,并在生成待派发的Token后,可将所生成的Token发送至终端。其中,Token的生成方式如下:
Token=f(SecretKey+ClientID+Timestamp)
其中,f表示Token的生成算法,如可以选取CPU消耗比较低的任意算法,例如,这里可以使用经典的消息摘要算法SHA1,将任意长度的输入通过该算法换成固定长度的输出。使用SHA1可以保证,当输入的内容有变化时,输出的消息摘要必然不一样,本申请对Token的生成算法不做具体限定。ClientID表示终端的设备标识,不同的终端对应不同的设备标识。SecretKey表示共享私钥,也即同一分布式***中各消息中间件均使用相同的私钥,如此可以保证当终端所连接的消息中间件故障时,终端在切换到该分布式***中的其他正常可用的一消息中间件上去时,此时该新的消息中间件可以正常地为该终端生成相应的Token。Timestamp表示Token生成时的时间信息,比如本申请实施例中可对Timestamp取每个小时的整点进行计算,例如,6:00-7:00这一时间段期间生成的Token可以表示成Token(6:00),7:00-8:00这一时间段期间生成的Token可以表示为Token(7:00),不一一举例。
基于上述的Token生成方式,设有一终端于7:30分试图与消息中间件建立连接,并在消息中间件对终端的设备标识与密码验证通过后,消息中间件可以为其派发Token。其中,消息中间件关于该终端可一次性计算3个Token,分别记为Token(6:00)、Token(7:00)和Token(8:00),且消息中间件可以将Token(6:00)和Token(7:00)派发给终端,同时可在本地(指消息中间件的本地缓存)基于该终端的设备标识缓存该终端的Token(7:00)和Token(8:00),消息中间件通过缓存一组Token,如本申请实施例可对Token(7:00)和Token(8:00)进行缓存,则可以避免每一次消息中间件对Token的验证都要求消息中间件重新计算用于验证的Token,本申请实施例通过缓存一组Token,如此在消息中间件执行对Token的验证时,可直接从本地缓存中取出Token进行验证。
在终端接收到Token(6:00)和Token(7:00)时,本申请实施例中可设置终端总是优先使用最新的Token来计算身份签名,在这里即使用Token(7:00)。如当终端需要向消息中间件发送业务消息时,终端可以对Token(7:00)与业务消息的内容进行计算,计算出一个身份签名,从而终端可以在计算出身份签名后,将该身份签名附加在业务消息中,如附加在业务消息的末尾处,随业务消息一起传输给消息中间件。其中,可以通过下述方式计算身份签名:
Sign=f(Message+Token)
其中,Sign表示身份签名,f表示身份签名的生成算法,如可以选取CPU消耗比较低的任意算法,例如,这里可以使用经典的消息摘要算法SHA1,将任意长度的输入通过该算法换成固定长度的输出。使用SHA1可以保证,当输入的内容有变化时,输出的消息摘要必然不一样,本申请对身份签名的生成算法不做具体限定。Message表示业务消息的内容,Token表示终端需要使用的Token,如上述例子中Token取Token(7:00)。
在消息中间件接收到终端传输来的业务消息时,由于该业务消息中含有身份签名,此时消息中间件可以对接收到的身份签名进行验证以确定终端发送的业务消息是否被篡改。例如,此时消息中间件可以根据该终端的设备标识从而本地缓存中对应取出该终端的Token,即消息中间件可以对应取出Token(7:00)和Token(8:00);在消息中间件对应取出终端的一组Token后,本申请实施例可设置消息中间件总是优先使用更旧的Token来校验身份签名,在这里即使用Token(7:00)。如消息中间件可以根据Token(7:00)和接收到的业务消息的内容,计算出一个新的身份签名,如果该新的身份签名与终端传输来身份签名一致,则表示消息内容并没有被篡改,若不一致,则表示业务消息的内容已经被篡改过,此时消息中间件可向终端返回一个错误信息。
考虑到通过更新终端用于验证自身合法性的Token,则可以增强业务消息传递的安全性,因此目前的做法是会为终端本地的Token设置过期机制,比如目前可在整点小时对终端Token进行更新。但是该种Token过期机制若应用于分布式***中时,则设置的将并不那么合理。因为在分布式***中,一消息中间件可以同时连接有多个终端,但目前尚还无法实现同时对消息中间件所连接的所有的终端的Token都进行同步更新。因此,在每一次的Token更新节点,对于一些顺利完成了Token更新的终端,消息中间件将是可以对该些终端所发送的业务消息进行正确性的验证的,但是该消息中间件将无法实现对另外一些还未更新到最新Token的终端所发送的业务消息进行内容正确性的验证,如此将容易造成大面积的消息传输失败的情况。
为了解决这个技术问题,本申请实施例中可以通过设置具有一定时长的Token更新的缓冲期进行解决。对缓冲期的设置具体可以参见下述方法:
在上述步骤201的一个实施中,所述第一设备为消息中间件,所述第二设备为终端;所述第一设备接收第二设备发送的第一业务消息和第一身份签名之前,所述方法还包括:所述第一设备在身份令牌组更新周期之前的第一设定时长内接收所述第二设备发送的身份令牌更新请求;所述第一设备生成有效时段按时间顺序依次延后的第一身份令牌、第二身份令牌和第三身份令牌;所述第一设备将所述第一身份令牌和所述二身份令牌发送至所述第二设备;其中所述第二设备用于根据所述第一身份令牌更新本地的先序身份令牌并根据所述第二身份令牌更新本地的后序身份令牌。
例如,结合前述的7:30分连接上消息中间件的终端例子,本申请实施例中若根据目前的如在整点小时对终端以及消息中间件(本申请实施例中由于消息中间件本地会缓存有各终端的身份令牌组,故消息中间件本地的身份令牌组也将会在整点小时的时候需要被更新)的Token进行更新的机制,那么理想状态下,消息中间件将于8:00准时重新计算3个Token,分别为Token(7:00)、Token(8:00)和Token(9:00),并将Token(7:00)和Token(8:00)发送至终端,以使终端使用该组新的Token对自己本地的Token(6:00)和Token(7:00)分别进行更新,以及消息中间件可使用Token(8:00)和Token(9:00)这一组新的Token来对自己本地的Token(7:00)和Token(8:00)分别进行更新,从而在一个新的Token使用周期中(即8:00-9:00这一时间段中),消息中间件将可以使用更旧的Token(即Token(8:00))来对终端基于的最新的Token(即Token(8:00))所生成的身份签名进行校验,以确定终端所发业务消息是否被篡改。但是,分布式***中,消息中间件由于同时连接有多个终端,目前是无法保证在整点小时的时候,消息中间件与所有的终端的Token都能够被同时更新的。对于该问题,本申请实施例中如可设置终端将在整点小时之前的一定时间内就可以向消息中间件请求派发新一Token使用周期中的Token了,如可以提前10分钟(说明的是,具体提前的时长可以由本领域技术人员按需确定),也即上述例子中终端可以于7:50分向消息中间件请求派发新的Token;同时,考虑到终端在向消息中间件请求派发新一Token使用周期中的Token时可能存在请求失败的情况,为此,本申请实施例中还可以将对消息中间件本地用于校验身份签名的一组Token进行更新的时间向后进行推迟,如可向后推迟10分钟(说明的是,具体推迟的时长可以由本领域技术人员按需确定),也即上述例子中消息中间件可以于8:10分对自己本地的一组Token进行更新。如此,本申请基于缓冲期的设置,在7:50分至8:10分这一时间区间,当消息中间件接收到该新Token的派发请求时,消息中间件将可以一次性计算出3个Token,分别为Token(7:00)、Token(8:00)和Token(9:00),并将Token(7:00)和Token(8:00)发送至终端,并在本地缓存Token(8:00)和Token(9:00)(注意,此时消息中间件还并没有将Token(8:00)和Token(9:00)更新掉自己本地用于校验的Token(7:00)和Token(8:00),消息中间件对自己本地的身份令牌组执行更新操作的时间需要等到8:10分)。如此,终端在接收到消息中间件发送的Token(7:00)和Token(8:00)之后,终端可以使用Token(7:00)对自己本地的Token(6:00)进行更新,以及使用Token(8:00)对自己本地的Token(7:00)进行更新,从而在终端完成对自己本地的一组Token的更新后,终端将可以使用更新后的一组Token中的最新的Token进行身份签名的计算,即这里使用Token(8:00)。
因此,在7:50分之后、8:10分之前的某一个时间点,如7:58分时,终端若能接收到消息中间件所派发的新的一组Token时,那么此时终端与消息中间件本地的Token将完全一致,均为Token(7:00)和Token(8:00)。在7:58分之后,当终端需要向消息中间件发送业务消息时,此时,终端将使用最新的Token生成身份签名,即使用Token(8:00)生成身份签名;相应的,当消息中间件接收到终端发送的业务消息、而需要对随附的身份签名进行校验时,本申请实施例可以采用以下方式进行:
在本申请的某些实施中,所述第一设备为消息中间件,所述第二设备为终端;所述第一设备按照所述先序身份令牌和所述后序身份令牌的优先级顺序,依序与所述第一业务消息生成第二身份签名,包括:所述第一设备生成基于所述先序身份令牌的第二身份签名;所述第一设备若确定基于所述先序身份令牌的第二身份签名与所述第一身份签名不一致,则生成基于所述后序身份令牌的第二身份签名;所述第一设备若确定基于所述后序身份令牌的第二身份签名与所述第一身份签名一致,则确定所述第一业务消息的内容正确。
如,设在7:59分时终端需要向消息中间件发送业务消息,那么终端此时可以基于Token(8:00)生成身份签名,并将所生成的身份签名附在业务消息的尾部一并发送给消息中间件;相应的,消息中间件将可以接收到终端发送的业务消息,并需要基于本地关于该终端的一组Token——Token(7:00)和Token(8:00)来对随附的身份签名进行验证。其中,消息中间件首先可以基于更旧的Token,即Token(7:00)来对随附的身份签名进行验证,如消息中间件可以基于Token(7:00)和接收到的业务消息的内容生成一个身份签名,记作身份签名1;接着,消息中间件可以将身份签名1与终端在业务消息中随附的身份签名进行比较,此时消息中间件将确定身份签名1与随附的身份签名不一致,并立即基于Token(8:00)和接收到的业务消息的内容重新生成一个身份签名,记作身份签名2;最后,消息中间件可以将身份签名2与随附的身份签名进行比较,其中在业务消息并没有被恶意篡改时,那么此时的身份签名2将会与随附的身份签名一致,因此,若消息中间件确定身份签名2与随附的身份签名一致,那么消息中间件就可以确定终端发送的业务消息的内容正确。
在本申请的某些实施中,所述确定所述第一业务消息的内容正确之后,所述方法还包括:所述第一设备对与所述第一身份签名一致的第二身份签名基于的身份令牌进行标记;所述标记用于在所述第一设定时长内控制所述第一设备根据所述标记指示的身份令牌对所述第二设备发送的各身份签名进行校验;所述第二身份签名为所述身份令牌组中优先级较低的身份令牌对应的身份签名。
例如,对于上述例子,若消息中间件确定身份签名2与随附的身份签名一致,那么消息中间件将会对该终端进行标记,对终端进行标记的作用在于,在8:10之前,如果该终端继续向自己(指消息中间件)发送业务消息,那么消息中间件将自动根据Token(8:00)来对业务消息中随附的身份签名进行验证,而无需先使用Token(7:00)进行验证、并在Token(7:00)验证不通过时再切换到Token(8:00)进行验证,如此一来,可以节省消息中间件的计算资源。
对于前述例子中,终端于7:58分成功接收到消息中间件所派发的新的一组Token,并于7:59分向消息中间件发送了一业务消息;其中,若消息中间件通过Token(8:00)确定了该业务消息内容是正确的,那么在此之后,若消息中间件需要向终端返回关于该业务消息的响应消息,此时消息中间件将基于本地缓存中的、与该终端对应的一组Token中的时间相对更旧的Token来为需要返回给终端的响应消息生成身份签名,也即消息中间件可基于Token(7:00)生成对应于响应消息的身份签名,随后消息中间件可以将所生成的身份签名附在响应消息的尾部并一齐发送给终端。
相应的,当终端接收到消息中间件发送的响应消息(此处的响应消息可以理解成业务消息)、而需要对随附的身份签名进行校验时,本申请实施例可以采用以下方式进行:
在本申请的某些实施中,所述第一设备为终端,所述第二设备为消息中间件;所述第一设备按照所述先序身份令牌和所述后序身份令牌的优先级顺序,依序与所述第一业务消息生成第二身份签名,包括:所述第一设备生成基于所述后序身份令牌的第二身份签名;所述第一设备若确定基于所述后序身份令牌的第二身份签名与所述第一身份签名不一致,则生成基于所述前序身份令牌的第二身份签名;所述第一设备若确定基于所述前序身份令牌的第二身份签名与所述第一身份签名一致,则确定所述第一业务消息的内容正确。
如,设在8:00分时消息中间件需要向终端发送响应消息,那么消息中间件此时可以基于Token(7:00)生成身份签名,并将所生成的身份签名附在响应消息的尾部一并发送给终端;相应的,终端将可以接收到消息中间件发送的响应消息,并需要基于本地缓存的一组Token——Token(7:00)和Token(8:00)来对随附的身份签名进行验证。其中,终端首先可以基于最新的Token,即Token(8:00)来对随附的身份签名进行验证,如终端可以基于Token(8:00)和接收到的响应消息的内容生成一个身份签名,记作身份签名3;接着,终端可以将身份签名3与消息中间件在响应消息中随附的身份签名进行比较,此时终端将确定身份签名3与随附的身份签名不一致,并立即基于Token(7:00)和接收到的响应消息的内容重新生成一个身份签名,记作身份签名4;最后,终端可以将身份签名4与随附的身份签名进行比较,其中在响应消息并没有被恶意篡改时,那么此时的身份签名4将会与随附的身份签名一致,因此,若终端确定身份签名4与随附的身份签名一致,那么终端就可以确定消息中间件发送的响应消息的内容正确。
在本申请的某些实施中,所述第一设备在身份令牌组更新周期之后的第二设定时长内,根据所述第二身份令牌更新本地的先序身份令牌并根据所述第三身份令牌更新本地的后序身份令牌。
例如,前述例子中可设置在8:10分时控制消息中间件对自己本地的一组Token进行更新,如在8:10分,消息中间件可将已经计算出的、并存于本地缓存中的Token(8:00)和Token(9:00)分别对上个Token使用周期中的一组Token,即Token(7:00)和Token(8:00)分别进行更新,如此在8:10分到至少8:50分这一时间段中,消息中间件将可以基于更旧的Token(即Token(8:00))来对终端基于的更新的Token(即Token(8:00))所生成的随附在业务消息尾部的身份签名进行验证,从而决策终端所发送的业务消息的内容正确性。
基于同样的构思,本申请实施例提供一种第一设备,如图3所示,为本申请实施例提供的一种第一设备的示意图,该第一设备包括接收单元301、获取单元302和处理单元303;
接收单元301,用于接收第二设备发送的第一业务消息和第一身份签名;所述第一身份签名是所述第二设备基于所述第一业务消息与所述第二设备本地的身份令牌生成的;
获取单元302,用于基于所述第二设备的设备标识,获取所述第二设备对应的身份令牌组;所述身份令牌组包括具有时间先后的先序身份令牌和后序身份令牌;
处理单元303,用于按照所述先序身份令牌和所述后序身份令牌的优先级顺序,依序与所述第一业务消息生成第二身份签名,并在所述第二身份签名与所述第一身份签名一致时,确定所述第一业务消息的内容正确。
进一步的,对于该第一设备,该第一设备为消息中间件,所述第二设备为终端;处理单元303,具体用于:生成基于所述先序身份令牌的第二身份签名;若确定基于所述先序身份令牌的第二身份签名与所述第一身份签名不一致,则生成基于所述后序身份令牌的第二身份签名;若确定基于所述后序身份令牌的第二身份签名与所述第一身份签名一致,则确定所述第一业务消息的内容正确。
进一步的,对于该第一设备,该第一设备为终端,所述第二设备为消息中间件;处理单元303,具体用于:生成基于所述后序身份令牌的第二身份签名;若确定基于所述后序身份令牌的第二身份签名与所述第一身份签名不一致,则生成基于所述前序身份令牌的第二身份签名;若确定基于所述前序身份令牌的第二身份签名与所述第一身份签名一致,则确定所述第一业务消息的内容正确。
进一步的,对于该第一设备,该第一设备为消息中间件,所述第二设备为终端;接收单元301,还用于:在身份令牌组更新周期之前的第一设定时长内接收所述第二设备发送的身份令牌更新请求;生成有效时段按时间顺序依次延后的第一身份令牌、第二身份令牌和第三身份令牌;将所述第一身份令牌和所述二身份令牌发送至所述第二设备;其中所述第二设备用于根据所述第一身份令牌更新本地的先序身份令牌并根据所述第二身份令牌更新本地的后序身份令牌。
进一步的,对于该第一设备,处理单元303,还用于:在身份令牌组更新周期之后的第二设定时长内,根据所述第二身份令牌更新本地的先序身份令牌并根据所述第三身份令牌更新本地的后序身份令牌。
进一步的,对于该第一设备,该第一设备采用分布式***的架构;处理单元303,还用于:针对任一身份令牌,基于共享密钥、所述第二设备的设备标识和所述身份令牌的有效时段,生成身份令牌;所述共享密钥应用于所述分布式***中的各第一设备。
进一步的,对于该第一设备,处理单元303,还用于:对与所述第一身份签名一致的第二身份签名基于的身份令牌进行标记;所述标记用于在所述第一设定时长内控制所述第一设备根据所述标记指示的身份令牌对所述第二设备发送的各身份签名进行校验;所述第二身份签名为所述身份令牌组中优先级较低的身份令牌对应的身份签名。
本申请实施例还提供了一种计算设备,该计算设备具体可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)等。该计算设备可以包括中央处理器(Center Processing Unit,CPU)、存储器、输入/输出设备等,输入设备可以包括键盘、鼠标、触摸屏等,输出设备可以包括显示设备,如液晶显示器(Liquid Crystal Display,LCD)、阴极射线管(Cathode Ray Tube,CRT)等。
存储器,可以包括只读存储器(ROM)和随机存取存储器(RAM),并向处理器提供存储器中存储的程序指令和数据。在本申请实施例中,存储器可以用于存储消息校验方法的程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行消息校验方法。
如图4所示,为本申请实施例提供的一种计算设备的示意图,该计算设备包括:
处理器401、存储器402、收发器403、总线接口404;其中,处理器401、存储器402与收发器403之间通过总线405连接;
所述处理器401,用于读取所述存储器402中的程序,执行上述消息校验方法;
处理器401可以是中央处理器(central processing unit,简称CPU),网络处理器(network processor,简称NP)或者CPU和NP的组合。还可以是硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,简称ASIC),可编程逻辑器件(programmable logic device,简称PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,简称CPLD),现场可编程逻辑门阵列(field-programmable gate array,简称FPGA),通用阵列逻辑(generic array logic,简称GAL)或其任意组合。
所述存储器402,用于存储一个或多个可执行程序,可以存储所述处理器401在执行操作时所使用的数据。
具体地,程序可以包括程序代码,程序代码包括计算机操作指令。存储器402可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,简称RAM);存储器402也可以包括非易失性存储器(non-volatile memory),例如快闪存储器(flash memory),硬盘(hard disk drive,简称HDD)或固态硬盘(solid-state drive,简称SSD);存储器402还可以包括上述种类的存储器的组合。
存储器402存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:
操作指令:包括各种操作指令,用于实现各种操作。
操作***:包括各种***程序,用于实现各种基础业务以及处理基于硬件的任务。
总线405可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
总线接口404可以为有线通信接入口,无线总线接口或其组合,其中,有线总线接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线总线接口可以为WLAN接口。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行消息校验方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种消息校验方法,其特征在于,包括:
第一设备接收第二设备发送的第一业务消息和第一身份签名;所述第一身份签名是所述第二设备基于所述第一业务消息与所述第二设备本地的身份令牌生成的;
所述第一设备基于所述第二设备的设备标识,获取所述第二设备对应的身份令牌组;所述身份令牌组包括具有时间先后的先序身份令牌和后序身份令牌;
所述第一设备按照所述先序身份令牌和所述后序身份令牌的优先级顺序,依序与所述第一业务消息生成第二身份签名,并在所述第二身份签名与所述第一身份签名一致时,确定所述第一业务消息的内容正确。
2.如权利要求1所述的方法,其特征在于,所述第一设备为消息中间件,所述第二设备为终端;
所述第一设备按照所述先序身份令牌和所述后序身份令牌的优先级顺序,依序与所述第一业务消息生成第二身份签名,包括:
所述第一设备生成基于所述先序身份令牌的第二身份签名;
所述第一设备若确定基于所述先序身份令牌的第二身份签名与所述第一身份签名不一致,则生成基于所述后序身份令牌的第二身份签名;
所述第一设备若确定基于所述后序身份令牌的第二身份签名与所述第一身份签名一致,则确定所述第一业务消息的内容正确。
3.如权利要求1所述的方法,其特征在于,所述第一设备为终端,所述第二设备为消息中间件;
所述第一设备按照所述先序身份令牌和所述后序身份令牌的优先级顺序,依序与所述第一业务消息生成第二身份签名,包括:
所述第一设备生成基于所述后序身份令牌的第二身份签名;
所述第一设备若确定基于所述后序身份令牌的第二身份签名与所述第一身份签名不一致,则生成基于所述前序身份令牌的第二身份签名;
所述第一设备若确定基于所述前序身份令牌的第二身份签名与所述第一身份签名一致,则确定所述第一业务消息的内容正确。
4.如权利要求1所述的方法,其特征在于,所述第一设备为消息中间件,所述第二设备为终端;
所述第一设备接收第二设备发送的第一业务消息和第一身份签名之前,所述方法还包括:
所述第一设备在身份令牌组更新周期之前的第一设定时长内接收所述第二设备发送的身份令牌更新请求;
所述第一设备生成有效时段按时间顺序依次延后的第一身份令牌、第二身份令牌和第三身份令牌;
所述第一设备将所述第一身份令牌和所述二身份令牌发送至所述第二设备;其中所述第二设备用于根据所述第一身份令牌更新本地的先序身份令牌并根据所述第二身份令牌更新本地的后序身份令牌。
5.如权利要求4所述的方法,其特征在于,所述方法还包括:
所述第一设备在身份令牌组更新周期之后的第二设定时长内,根据所述第二身份令牌更新本地的先序身份令牌并根据所述第三身份令牌更新本地的后序身份令牌。
6.如权利要求4所述的方法,其特征在于,所述第一设备采用分布式***的架构;
所述第一设备生成有效时段按时间顺序依次延后的第一身份令牌、第二身份令牌和第三身份令牌,包括:
针对任一身份令牌,所述第一设备基于共享密钥、所述第二设备的设备标识和所述身份令牌的有效时段,生成身份令牌;所述共享密钥应用于所述分布式***中的各第一设备。
7.如权利要求1所述的方法,其特征在于,
所述确定所述第一业务消息的内容正确之后,所述方法还包括:
所述第一设备对与所述第一身份签名一致的第二身份签名基于的身份令牌进行标记;所述标记用于在所述第一设定时长内控制所述第一设备根据所述标记指示的身份令牌对所述第二设备发送的各身份签名进行校验;所述第二身份签名为所述身份令牌组中优先级较低的身份令牌对应的身份签名。
8.一种第一设备,其特征在于,包括:
接收单元,用于接收第二设备发送的第一业务消息和第一身份签名;所述第一身份签名是所述第二设备基于所述第一业务消息与所述第二设备本地的身份令牌生成的;
获取单元,用于基于所述第二设备的设备标识,获取所述第二设备对应的身份令牌组;所述身份令牌组包括具有时间先后的先序身份令牌和后序身份令牌;
处理单元,用于按照所述先序身份令牌和所述后序身份令牌的优先级顺序,依序与所述第一业务消息生成第二身份签名,并在所述第二身份签名与所述第一身份签名一致时,确定所述第一业务消息的内容正确。
9.一种计算机设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于调用所述存储器中存储的计算机程序,按照获得的程序执行如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111246074.XA CN113986578A (zh) | 2021-10-26 | 2021-10-26 | 一种消息校验方法及第一设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111246074.XA CN113986578A (zh) | 2021-10-26 | 2021-10-26 | 一种消息校验方法及第一设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113986578A true CN113986578A (zh) | 2022-01-28 |
Family
ID=79741429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111246074.XA Pending CN113986578A (zh) | 2021-10-26 | 2021-10-26 | 一种消息校验方法及第一设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113986578A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114513313A (zh) * | 2022-04-20 | 2022-05-17 | 云账户技术(天津)有限公司 | 基于令牌的鉴权方法、装置、电子设备及可读存储介质 |
-
2021
- 2021-10-26 CN CN202111246074.XA patent/CN113986578A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114513313A (zh) * | 2022-04-20 | 2022-05-17 | 云账户技术(天津)有限公司 | 基于令牌的鉴权方法、装置、电子设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10700861B2 (en) | System and method for generating a recovery key and managing credentials using a smart blockchain contract | |
CN109257334B (zh) | 一种基于区块链的数据上链***、方法及存储介质 | |
CN111163182B (zh) | 基于区块链的设备注册方法、装置、电子设备和存储介质 | |
US8984286B2 (en) | Message originator token verification | |
US10796001B2 (en) | Software verification method and apparatus | |
US20230370265A1 (en) | Method, Apparatus and Device for Constructing Token for Cloud Platform Resource Access Control | |
CN108696356B (zh) | 一种基于区块链的数字证书删除方法、装置及*** | |
CN112738253B (zh) | 基于区块链的数据处理方法、装置、设备及存储介质 | |
CN111639327A (zh) | 一种开放平台的认证方法及装置 | |
CN110958119A (zh) | 身份验证方法和装置 | |
CN112311779B (zh) | 应用于区块链***的数据访问控制方法及装置 | |
CN114513350B (zh) | 身份校验方法、***和存储介质 | |
CN112073433B (zh) | 一种ssl证书更新方法、装置、电子设备及存储介质 | |
WO2023093500A1 (zh) | 一种访问验证方法及装置 | |
CN111597537B (zh) | 基于区块链网络的证书签发方法、相关设备及介质 | |
US9203616B1 (en) | Multi-server fault tolerant data store update | |
US9166970B1 (en) | Dynamic framework for certificate application configuration | |
CN113986578A (zh) | 一种消息校验方法及第一设备 | |
CN112118292A (zh) | 用于跨链通信的方法、装置、网络节点和存储介质 | |
CN113225348B (zh) | 请求防重放校验方法和装置 | |
CN111932326B (zh) | 一种基于区块链网络的数据处理方法及相关设备 | |
CN115967508A (zh) | 数据访问控制方法及装置、设备、存储介质、程序产品 | |
CN110585717A (zh) | 一种信息处理方法及装置 | |
CN115168872B (zh) | 基于去中心化信任的公有云下tee状态连续性保护方法 | |
CN111212042B (zh) | 数据传输方法、装置和*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |