CN108234491B - 协议关联验证方法、装置及电子设备 - Google Patents

协议关联验证方法、装置及电子设备 Download PDF

Info

Publication number
CN108234491B
CN108234491B CN201810001211.5A CN201810001211A CN108234491B CN 108234491 B CN108234491 B CN 108234491B CN 201810001211 A CN201810001211 A CN 201810001211A CN 108234491 B CN108234491 B CN 108234491B
Authority
CN
China
Prior art keywords
protocol
check value
sent
update
server
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.)
Active
Application number
CN201810001211.5A
Other languages
English (en)
Other versions
CN108234491A (zh
Inventor
周志刚
陈少杰
张文明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201810001211.5A priority Critical patent/CN108234491B/zh
Publication of CN108234491A publication Critical patent/CN108234491A/zh
Application granted granted Critical
Publication of CN108234491B publication Critical patent/CN108234491B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/18Protocol analysers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/03Protocol definition or specification 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/26Special purpose or proprietary protocols or architectures

Abstract

本发明实施例提供一种协议关联验证方法、装置及电子设备,该方法应用于客户端,该方法包括:获取待发送协议的上一条协议的第一校验值;根据所述第一校验值以及待发送协议的协议内容计算得到待发送协议的第二校验值;根据所述第一校验值、第二校验值以及待发送协议的协议内容对待发送协议进行更新以得到更新协议,所述更新协议携带有所述第一校验值、第二校验值以及协议内容;将更新协议发送至服务器。该协议关联验证方案可将客户端与服务器之间的多条协议进行关联,使得每一条协议都携带有其上一条协议的信息从而与其上一条协议关联,如此协议与协议之间形成强关联性,提高了整体协议的安全性,保障了客户端与服务器之间的通信安全。

Description

协议关联验证方法、装置及电子设备
技术领域
本发明涉及人机识别技术领域,具体而言,涉及一种协议关联验证方法、装置及电子设备。
背景技术
客户端应用与服务器之间一般是基于网络协议以进行交互,通过协商定好网络数据的格式、字段、内容等,从而实现客户端与服务器之间的通讯。现在的各种灰色产业链则是通过破解网络协议来达到各种非法的目的。针对非法破解行为,现有的通常做法是提高协议的安全性,而提高协议的安全性的通常做法是对协议内容进行加密,以提高破解的门槛。但这种方式只能对单条协议的安全性进行一定程度提高,无法将客户端与服务器之间的多条协议形成一个整体以进一步提高客户端与服务器之间的通信安全。
发明内容
有鉴于此,本发明的目的在于,提供一种协议关联验证方法、装置及电子设备以解决上述问题。
本发明的较佳实施例提供一种协议关联验证方法,应用于客户端,所述方法包括:
获取待发送协议的上一条协议的第一校验值;
根据所述第一校验值以及所述待发送协议的协议内容计算得到所述待发送协议的第二校验值;
根据所述第一校验值、所述第二校验值以及所述待发送协议的协议内容对所述待发送协议进行更新以得到更新协议,所述更新协议携带有所述第一校验值、第二校验值以及协议内容;
将所述更新协议发送至服务器。
进一步地,在上述方法中,所述根据所述第一校验值、所述第二校验值以及所述待发送协议的协议内容对所述待发送协议进行更新以得到更新协议的步骤,包括:
将所述待发送协议的协议内容、所述第一校验值以及所述第二校验值组合以得到更新协议。
进一步地,在上述方法中,所述根据所述第一校验值、所述第二校验值以及所述待发送协议的协议内容对所述待发送协议进行更新以得到更新协议的步骤,包括:
根据所述服务器下发的关键值对所述待发送协议的第二校验值进行加密;
将所述待发送协议的协议内容、所述第一校验值以及加密后的第二校验值组合以得到更新协议。
进一步地,在上述方法中,所述待发送协议为多个,所述根据所述服务器下发的关键值对所述待发送协议的第二校验值进行加密的步骤,包括:
在所述服务器下发的关键值对多个待发送协议中的任意一个待发送协议的第二校验值进行加密之后,利用MD5算法对该关键值进行更新,以得到更新关键值;
利用所述更新关键值对所述待发送协议的第二校验值进行加密。
本发明的另一较佳实施例提供一种协议关联验证方法,应用于服务器,所述方法包括:
接收客户端发送的更新协议,提取出所述更新协议携带的第一校验值、第二校验值以及协议内容;
根据所述第一校验值、所述第二校验值以及所述协议内容对所述更新协议进行验证;
若验证失败,则向所述客户端返回表明所述更新协议验证失败的验证信息,并在所述客户端发送所述更新协议的下一条更新协议时不作响应。
进一步地,在上述方法中,所述根据所述第一校验值、所述第二校验值以及所述协议内容对所述更新协议进行验证的步骤,包括:
根据所述第一校验值以及所述协议内容计算得到所述更新协议的第二校验值;
将计算得到的第二校验值与提取出的所述更新协议携带的第二校验值进行比对,若一致,则判定验证成功。
进一步地,在上述方法中,所述根据所述第一校验值、所述第二校验值以及所述协议内容对所述更新协议进行验证的步骤,包括:
检测所述第一校验值是否与预存的所述更新协议的第一校验值一致,若一致,则根据所述协议内容以及所述第一校验值计算得到所述更新协议的第二校验值;
根据产生的关键值对计算得到的第二校验值进行加密;
检测加密后的第二校验值是否与提取出的所述更新协议携带的第二校验值一致,若一致,则判定验证成功。
本发明的另一较佳实施例提供一种协议关联验证装置,应用于客户端,所述装置包括:
获取模块,用于获取待发送协议的上一条协议的第一校验值;
计算模块,用于根据所述第一校验值以及所述待发送协议的协议内容计算得到所述待发送协议的第二校验值;
更新协议获得模块,用于根据所述第一校验值、所述第二校验值以及所述待发送协议的协议内容对所述待发送协议进行更新以得到更新协议,所述更新协议携带有所述第一校验值、第二校验值以及协议内容;
更新协议发送模块,用于将所述更新协议发送至服务器。
本发明的另一较佳实施例提供一种协议关联验证装置,应用于服务器,所述装置包括:
提取模块,用于接收客户端发送的更新协议,提取出所述更新协议携带的第一校验值、第二校验值以及协议内容;
验证模块,用于根据所述第一校验值、所述第二校验值以及所述协议内容对所述更新协议进行验证;
验证信息发送模块,用于在验证失败时,向所述客户端返回表明所述更新协议验证失败的验证信息,并在所述客户端发送所述更新协议的下一条更新协议时不作响应。
本发明的另一较佳实施例提供一种电子设备,包括:
存储器;
处理器;及
上述的协议关联验证装置,包括一个或多个存储于所述存储器中并由所述处理器执行的软件功能模块。
本发明实施例提供的协议关联验证方法、装置及电子设备,针对客户端待发送至服务器的待发送协议,利用待发送协议的上一条协议的第一校验值以及待发送协议的协议内容计算得到待发送协议的第二校验值。通过第一校验值、第二校验值及协议内容对待发送协议进行更新以得到更新协议,并将更新协议发送至服务器,服务器根据接收到的更新协议携带的第一校验值、第二校验值及协议内容对更新协议进行验证。该协议关联验证方案可将客户端与服务器之间的多条协议进行关联,使得每一条协议都携带有其上一条协议的信息从而与其上一条协议关联,如此协议与协议之间形成强关联性,提高了整体协议的安全性,保障了客户端与服务器之间的通信安全。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的协议关联验证方法的应用场景示意图。
图2为本发明实施例提供的一种电子设备的结构框图。
图3为本发明实施例提供的电子设备的另一结构框图。
图4为本发明实施例提供的应用于客户端的协议关联验证方法的流程图。
图5为图4中步骤S103的子步骤的流程图。
图6为图5中步骤S1031的子步骤的流程图。
图7为本发明实施例提供的应用于服务器的协议关联验证方法的流程图。
图8为图7中步骤S203的子步骤的流程图。
图9为图7中步骤S203的子步骤的另一流程图。
图10为本发明实施例提供的客户端与服务器之间的交互示意图。
图11为本发明实施例提供的应用于客户端的第一协议关联验证装置的功能模块框图。
图12为本发明实施例提供的应用于服务器的第二协议关联验证装置的功能模块框图。
图标:100-客户端;110-第一协议关联验证装置;111-获取模块;112-计算模块;113-更新协议获取模块;114-更新协议发送模块;120-第一处理器;130-第一存储器;200-服务器;210-第二协议关联验证装置;211-提取模块;212-验证模块;213-验证信息发送模块;220-第二处理器;230-第二存储器。
具体实施方式
目前,对于联网的客户端应用来说,一般是基于网络协议来实现与服务器之间的交互,例如对于直播平台来说,一个用户登录至服务器,则是通过客户端发送登录协议到服务器,服务器对客户端的登录协议进行验证并答复登录是否成功。又如,客户端发送一条弹幕,则是通过网络弹幕协议发送至服务器,服务器转发到对应直播房间的其他所有的客户端。然而现在各种灰色产业链则是通过破解网络协议来达到各种非法目的。例如盗取视频流信息,通过破解获取视频流观看协议来盗取视频流。例如刷人气的黑客,则是通过破解登录至直播间的客户端的登录协议,从而可直接发送大量的网络协议来模拟大量虚假的客户端登录到直播间,以实现虚假刷人气的行为。现有技术中,一般采用对协议内容进行加密来提高非法破解的门槛,以提高信息安全性。发明人经研究发现,现有技术中采用的方案只能针对单条的协议,无法利用协议与协议之间的关联来增强整体通讯的安全性。
基于上述研究发现,本发明实施例提供一种协议关联验证方案,通过将客户端与服务器之间的多条协议进行关联,使得每一条协议都携带有其上一条协议的信息从而与其上一条协议关联,如此来实现协议与协议之间的强关联,以保障客户端与服务器之间的通信安全。
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,为本发明实施例提供的一种协议关联验证方法的应用场景示意图。该场景包括客户端100和服务器200,所述客户端100通过网络与所述服务器200通信连接,以进行数据通信或交互。在本实施例中,所述客户端100包括多个,多个所述客户端100与所述服务器200通信连接。在本实施例中,所述客户端100可以是但不限于个人电脑、平板电脑、智能手机、移动上网设备等。所述客户端100上可安装视频应用软件,以供用户进行视频观看或视频直播。所述服务器200为对应于所述客户端100上安装的视频应用软件的后台服务器,即提供视频观看、视频直播平台。所述服务器200可以是网络服务器、数据库服务器,可以是单独的服务器也可以是服务器集群等。
请参阅图2,为本发明实施例提供的一种电子设备的示意性结构框图。在本实施例中,所述电子设备可以为上述的客户端100,所述客户端100包括第一协议关联验证装置110、第一处理器120以及第一存储器130。其中,所述第一存储器130与所述第一处理器120之间直接或间接的电性连接,以实现数据的传输或交互。所述第一协议关联验证装置110包括至少一个可以软件或固件的形式存储于所述第一存储器130中或固化在所述客户端100的操作系统中的软件功能模块。所述第一处理器120用于执行所述第一存储器130中存储的可执行模块,例如所述第一协议关联验证装置110包括的软件功能模块或计算机程序。
请参阅图3,为本发明实施例提供的另一种电子设备的示意性结构框图。在本实施例中,所述电子设备可以为上述的服务器200,所述服务器200包括第二协议关联验证装置210、第二处理器220以及第二存储器230。其中,所述第二存储器230与所述第二处理器220之间直接或间接的电性连接,以实现数据的传输或交互。所述第二协议关联验证装置210包括至少一个可以软件或固件的形式存储于所述第二存储器230中或固化在所述服务器200的操作系统中的软件功能模块。所述第二处理器220用于执行所述第二存储器230中存储的可执行模块,例如所述第二协议关联验证装置210包括的软件功能模块或计算机程序。
请参阅图4,是本发明实施例提供的一种应用于上述客户端100的协议关联验证方法的流程图。所应说明的是,本发明提供的方法不以图4及以下所述的具体顺序为限制。下面将对图4中示出的各步骤进行详细说明。
步骤S101,获取待发送协议的上一条协议的第一校验值。
步骤S103,根据所述第一校验值以及所述待发送协议的协议内容计算得到所述待发送协议的第二校验值。
步骤S105,根据所述第一校验值、所述第二校验值以及所述待发送协议的协议内容对所述待发送协议进行更新以得到更新协议,所述更新协议携带有所述第一校验值、第二校验值以及协议内容。
在本实施例中,针对客户端100发送至服务器200的每一条协议,在原有协议内容的基础上添加校验值以组成新的协议,将新的协议发送至服务器200,服务器200再对接收到的协议进行验证,以此来提高客户端100与服务器200之间的通信安全。可选地,客户端100在向服务器200发送协议时,将每一条待发送协议与其上一条协议相关联,如此则每一条协议均与其上一条协议关联,从而使得客户端100发送至服务器200的所有协议均依次形成关联。
可选地,在本实施例中,所述客户端100获取待发送协议的上一条协议的第一校验值,根据所述第一校验值以及所述待发送协议的协议内容计算得到所述待发送协议的第二校验值。在本实施例中,所述第一校验值和所述第二校验值均为CRC校验字段。
在本实施例中,假设当前待发送协议为type@=login/name@=abc/password@=12510/,待发送协议的上一条协议的第一校验值为prevCrc32@=0,则该条待发送协议的第二校验值可根据待发送协议的协议内容以及其上一条协议的第一校验值并利用crc32算法来计算得到,如下:
crc32=Crc32.Create("type@=login/name@=abc/password@=12510/prevCrc32@=0")
可选地,再根据所述第一校验值、计算得到的所述第二校验值以及所述待发送协议的协议内容对所述待发送协议进行更新以得到更新协议。
在本实施例中,若所述待发送协议为客户端100发送至服务器200的第一条网络协议,可根据以下步骤获得更新协议。
针对客户端100发送至服务器200的第一条网络协议,例如登录协议,则可将所述待发送协议的协议内容、所述第一校验值以及所述第二校验值组合以得到更新协议。
在本实施例中,若所述待发送协议为客户端100发送给服务器200的第一条协议,则默认其上一条协议的CRC校验字段为0。将其上一条协议的CRC校验字段以及计算得到的待发送协议的CRC校验字段添加至待发送协议的协议内容后端,以组合得到更新协议。例如,假设根据上述步骤计算得到的待发送协议的第二校验值为Crc32@=eab2eefd,而该待发送协议的上一条协议的第一校验值为prevCrc32@=0,该待发送协议的协议内容为type@=login/name@=abc/password@=12510/。则最终得到的该待发送协议的更新协议为type@=login/name@=abc/password@=12510/prevCrc32@=0/Crc32@=eab2eefd。如此,则可以实现对客户端100发送至服务器200的第一条网络协议的关联处理。
在客户端100登录至服务器200之后,服务器200会向客户端100下发一个关键值以用于客户端100后续发送的协议的加密处理。可选地,在本实施例中,若所述待处理协议并非客户端100发送至服务器200的第一条协议,请参阅图5,可根据以下步骤获得待发送协议的更新协议:
步骤S1031,根据所述服务器200下发的关键值对所述待发送协议的第二校验值进行加密。
步骤S1033,将所述待发送协议的协议内容、所述第一校验值以及加密后的第二校验值组合以得到更新协议。
在本实施例中,为了保障客户端100上报的协议内容在不同客户端100之间存在差异性,以避免非法入侵一次性对大量不同的客户端100造成侵害,在客户端100登录至服务器200之后,服务器200可向各客户端100下发一关键值以用于对客户端100发送的协议进行加密。在本实施例中,所述关键值可为32位的随机字符串。所述关键值也可为其他形式的随机数值或字符串,对此在本实施例中不作具体限制。
在本实施例中,客户端100发送至服务器200的第一条网络协议一般为登录协议,假设客户端100继登录协议后发送至服务器200的第二条协议为获取用户的个人信息的协议,即该协议为当前的待发送协议。
假设该待发送协议的协议内容为type@=userinfo/pic@=001/gift@=10/。获取该待发送协议的上一条协议的第一校验值,即上述的登录协议的CRC校验字段prevCrc32@=eab2eefd。将得到的登录协议的CRC校验字段添加至该待发送协议的后端,得到添加后的协议为type@=userinfo/pic@=001/gift@=10/prevCrc32@=eab2eefd/。
根据该待发送协议的协议内容以及其上一条协议的CRC校验字段并利用crc32算法计算得到该待发送协议的第二校验值,如下:
crc32=Crc32.Create("type@=userinfo/pic@=001/gift@=10/prevCrc32@=eab2eefd/")
进一步地,根据服务器200下发的关键值并利用加密算法,例如TEA算法对计算得到的待发送协议的第二校验值进行加密,如下:
encryptCrc32=TEA.Encrypt(crc32,KEY)
其中,TEA.Encrypt为TEA加密算法的加密接口,参数crc32则是所述待发送协议加密前的第二校验值,参数KEY则是服务器200下发的关键值,encryptCrc32为所述待发送协议加密后的第二校验值。
进一步地,将待发送协议的协议内容、所述第一校验值以及加密后的第二校验值组合以得到该待发送协议的更新协议:type@=userinfo/pic@=001/gift@=10/prevCrc32@=eab2eefd/Crc32@=encryptCrc32。
可选地,在本实施例中,为了进一步对关键值进行加密保护,请参阅图6,步骤S1031可以包括步骤S10311和步骤S10313两个子步骤。
步骤S10311,在所述服务器200下发的关键值对所述多个待发送协议中的任意一个待发送协议的第二校验值进行加密之后,利用MD5算法对该关键值进行更新,以得到更新关键值。
步骤S10313,利用所述更新关键值对所述待发送协议的第二校验值进行加密。
在本实施例中,在对待发送协议进行加密时,可直接采用服务器200下发的关键值进行加密,而为了进一步提高关键值的安全性,也可对关键值进行更新,以更新后的关键值对待发送协议进行加密。例如,若当前的待发送协议为客户端100发送至服务器200的第二条网络协议,则可直接利用服务器200下发的关键值对该待发送协议进行加密。若当前的待发送协议为客户端100发送至服务器200的第三条网络协议,则可对上一轮的关键值进行更新,以更新后的关键值对该第三网络协议进行加密。
在本实施例中,在服务器200下发的关键值用于对多个待发送协议中的任意一个待发送协议的第二校验值进行加密后,则对使用过的关键值进行更新。在本实施例中,可利用MD5算法对关键值进行更新以得到更新关键值,如:NEXT_KEY=Md5.Create(KEY)。再以得到的更新关键值对下一条待发送协议的第二校验值进行加密。需要说明的是,在本实施例中,对于关键值的更新频率不限于上述的方式,即可在关键值每使用完一轮后则对关键值进行更新,再以更新后的关键值对下一条待发送协议进行加密,也可以在关键值使用次数超过大于1的预设次数后,例如2次或4次,再对关键值进行更新,以更新后的关键值对后续待发送协议进行加密。对此在本实施例中不作具体限制,可根据需求进行相应设置。
步骤S107,将所述更新协议发送至服务器200。
在本实施例中,客户端100将得到的更新协议发送至服务器200,以便服务器200对更新协议进行验证,以保障通信安全。本实施例中,在客户端100发送至服务器200的所有协议中每一条协议,都会按上述方式计算各协议的本身的CRC校验字段,而各协议的CRC校验字段的计算依赖于其上一条协议的CRC校验字段,从而使得后续的每条协议均依赖于其之前发送的协议,使得越后面的协议越难以进行伪造。例如第50条协议,则依赖于前面的49条协议,第49条协议依赖于之前的48条协议,依次类推,第50条协议则依赖于之前发送的所有的协议。从而黑客是无法直接发送第50条协议,而不经过前面的49条协议。
请参阅图7,是本发明实施例提供的一种应用于上述服务器200的协议关联验证方法的流程图。所应说明的是,本发明提供的方法不以图7及以下所述的具体顺序为限制。下面将对图7中示出的各步骤进行详细说明。
步骤S201,接收客户端100发送的更新协议,提取出所述更新协议携带的第一校验值、第二校验值以及协议内容。
步骤S203,根据所述第一校验值、所述第二校验值以及所述协议内容对所述更新协议进行验证。
在本实施例中,当服务器200收到客户端100发送的更新协议后,会对客户端100的协议字段进行校验,以判断客户端100的协议是否非法。可选地,服务器200首先检测接收到的更新协议是否包含两段CRC校验字段,若未包含,则可判定为非法协议。若包含,服务器200则提取出更新协议携带的第一校验值、第二校验值以及协议内容,并根据提取出的信息对更新协议进行验证。
在本实施例中,若服务器200当前接收到的更新协议为客户端100发送的第一条协议,请参阅图8,步骤S203可以包括步骤S2031和步骤S2033两个子步骤。
步骤S2031,根据所述第一校验值以及所述协议内容计算得到所述更新协议的第二校验值。
步骤S2032,将计算得到的第二校验值与提取出的所述更新协议携带的第二校验值进行比对,若一致,则判定验证成功。
服务器200当前接收到的更新协议为上述的登录协议时,如该协议为type@=login/name@=abc/password@=12510/prevCrc32@=0/Crc32@=eab2eefd。服务器200在接收到该条协议后,提取出该协议前端的协议内容以及第一校验值type@=login/name@=abc/password@=12510/prevCrc32@=0/,根据提取出的协议内容及第一校验值计算得到该协议的第二校验值。再将计算得到的第二校验值与接收到的该更新协议携带的第二校验值Crc32@=eab2eefd进行对比,以检测两者是否一致,若一致则说明该条协议为合法协议,否则为非法协议。
在本实施例中,在判定该条协议为合法协议后,可将该条协议的第二校验值进行保存,以用于后续协议的验证。
可选地,在本实施例中,若服务器200当前接收到的更新协议并非客户端100发送至服务器200的第一条协议,则表明该更新协议为经过加密后的协议。对于此类协议,请参阅图9,服务器200可通过以下步骤来进行验证:
步骤S2033,检测所述第一校验值是否与预存的所述更新协议的第一校验值一致。
步骤S2034,在所述第一校验值与预存的所述更新协议的第一校验值一致时,根据所述协议内容以及所述第一校验值计算得到所述更新协议的第二校验值。
步骤S2035,根据产生的关键值对计算得到的第二校验值进行加密。
步骤S2036,检测加密后的第二校验值是否与提取出的所述更新协议携带的第二校验值一致。
步骤S2037,在加密后的第二校验值与提取出的所述更新协议携带的第二校验值一致时,判定验证成功。
在本实施例中,在服务器200接收到的更新协议并非客户端100发送的第一条协议时,假设为上述的第二协议type@=userinfo/pic@=001/gift@=10/prevCrc32@=eab2eefd/Crc32@=encryptCrc32。服务器200可提取出该协议的第一校验值prevCrc32@=eab2eefd,再检测提取出的第一校验值是否与预存的该更新协议的第一校验值一致。根据上述可知,服务器200在判定客户端100发送的协议为合法协议时,会将其协议的第二校验值进行保存。而服务器200当前接收到的协议的第一校验值正是其上一条协议本身的第二校验值,因此可知,在服务器200接收到新的协议时,其已存储有该新的协议的上一条协议的第二校验值,即该新的协议的第一校验值。
若提取出的第一校验值与预存的该更新协议的第一校验值一致则可继续进行下一步验证流程,若不一致,则说明该协议为非法的,可向客户端100返回验证失败的信息。
进一步地,在判定接收到的更新协议的第一校验值和预存的第一校验值一致后,服务器200可根据提取出的第一校验值以及该更新协议的协议内容,如type@=userinfo/pic@=001/gift@=10/prevCrc32@=eab2eefd/,计算得到该更新协议的第二校验值。
由上述可知,该更新协议携带的第二校验值为经过加密后的第二校验值,因此服务器200在计算得到该更新协议的第二校验值后可根据产生的关键值对计算得到的第二校验值进行加密。需要说明的是,服务器200一端采用的加密算法和客户端100采用的加密算法相同,且采用的初始的关键值也和下发至客户端100的初始的关键值一致。在本实施例中,服务器200可使用TEA加密算法对计算得到的第二校验值进行加密,将得到的加密后的第二校验值与客户端100上报的更新协议携带的第二校验值Crc32@=encryptCrc32进行对比。若两者一致,则说明客户端100上报的协议为合法的,若不一致则说明该协议为非法的。
在本实施例中,相应地,服务器200也可对关键值进行更新,服务器200对关键值进行更新的频率与方式和客户端100对关键值进行更新的频率和方式一致。服务器200和客户端100采用的初始的关键值相同,更新的频率和方式也相同,则针对每一条更新协议,客户端100使用的关键值和服务器200使用的关键值是相同的。
步骤S205,若验证失败,则向所述客户端100返回表明所述更新协议验证失败的验证信息,并在所述客户端100发送所述更新协议的下一条更新协议时不作响应。
可选地,在本实施例中,若客户端100上报的更新协议验证失败,则服务器200可向客户端100返回表明更新协议验证失败的验证信息。客户端100在接收到该验证信息后,可通过自查等方式来检查协议,并重新发送协议至服务器200。若客户端100发送的协议在服务器200还未通过验证,客户端100则发送下一条协议至服务器200,服务器200则不会响应该下一条协议,须在其上一条协议通过验证后,才会对其进行响应。如此,客户端100发送至服务器200的协议之间进行互相关联,只有第一条协议成功了,才能成功发送第二协议,只有第二条协议成功了才能成功发送第三条协议,以此类推。并且可通过上述步骤将协议与协议之间进行强关联。任何一条后续的协议都依赖于前一条协议计算结果,从而黑客无法直接绕过前面的协议直接发送后面的协议。例如没有获取直播房间信息,则无法直接请求视频流地址等。
为了使本领域技术人员更为清楚地理解本发明所提供的协议关联验证方案,本实施例中对所述客户端100和所述服务器200之间的交互过程进行了描述,请结合参见图10。
在所述客户端100当前的待发送协议为第一条网络协议时,如登录协议,则客户端100获取该登录协议的上一条协议的第一校验值(该种情形下默认为0)。客户端100根据该待发送协议的协议内容和获取的第一校验值计算得到该待发送协议的第二校验值,并将协议内容、第一校验值和第二校验值组合以得到更新协议,将更新协议发送至服务器200。服务器200在接收到客户端100发送的登录协议后,提取出该登录协议的第一校验值、第二校验值及协议内容。并根据协议内容和第一校验值计算得到登录协议的第二验证值,并将计算得到的第二校验值与提取出的登录协议携带的第二校验值进行比对,若一致则该协议合法,若不一致则非法。
若服务器200验证客户端100发送的登录协议为合法,则将该登录协议的第二校验值进行保存,向客户端100返回验证成功信息,并下发一关键值客户端100。
客户端100在成功登录至服务器200之后,可继续发送协议至服务器200。以后续协议为客户端100发送至服务器200的第二条协议为例,如获取用户个人信息的获取协议。客户端100可将上述的登录协议的第二校验值作为该获取协议的第一校验值,并根据该第一校验值及该获取协议的协议内容计算得到该获取协议的第二校验值,并利用服务器200下发的关键值对第二校验值进行加密。再将该获取协议的协议内容、第一校验值及加密后的第二校验值进行组合以得到该获取协议的更新协议,将更新协议发送至服务器200。
服务器200在接收到客户端100发送的获取协议后,首先提取出该获取协议的第一校验值、第二校验值及协议内容。将提取出的第一校验值与预存的获取协议的第一校验值(上述的登录协议的第二校验值)进行对比。若一致,则根据产生的关键值对所述获取协议的第二校验值进行加密,并检测加密后的第二校验值是否与该获取协议携带的第二校验值一致。若一致,则判定该获取协议为合法协议。对于后续的客户端100与服务器200之间的协议的关联以及验证等过程,可参考上述的获取协议的关联及验证过程,只是在进行加密时,可采用产生的关键值得到的更新关键值进行加密,其他流过程均类似,在此不再一一赘述。
请参阅图11,为本发明实施例提供应用于上述客户端100的第一协议关联验证装置110的功能模块框图。所述第一协议关联验证装置110包括获取模块111、计算模块112、更新协议获取模块113以及更新协议发送模块114。
所述获取模块111用于获取待发送协议的上一条协议的第一校验值。该获取模块111可用于执行图4中所示的步骤S101,具体的操作方法可参考步骤S101的详细描述。
所述计算模块112用于根据所述第一校验值以及所述待发送协议的协议内容计算得到所述待发送协议的第二校验值。该计算模块112可用于执行图4中所示的步骤S103,具体的操作方法可参考步骤S103的详细描述。
所述更新协议获取模块113用于根据所述第一校验值、所述第二校验值以及所述待发送协议的协议内容对所述待发送协议进行更新以得到更新协议,所述更新协议携带有所述第一校验值、第二校验值以及协议内容。该更新协议获得模块可用于执行图4中所示的步骤S105,具体的操作方法可参考步骤S105的详细描述。
所述更新协议发送模块114用于将所述更新协议发送至服务器200。该更新协议发送模块114可用于执行图4中所示的步骤S107,具体的操作方法可参考步骤S107的详细描述。
请参阅图12,为本发明实施例提供的应用于上述服务器200的第二协议关联验证装置210的功能模块框图。所述第二协议关联验证装置210包括提取模块211、验证模块212以及验证信息发送模块213。
所述提取模块211用于接收客户端100发送的更新协议,提取出所述更新协议携带的第一校验值、第二校验值以及协议内容。该提取模块211可用于执行图7中所示的步骤S201,具体的操作方法可参考步骤S201的详细描述。
所述验证模块212用于根据所述第一校验值、所述第二校验值以及所述协议内容对所述更新协议进行验证。该验证模块212可用于执行图7中所示的步骤S203,具体的操作方法可参考步骤S203的详细描述。
所述验证信息发送模块213用于在验证失败时,向所述客户端100返回表明所述更新协议验证失败的验证信息,并在所述客户端100发送所述更新协议的下一条更新协议时不作响应。该验证信息发送模块213可用于执行图7中所示的步骤S205,具体的操作方法可参考步骤S205的详细描述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明实施例可以通过硬件实现,也可以借助软件加必要通用硬件平台的方式来实现。基于这样的理解,本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器200或者网络设备等)执行本发明各个实施场景所述的方法。
综上所述,本发明实施例提供一种协议关联验证方法、装置及电子设备,针对客户端100待发送至服务器200的待发送协议,利用待发送协议的上一条协议的第一校验值以及待发送协议的协议内容计算得到待发送协议的第二校验值。通过第一校验值、第二校验值及协议内容对待发送协议进行更新以得到更新协议,并将更新协议发送至服务器200。服务器200则根据接收到的更新协议携带的第一校验值、第二校验值及协议内容对更新协议进行验证。该协议关联验证方案可将客户端100与服务器200之间的多条协议进行关联,使得每一条协议都携带有其上一条协议的信息从而与其上一条协议关联,如此协议与协议之间形成强关联性,提高了整体协议的安全性,保障了客户端100与服务器200之间的通信安全。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (8)

1.一种协议关联验证方法,其特征在于,应用于客户端,所述方法包括:
获取待发送协议的上一条协议的第一校验值;
根据所述第一校验值以及所述待发送协议的协议内容计算得到所述待发送协议的第二校验值;
根据所述服务器下发的关键值对所述待发送协议的第二校验值进行加密;
将所述待发送协议的协议内容、所述第一校验值以及加密后的第二校验值组合以得到更新协议;所述更新协议携带有所述第一校验值、第二校验值以及协议内容;
将所述更新协议发送至服务器。
2.根据权利要求1所述的协议关联验证方法,其特征在于,所述根据所述第一校验值、所述第二校验值以及所述待发送协议的协议内容对所述待发送协议进行更新以得到更新协议的步骤,包括:
将所述待发送协议的协议内容、所述第一校验值以及所述第二校验值组合以得到更新协议。
3.根据权利要求1所述的协议关联验证方法,其特征在于,所述待发送协议为多个,所述根据所述服务器下发的关键值对所述待发送协议的第二校验值进行加密的步骤,包括:
在所述服务器下发的关键值对多个待发送协议中的任意一个待发送协议的第二校验值进行加密之后,利用MD5算法对该关键值进行更新,以得到更新关键值;
利用所述更新关键值对所述待发送协议的第二校验值进行加密。
4.一种协议关联验证方法,其特征在于,应用于服务器,所述方法包括:
接收客户端发送的更新协议,提取出所述更新协议携带的第一校验值、第二校验值以及协议内容;所述更新协议是由客户端通过获取待发送协议的上一条协议的第一校验值;根据所述第一校验值以及所述待发送协议的协议内容计算得到所述待发送协议的第二校验值;根据所述服务器下发的关键值对所述待发送协议的第二校验值进行加密;将所述待发送协议的协议内容、所述第一校验值以及加密后的第二校验值组合所得到的更新协议;
检测所述第一校验值是否与预存的所述更新协议的第一校验值一致,若一致,则根据所述协议内容以及所述第一校验值计算得到所述更新协议的第二校验值;
根据产生的关键值对计算得到的第二校验值进行加密;
检测加密后的第二校验值是否与提取出的所述更新协议携带的第二校验值一致,若一致,则判定验证成功;
若验证失败,则向所述客户端返回表明所述更新协议验证失败的验证信息,并在所述客户端发送所述更新协议的下一条更新协议时不作响应。
5.根据权利要求4所述的协议关联验证方法,其特征在于,所述根据所述第一校验值、所述第二校验值以及所述协议内容对所述更新协议进行验证的步骤,包括:
根据所述第一校验值以及所述协议内容计算得到所述更新协议的第二校验值;
将计算得到的第二校验值与提取出的所述更新协议携带的第二校验值进行比对,若一致,则判定验证成功。
6.一种协议关联验证装置,其特征在于,应用于客户端,所述装置包括:
获取模块,用于获取待发送协议的上一条协议的第一校验值;
计算模块,用于根据所述第一校验值以及所述待发送协议的协议内容计算得到所述待发送协议的第二校验值;
更新协议获取模块,用于根据所述第一校验值、所述第二校验值以及所述待发送协议的协议内容对所述待发送协议进行更新以得到更新协议,所述更新协议携带有所述第一校验值、第二校验值以及协议内容;
更新协议获取模块,具体用于根据所述服务器下发的关键值对所述待发送协议的第二校验值进行加密;
将所述待发送协议的协议内容、所述第一校验值以及加密后的第二校验值组合以得到更新协议;
更新协议发送模块,用于将所述更新协议发送至服务器。
7.一种协议关联验证装置,其特征在于,应用于服务器,所述装置包括:
提取模块,用于接收客户端发送的更新协议,提取出所述更新协议携带的第一校验值、第二校验值以及协议内容;所述更新协议是由客户端通过获取待发送协议的上一条协议的第一校验值;根据所述第一校验值以及所述待发送协议的协议内容计算得到所述待发送协议的第二校验值;根据所述服务器下发的关键值对所述待发送协议的第二校验值进行加密;将所述待发送协议的协议内容、所述第一校验值以及加密后的第二校验值组合所得到的更新协议;
验证模块,用于根据所述第一校验值、所述第二校验值以及所述协议内容对所述更新协议进行验证;
所述验证模块,具体用于检测所述第一校验值是否与预存的所述更新协议的第一校验值一致,若一致,则根据所述协议内容以及所述第一校验值计算得到所述更新协议的第二校验值;
根据产生的关键值对计算得到的第二校验值进行加密;
检测加密后的第二校验值是否与提取出的所述更新协议携带的第二校验值一致,若一致,则判定验证成功;
验证信息发送模块,用于在验证失败时,向所述客户端返回表明所述更新协议验证失败的验证信息,并在所述客户端发送所述更新协议的下一条更新协议时不作响应。
8.一种电子设备,其特征在于,包括:
存储器;
处理器;及
权利要求6或7所述的协议关联验证装置,包括一个或多个存储于所述存储器中并由所述处理器执行的软件功能模块。
CN201810001211.5A 2018-01-02 2018-01-02 协议关联验证方法、装置及电子设备 Active CN108234491B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810001211.5A CN108234491B (zh) 2018-01-02 2018-01-02 协议关联验证方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810001211.5A CN108234491B (zh) 2018-01-02 2018-01-02 协议关联验证方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN108234491A CN108234491A (zh) 2018-06-29
CN108234491B true CN108234491B (zh) 2021-01-01

Family

ID=62644917

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810001211.5A Active CN108234491B (zh) 2018-01-02 2018-01-02 协议关联验证方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN108234491B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109246484B (zh) * 2018-09-13 2021-04-23 武汉斗鱼网络科技有限公司 弹幕消息传输方法、装置、设备与存储介质
CN113608773A (zh) * 2021-08-17 2021-11-05 联想(北京)有限公司 升级更新组件的方法、装置及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101997834A (zh) * 2009-08-10 2011-03-30 北京多思科技发展有限公司 支持高性能安全协议的装置
CN106612277A (zh) * 2016-12-09 2017-05-03 武汉斗鱼网络科技有限公司 一种利用密码盘实现验证码验证的方法及系统
CN107465698A (zh) * 2017-09-26 2017-12-12 武汉斗鱼网络科技有限公司 一种数据校验方法及服务器

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7043636B2 (en) * 2000-09-26 2006-05-09 Telefonaktiebolaget Lm Ericsson (Publ) Data integrity mechanisms for static and dynamic data
US20030084298A1 (en) * 2001-10-25 2003-05-01 Messerges Thomas S. Method for efficient hashing of digital content

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101997834A (zh) * 2009-08-10 2011-03-30 北京多思科技发展有限公司 支持高性能安全协议的装置
CN106612277A (zh) * 2016-12-09 2017-05-03 武汉斗鱼网络科技有限公司 一种利用密码盘实现验证码验证的方法及系统
CN107465698A (zh) * 2017-09-26 2017-12-12 武汉斗鱼网络科技有限公司 一种数据校验方法及服务器

Also Published As

Publication number Publication date
CN108234491A (zh) 2018-06-29

Similar Documents

Publication Publication Date Title
CN110691087B (zh) 一种访问控制方法、装置、服务器及存储介质
CN105939326B (zh) 处理报文的方法及装置
EP3090377B1 (en) A method and apparatus for providing client-side score-based authentication
US20170208075A1 (en) Smart Lockout
CN108683667B (zh) 账户保护方法、装置、系统和存储介质
CN112989426B (zh) 授权认证方法及装置、资源访问令牌的获取方法
CN102316112A (zh) 网络应用中的密码验证方法及系统
CN111130798B (zh) 一种请求鉴权方法及相关设备
CN110958239B (zh) 访问请求的校验方法和装置、存储介质及电子装置
US20240080201A1 (en) Systems and methods for enhanced mobile device authentication
CN112688972B (zh) 一种保护账号安全的方法及系统
CN112257086A (zh) 一种用户隐私数据保护方法及电子设备
CN111800276B (zh) 业务处理方法及装置
CN108234491B (zh) 协议关联验证方法、装置及电子设备
CN113726818B (zh) 一种失陷主机检测方法及装置
CN108989298B (zh) 一种设备安全监控方法、装置及计算机可读存储介质
CN109145543B (zh) 一种身份认证方法
CN111585978A (zh) 一种拦截虚假请求的方法、客户端、服务端及系统
CN107979579B (zh) 一种安全认证方法和安全认证设备
CN113051585B (zh) 一种数据校验方法、装置、电子设备和存储介质
CN108123960B (zh) 直播房间人气验证方法、装置及电子设备
CN103825911A (zh) 一种安全与方便兼顾的客户端程序身份设置方法
CN104009963A (zh) 远程密码的安全认证机制
CN110858803B (zh) 认证方法、系统、服务器和计算机可读存储介质
CN110740112B (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
GR01 Patent grant
GR01 Patent grant