本发明涉及信息安全技术领域,尤其是一种游戏数据安全验证方法和系统。
背景技术:
电子游戏已成为了重要的娱乐工具。电子游戏的本质是根据玩家发出的游戏操作指令,对游戏数据进行处理和记录,游戏数据是玩家心血的结晶,对玩家具有重要价值。如今,游戏账号、游戏装备和游戏币等交易已十分普遍,这使得游戏数据具备了经济价值。上述价值使得游戏数据时刻面临被冒充操作的风险,即不法分子通过使用a游戏账号冒充b游戏账号,来对b游戏账号名下的游戏单位进行控制,结果是游戏剧情违背了正常玩家的意愿发展,甚至因为具有经济价值的游戏财产被转移从而构成了盗窃行为。
为了避免游戏账号被冒充操作,几乎所有的电子游戏都设置了安全验证机制,在接收到的游戏操作指令进行鉴权,只有确认为真实玩家的情况下才执行游戏操作指令。
但现有的安全验证机制过于复杂,同一游戏中针对不同的游戏操作、不同的操作对象分别使用不同的验证算法,各种验证算法之间不能统一,分别占用计算资源,增加算法的复杂度和需要的时间。
技术实现要素:
为了解决上述技术问题,本发明的目在于提供一种游戏数据安全验证方法和系统。
本发明所采取的第一技术方案是:
一种游戏数据安全验证方法,包括以下步骤:
接收客户端发出的游戏操作指令;
对游戏操作指令进行提取,并对提取结果进行分析判断,在判断提取结果中包含验证令牌时,将验证令牌发送到后台,反之则拒绝所述游戏操作指令;
对游戏操作指令进行解析,从而获得所述游戏操作指令所指向的游戏单位;所述游戏单位已被预先添加属性标识;
将所述游戏单位的属性标识提取到后台;
在后台中对属性标识和验证令牌进行对比校验;
在判断属性标识和验证令牌相匹配时,执行所述游戏操作指令。
进一步地,所述验证令牌是通过以下步骤分配到客户端的:
接收客户端发出的游戏登录指令;所述游戏登录指令包含身份标识,所述身份标识与客户端唯一对应;
将登录指令中的身份标识提取到后台;
读取后台中存储的游戏数据;所述游戏数据包括游戏中所有游戏单位的信息,以及各游戏单位与各客户端之间的从属关系;
对所述身份标识所映射的游戏单位的信息进行查找;
根据查找到的游戏单位的信息,利用令牌生成算法生成验证令牌;
将生成的验证令牌返回到客户端。
进一步地,所述属性标识是通过以下步骤添加到游戏单位的:
在利用令牌生成算法生成验证令牌之后,生成验证令牌的副本;
以所述副本作为属性标识添加到游戏单位中。
进一步地,在执行所述游戏操作指令之后,还包括以下步骤:
针对游戏操作指令所指向的游戏单位,从后台中重新查找其信息;
根据重新查找到的游戏单位的信息,利用令牌生成算法重新生成验证令牌;
将重新生成的验证令牌返回到客户端进行更新。
进一步地,在将重新生成的验证令牌返回到客户端进行更新之后,还包括以下步骤:
根据重新生成的验证令牌,重新生成副本;
根据重新生成的副本,对游戏单位原有的属性标识进行更新。
本发明所采取的第二技术方案是:
一种游戏数据安全验证系统,包括:
操作指令接收模块,用于接收客户端发出的游戏操作指令;
验证令牌提取模块,用于对游戏操作指令进行提取,并对提取结果进行分析判断,在判断提取结果中包含验证令牌时,将验证令牌发送到后台,反之则拒绝所述游戏操作指令;
操作指令解析模块,用于对游戏操作指令进行解析,从而获得所述游戏操作指令所指向的游戏单位;所述游戏单位已被预先添加属性标识;
第一后台通信模块,用于将所述游戏单位的属性标识提取到后台;
对比校验模块,用于在后台中对属性标识和验证令牌进行对比校验;
操作指令执行模块,用于在判断属性标识和验证令牌相匹配时,执行所述游戏操作指令。
进一步地,游戏数据安全验证系统包括:
登录指令接收模块,用于接收客户端发出的游戏登录指令;所述游戏登录指令包含身份标识,所述身份标识与客户端唯一对应;
第二后台通信模块,用于将登录指令中的身份标识提取到后台;
游戏数据读取模块,用于读取后台中存储的游戏数据;所述游戏数据包括游戏中所有游戏单位的信息,以及各游戏单位与各客户端之间的从属关系;
游戏信息查找模块,用于对所述身份标识所映射的游戏单位的信息进行查找;
验证令牌生成模块,用于根据查找到的游戏单位的信息,利用令牌生成算法生成验证令牌;
验证令牌返回模块,用于将生成的验证令牌返回到客户端;
所述登录指令接收模块、第二后台通信模块、游戏数据读取模块、游戏信息查找模块、验证令牌生成模块和验证令牌返回模块用于生成验证令牌并将验证令牌分配到客户端。
进一步地,游戏数据安全验证系统还包括:
令牌副本生成模块,用于在利用令牌生成算法生成验证令牌之后,生成验证令牌的副本;
属性标识添加模块,用于以所述副本作为属性标识添加到游戏单位中。
进一步地,所述游戏信息查找模块还用于在执行所述游戏操作指令之后针对游戏操作指令所指向的游戏单位,从后台中重新查找其信息;
所述验证令牌生成模块还用于根据重新查找到的游戏单位的信息,利用令牌生成算法重新生成验证令牌;
所述验证令牌返回模块还用于将重新生成的验证令牌返回到客户端进行更新。
进一步地,所述令牌副本生成模块还用于根据重新生成的验证令牌重新生成副本;
所述属性标识添加模块还用于根据重新生成的副本,对游戏单位原有的属性标识进行更新。
本发明的有益效果是:无需区分玩家所进行的游戏操作的类型和具体内容,也无需对游戏单位的性质和底层数据特性等进行区分,具有良好的通用性,减少安全验证过程中的算法复杂度、运算资源占用量和数据处理用时。
附图说明
图1为本发明方法流程图;
图2为本发明系统结构框图。
具体实施方式
本发明一种游戏数据安全验证方法,参照图1,包括以下步骤:
接收客户端发出的游戏操作指令;
对游戏操作指令进行提取,并对提取结果进行分析判断,在判断提取结果中包含验证令牌时,将验证令牌发送到后台,反之则拒绝所述游戏操作指令;
对游戏操作指令进行解析,从而获得所述游戏操作指令所指向的游戏单位;所述游戏单位已被预先添加属性标识;
将所述游戏单位的属性标识提取到后台;
在后台中对属性标识和验证令牌进行对比校验;
在判断属性标识和验证令牌相匹配时,执行所述游戏操作指令。
在本发明方法中,“游戏单位”指的是电子游戏中具有一定功能或者数值的单元,比如一个游戏角色、一个游戏建筑、一个游戏战斗单元、一件游戏装备和一组游戏币等,游戏单位对应一组数据。客户端是由玩家操控的,玩家通过客户端可以发出游戏操作指令,在不引起歧义的前提下,本发明可以不区分“玩家”和“客户端”。游戏程序则根据客户端发出的游戏操作指令,对游戏单元对应的数据进行处理,从而达到游戏效果。
在本发明方法中,预先向客户端分配验证令牌,并且要求客户端在发出的每一个游戏操作指令都必须携带这一验证令牌。当接收到游戏操作指令时,首先尝试从中提取验证令牌,如果没有提取到验证令牌,则拒绝游戏操作指令;如果提取到验证令牌,就将验证令牌发送到后台。
对游戏操作指令进行解析,可以获得所述游戏操作指令所指向的游戏单位,即游戏操作指令具体操作的内容和所针对的游戏单位,例如“将游戏角色a从位置1移动到位置2”、“从游戏币账户b中扣减3000游戏币”等。
在本发明中,预先向游戏中的各游戏单位添加属性标识,属性标识可以包括多项内容,其中尤为重要的是记载游戏单位与玩家的从属关系,即游戏单位具体专属于哪个玩家,因此,属性标识与所属玩家被分配到的验证令牌是相匹配的。
在后台中,将游戏操作指令所包括的验证令牌、游戏操作指令所要操作的游戏单元所携带的属性标识,两者之间进行对比校验,只有在两者相匹配的情况下才执行游戏操作指令,否则拒绝执行游戏操作指令。
本发明方法中,可以在玩家通过客户端登录游戏、游戏初始化或者加载游戏地图等起始时点,生成验证令牌和属性标识,然后将验证令牌分配给玩家,并根据玩家与游戏中各游戏单元的从属关系,将属性标识添加到从属于此玩家的所有游戏单元。
本发明的优点在于,仅需在起始时点进行一次分配,后续玩家进行任何游戏操作时,只需在游戏操作指令中加入分配到的验证令牌,而在后台,只需要对验证令牌和相应游戏单位所携带的属性标识进行匹配,即可完成安全验证。本发明无需区分玩家所进行的游戏操作的类型和具体内容,也无需对游戏单位的性质和底层数据特性等进行区分,具有良好的通用性,减少安全验证过程中的算法复杂度、运算资源占用量和数据处理用时。
进一步作为优选的实施方式,所述验证令牌是通过以下步骤分配到客户端的:
接收客户端发出的游戏登录指令;所述游戏登录指令包含身份标识,所述身份标识与客户端唯一对应;
将登录指令中的身份标识提取到后台;
读取后台中存储的游戏数据;所述游戏数据包括游戏中所有游戏单位的信息,以及各游戏单位与各客户端之间的从属关系;
对所述身份标识所映射的游戏单位的信息进行查找;
根据查找到的游戏单位的信息,利用令牌生成算法生成验证令牌;
将生成的验证令牌返回到客户端。
优选地,验证令牌是在玩家通过客户端登录游戏时,也就是玩家发出任何具体的游戏操作指令前分配到客户端的。
在接收到游戏登录指令之后,提取出其中的身份标识。身份标识与客户端硬件终端号、mac地址和玩家游戏账号等信息有关,通过身份标识,可以唯一确定一个玩家或一个客户端。读取后台中存储的游戏数据,这些游戏数据存储了游戏中所有游戏单位的信息以及各游戏单位与各客户端之间的从属关系,从玩家的角度看这些游戏数据记录了游戏的剧情、每个角色的从属关系、所拥有的游戏币数量等。
根据游戏数据所记录的客户端与游戏单位的从属关系,可以从身份标识映射到多个游戏单位,从而进一步查找到这些游戏单位的信息,具体地包括各游戏单位关键参量的具体数值等。通过现有的令牌生成算法,可以根据这些游戏单位的信息生成一个验证令牌,并将这个验证令牌返回到客户端,完成验证令牌的生成和分配。
进一步作为优选的实施方式,所述属性标识是通过以下步骤添加到游戏单位的:
在利用令牌生成算法生成验证令牌之后,生成验证令牌的副本;
以所述副本作为属性标识添加到游戏单位中。
可以在生成和分配验证令牌的同时,生产和分配属性标识。优选地,本发明方法中属性标识可以是验证令牌的副本,本发明中的“副本”可以是广义的,具体可以是验证令牌字符串的直接复制,也可以是对验证令牌字符串的hash处理后的结果等。
进一步作为优选的实施方式,在执行所述游戏操作指令之后,还包括以下步骤:
针对游戏操作指令所指向的游戏单位,从后台中重新查找其信息;
根据重新查找到的游戏单位的信息,利用令牌生成算法重新生成验证令牌;
将重新生成的验证令牌返回到客户端进行更新。
验证令牌可以在一次登录之后直到登出之前都保持不变,这样可以减少总的运算量和占用的资源。验证令牌也可以在登录之后定时或不定时地进行更新。优选地,可以在执行完一条游戏操作指令之后,对验证令牌进行更新。
在执行完游戏操作指令之后,游戏操作指令所指向的游戏单位的信息经过了处理,与执行游戏操作指令之前是不同的,因此通过令牌生成算法生成的验证令牌也是不同的,这就是验证令牌更新的基础。在每一次执行完游戏操作指令之后,都重新获取游戏单位的信息,并重新生成验证令牌,将新的验证令牌返回到客户端,客户端以收到的新的验证令牌取代之前的验证令牌,在后面发出的每一条游戏操作指令中都加入新的验证令牌。
进一步作为优选的实施方式,在将重新生成的验证令牌返回到客户端进行更新之后,还包括以下步骤:
根据重新生成的验证令牌,重新生成副本;
根据重新生成的副本,对游戏单位原有的属性标识进行更新。
游戏单位上的属性标识可以跟随验证令牌进行同步更新,只需要将重新生成的验证令牌的副本取代原有的属性标识即可实现。
本发明还公开了一种游戏数据安全验证系统,其结构参照图2。这个系统可以用来实现本发明方法。系统中的各模块可以是实现本发明方法的计算机程序的各功能单元,也可以是具有相应功能的硬件设备。如果是计算机程序单元,各单元之间应该有匹配的参数调用接口,如果是硬件设备,各设备之间应该有相应的数据端口。
综上,本发明的有益效果是:无需区分玩家所进行的游戏操作的类型和具体内容,也无需对游戏单位的性质和底层数据特性等进行区分,具有良好的通用性,减少安全验证过程中的算法复杂度、运算资源占用量和数据处理用时。
以上是对本发明的较佳实施进行了具体说明,但对本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。