
本发明一般涉及游戏领域,尤其是涉及一种网络游戏安全管理系统的装置及其方法,具体游戏领域包括pc游戏、手机游戏和页面游戏等。
网络游戏中,客户端是不可信赖的,一套网络游戏安全管理系统对于保障游戏的正常运营是非常重要的。鉴定某个人是他所表明的身份的过程,其结果是一个给定主机集合上的确定的交互过程。对于计算机游戏,鉴定有以下两种情况:游戏会话是指确定一个网络包是由它所声明的登录玩家发送的;登录游戏是指确定客户端提供的凭信(一个用户名和密码)与合法玩家数据库中的信息匹配。如果游戏安全管理系统出现安全问题,会导致玩家账户被盗,游戏里面的道具与货币丢失等一系列严重问题,导致玩家大量流失,给游戏造成巨大的经济损失,给公司声誉造成很大影响。而传统网络游戏对于游戏安全管理没有一套完整安全系统的方案,所以游戏安全比较薄弱,极易造成安全运营事故。
为了克服上述技术缺陷,本申请文件针对现有技术的缺陷,对一般网络游戏安全管理系统实现的现状与造成的原因加以深入分析,并分析网络游戏安全管理系统有哪些流程上的特点,各种职位的人员有哪些工作上的习惯,以及具有哪些小粒度可重用的组件,总结了一套网络游戏安全管理系统。本发明提供的一种网络游戏安全管理系统的装置及其方法,具有能够保障玩家账户和私人信息,同时也能够使游戏运营公司积累良好的声誉。
b、对游戏玩家的记号身份进行验证,其中记号身份为服务器根据登录的游戏玩家信息生成的对应的哈希码;
s21,使用服务器接收并解析客户端发送的数据包的源ip地址和端口号,为从同一端口登录的多个客户端创建对应的地址端口列表;
s22,当客户端进行多次登录时,使用服务器对地址端口列表对应客户端进行交互验证。
其中的交互验证包括使用服务器向客户端发送包括有指定怀疑指令的数据包,或者使用从随机初始位置开始的循环序列索引,以此判定客户端ip地址是否为欺骗性的ip地址。
s31,使用服务器自定义设置客户端登录有效时长,当客户端登录时,记录客户端唯一标识、登录会话过期时间及服务器密钥,根据记录计算并生成对应的哈希码,并将哈希码回送至对应客户端,其中服务器密钥为不公开的指定密钥;
s32,客户端向服务器发送数据包时一定发送存储的哈希码,服务器接收客户端发送的哈希码,并对客户端唯一标识、登录会话过期时间及服务器密钥重新生成新哈希码,进而对比客户端发送的哈希码与新哈希码,若匹配则允许登录,若不匹配则需要重新执行步骤s31进行验证;
s33,当客户端与服务器连接断开并重新建立连接时,客户端与服务器的连接时间没有超过登录有效时长,则客户端从本地记录的登陆信息进行重新登录,若超过登录有效时长,则需要重新验证。
当客户端与服务器处理长时间连接时,服务器周期性检查客户端的连接时间是否超过设置的有效时长,若超过,则服务器自动对客户端进行授权。
s61,使用服务器和客户端的共享密码作为密钥,或者使用密码和随机数的哈希,所述随机数与初始连接验证中使用的不同;
s62,客户端发送数据包,所述数据包包括明文的客户端的id、通过共享密钥进行加密的数据包和未加密的校验和;
s63,当服务器收到数据包时,首先在其内部查询用户的密码,并解密这个消息,接着进行检查校验和,以确定数据包的数据是正确的。
验证记号身份验证模块,用于通过服务器对游戏玩家的验证记号进行身份验证,其中记号身份为服务器根据登录的游戏玩家信息生成的对应的哈希码;
登陆设置模块,用于使用服务器自定义设置客户端登录有效时长,当客户端登录时,记录客户端唯一标识、登录会话过期时间及服务器密钥,根据记录计算并生成对应的哈希码,并将哈希码回送至对应客户端,其中服务器密钥为不公开的指定密钥;
数据包检查模块,用于当客户端向服务器发送数据包时一定发送存储的哈希码,服务器接收客户端发送的哈希码,并对客户端唯一标识、登录会话过期时间及服务器密钥重新生成新哈希码,进而对比客户端发送的哈希码与新哈希码,若匹配则允许登录,若不匹配则需要重新执行步骤s31进行验证;
重新连接模块,用于当客户端与服务器连接断开并重新建立连接时,客户端与服务器的连接时间没有超过登录有效时长,则客户端从本地记录的登陆信息进行重新登录,若超过登录有效时长,则需要重新验证。
密钥模块,用于使用服务器和客户端的共享密码作为密钥,或者使用密码和随机数的哈希;
数据发送模块,用于客户端发送数据包,所述数据包包括明文的客户端的id、通过共享密钥进行加密的数据包和未加密的校验和;
校验模块,用于当服务器收到数据包时,首先在其内部查询用户的密码,并解密这个消息,接着进行检查校验和,以确定数据包的数据是正确的。
技术效果:本发明提供的一种网络游戏安全管理系统的装置及其方法,具有能够保障玩家账户和私人信息,同时也能够使游戏运营公司积累良好的声誉。
以下和其他优点和特征将从以下参考附图的实施例的详细描述中得到更充分的理解,附图必须以说明性和非限制性的方式来考虑,其中:
以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本发明的目的、方案和效果。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,如无特殊说明,当某一特征被称为“固定”、“连接”在另一个特征,它可以直接固定、连接在另一个特征上,也可以间接地固定、连接在另一个特征上。此外,本发明中所使用的上、下、左、右等描述仅仅是相对于附图中本发明各组成部分的相互位置关系来说的。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
此外,除非另有定义,本文所使用的所有的技术和科学术语与本技术领域的技术人员通常理解的含义相同。本文说明书中所使用的术语只是为了描述具体的实施例,而不是为了限制本发明。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种元件,但这些元件不应限于这些术语。这些术语仅用来将同一类型的元件彼此区分开。例如,在不脱离本公开范围的情况下,第一元件也可以被称为第二元件,类似地,第二元件也可以被称为第一元件。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”。
本申请文件针对现有技术的缺陷,对一般网络游戏安全管理系统实现的现状与造成的原因加以深入分析,并分析网络游戏安全管理系统有哪些流程上的特点,各种职位的人员有哪些工作上的习惯,以及具有哪些小粒度可重用的组件,总结了一套网络游戏安全管理系统。
游戏玩家登录进游戏系统之后,并不意味着的游戏的安全问题就此结束了。在游戏过程中,经常需要把一个游戏玩家从一台服务器转移到另外一台服务器,或者允许游戏玩家与服务器断开连接(可能是崩溃或网络的原因),然后重新与服务器连接,并返回到玩家离开的位置。正是由于在游戏期间存在着游戏玩家与服务器有短暂的未连接状态,显然地当游戏玩家再重新连接至服务器时,服务器不可能直接地相信客户端所声明的id,因为存在另外一个玩家突然冒充该玩家的事情时有发生。所述本发明提供了如下技术方案。
利用服务器查看接收包的源ip地址和端口号,并且在内部维持玩家对应的地址端口表。在此情况下,只要确定游戏玩家总是从同一个端口发送消息,就可以确定该游戏玩家的账号和密码是安全的。服务器不会接收带有欺骗ip地址的数据包,或者如果某个数据包是欺骗数据包,则在真正的客户端会发生往返服务器的确认。这种往返确认可以以特定怀疑命令的直接回数据包的形式出现,或者间接以使用一个从随机初始位置开始的循环序列索引来实现。
如果使用tcp连接,或者需要服务器间的握手连接关闭,客户端地址中的端口部分将始终一样。tcp为每台机器上的每个连接分配同一个端口号,当切换目标机器时udp也不会有端口重分配的问题,家庭nat路由器也不会有这个限制。
s31,使用服务器自定义设置客户端登录有效时长,当客户端登录时,记录客户端唯一标识、登录会话过期时间及服务器密钥,根据记录计算并生成对应的哈希码,并将哈希码回送至对应客户端,其中服务器密钥为不公开的指定密钥;
s32,客户端向服务器发送数据包时一定发送存储的哈希码,服务器接收客户端发送的哈希码,并对客户端唯一标识、登录会话过期时间及服务器密钥重新生成新哈希码,进而对比客户端发送的哈希码与新哈希码,若匹配则允许登录,若不匹配则需要重新执行步骤s31进行验证;
s33,当客户端与服务器连接断开并重新建立连接时,客户端与服务器的连接时间没有超过登录有效时长,则客户端从本地记录的登陆信息进行重新登录,若超过登录有效时长,则需要重新验证。
s61、使用服务器和客户端的共享密码作为密钥,或者使用密码和随机数的哈希,所述随机数与初始连接验证中使用的不同。其中可以使用纯文本的密码作为一个密钥。
s62、客户端发送数据包,所述数据包包括明文的客户端的id、通过共享密钥进行加密的数据包和未加密的校验和;
s63、当服务器收到数据包时,首先在其内部查询用户的密码,并解密这个消息,接着进行检查校验和,以确定数据包的数据是正确的。如果校验和不匹配,那么就说明数据包不是使用正确的密码加密的,因此这个数据包也不是由正确的客户端所发送。加密的数据包的一部分包括一个序号,因此即使是连续的相同的数据包在加密之后也是不一样的,因而截获和重发一个数据包的情况不会被服务器所接受。
相信在阅读了以上内容,已经很清楚地认识到游戏账号和密码的重要性,最起码开始重视游戏账号和密码。当交互两端都知道密钥时(比如当使用密码交互验证和密码身份验证时),可使用的一个较好的加密算法是tiny加密算法。这个算法易于实现,并且密码强度很高。真正注重安全细节的人推荐只使用标准化的协议,比如aes,因为它们经历了更多的研究和发布,因此任意的缺陷都会被很快发现并被公布,警示到了更好地对系统进行加密的时候了。
验证记号身份验证模块,用于通过服务器对游戏玩家的验证记号进行身份验证,其中记号身份为服务器根据登录的游戏玩家信息生成的对应的哈希码;
登陆设置模块,用于使用服务器自定义设置客户端登录有效时长,当客户端登录时,记录客户端唯一标识、登录会话过期时间及服务器密钥,根据记录计算并生成对应的哈希码,并将哈希码回送至对应客户端,其中服务器密钥为不公开的指定密钥;
数据包检查模块,用于当客户端向服务器发送数据包时一定发送存储的哈希码,服务器接收客户端发送的哈希码,并对客户端唯一标识、登录会话过期时间及服务器密钥重新生成新哈希码,进而对比客户端发送的哈希码与新哈希码,若匹配则允许登录,若不匹配则需要重新执行步骤s31进行验证;
重新连接模块,用于当客户端与服务器连接断开并重新建立连接时,客户端与服务器的连接时间没有超过登录有效时长,则客户端从本地记录的登陆信息进行重新登录,若超过登录有效时长,则需要重新验证。
密钥模块,用于使用服务器和客户端的共享密码作为密钥,或者使用密码和随机数的哈希;
数据发送模块,用于客户端发送数据包,所述数据包包括明文的客户端的id、通过共享密钥进行加密的数据包和未加密的校验和;
校验模块,用于当服务器收到数据包时,首先在其内部查询用户的密码,并解密这个消息,接着进行检查校验和,以确定数据包的数据是正确的。
s1、设置服务器共享群密码,所有在群中的服务器设置为共享一个被称为群密码的大随机数;
s2、客户端登陆服务器,客户端使用未加密的tcp或udp来连接服务器进行登陆;
s3、服务器发布测试值,服务器向客户端发布一个测试值,测试值包含一个256位的随机数;
s4、客户端计算哈希值,客户端计算出步骤s3中的随机数的哈希值,并将其发给服务器;
s5、服务器发布验证授权,服务器使用测试值和存储的密码计算出哈希值,并与客户端发送的哈希值进行校验匹配,然后向客户端发布一个包含用户id、授权过期时间,以及用户id、授权过期时间与共享群密码的哈希值的验证授权;
s6、登录服务器发送密钥,登录服务器也生成一个供该客户端在这个会话中使用的随机密钥,并发送给客户端;同时,登录服务器也把这个密钥以及授权过期时间记录下来。在发送给客户端之前,使用一个由用户密码和已知哈希生成的密钥对该密钥进行加密;
s7、服务器连接服务器群,服务器连接到游戏服务器群中任意一个游戏服务器群;
s8、客户端连接新服务器,通过在发送之前获得的验证授权,开始与游戏服务器群中的新服务器进行连接;
s9、新的服务器对授权哈希进行校验,以确定哈希是否过期和是否正确。使用经授权的用户id,新服务器可以从登录服务器上得到加密密钥;
s10、新服务器协商交互序号,新的服务器和客户端也协商以得到将来交互要用到的序号;
s11.服务器客户端加密数据,一旦验证通过,新的服务器和客户端使用经会话密钥加密过的数据,这里所说的加密过的数据包括数据规矩(作为校验和)和一个序号生成的哈希。这些数据包中的每一个都需要包含客户端id和授权标志符(一个小整数)作为包头,而不是整个验证授权;
s12、服务器验证授权是否过期,客户端当前连接到的服务器周期性地检查会话验证授权是否将要过期;如果是,它将联系登录服务器请求一个新的授权并发送给客户端。
上述所述流程将保护的系统免于在开放的互联网上被嗅取密码,并能应对某些人使用嗅取包做出的重放攻击。对于中间人攻击,中间人不可能得到身份验证信息以在之后重新验证通过。要保证连接中间没有人干预,需要加入公共/私有密钥加密和验证。
本发明提供的网络游戏安全管理系统的系统,具有一套完整的安全管理方案,能够有效地保障游戏服务器安全,解决种种安全问题,保障玩家账户与游戏道具货币安全,维护游戏的正常运营与经济收入。
显然,上述实施例仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
技术所有人:珠海金山网络游戏科技有限公司;广州西山居世游网络科技有限公司
针对游戏运营中网络攻击多层关联性导致的隐患排查效率低问题,提出多层次安全防护系统。通过采集各安全防护层数据,构建仿真模型模拟攻击场景,分析攻击类型特征差异,计算隐患复杂度并排序排查优先级,实现...
针对传统密码防护系统在连续错误输入时缺乏防护、易遭暴力破解的问题,提出多层验证机制。通过伪界面逐步增加验证难度,当用户连续输入错误时触发病毒运行反制,同时优化界面设计提升用户体验。技术方案包含...
针对游戏账号被盗及财产转移风险,提出基于中间件技术的双重验证方案。通过分析用户终端安全性,结合电话验证码验证,有效保障账号安全;利用中间件负载均衡特性,降低服务器压力,提升系统稳定性。 ...
针对传统验证机制易被破解、信息泄露风险高的问题,提出动态加密验证方案。通过发送动态指定加密算法的指令,接收端生成含随机数的加密数据并嵌入时间戳,验证时比对加密结果与时间有效性,双重保障数据安全...
1.数字信号处理 2.传感器技术及应用 3.机电一体化产品开发 4.机械工程测试技术 5.逆向工程技术研究
1.振动信号时频分析理论与测试系统设计 2.汽车检测系统设计 3.汽车电子控制系统设计