一种网络游戏服务器登录安全系统及方法与流程

文档序号:14522538阅读:361来源:国知局
一种网络游戏服务器登录安全系统及方法与流程

本发明涉及一种网络游戏服务器登录安全系统及方法,属于计算机数据安全领域。



背景技术:

网络游戏中,客户端是不可信赖的,一套安全的网络游戏服务器登录系统对于保障游戏的正常运营是非常重要的。登录游戏是指确定客户端提供的凭信(一个用户名和密码)与合法玩家数据库中的信息匹配。常见的登录安全问题有不安全的密码,不安全的密码存储,被嗅取密码,键盘嗅取器,无知用户,重复登录等问题。如果游戏登录系统出现安全问题,会导致玩家帐户被盗,游戏里面的道具与货币丢失等一系列严重问题,导致玩家大量流失,给游戏造成巨大的经济损失,给公司声誉造成很大影响。而传统网络游戏对于登录安全没有一套完整安全系统的方案,所以游戏登录安全比较薄弱,极易造成安全运营事故。



技术实现要素:

针对现有技术的不足,对一般网络游戏服务器登录安全系统实现的现状与造成的原因加以深入分析,分析服务器登录系统有哪些流程上的特点,各种职位的人员有哪些工作上的习惯,以及有哪些小粒度可重用的组件,总结了一种网络游戏服务器登录安全系统及方法。

本发明的技术方案一种网络游戏服务器登录安全系统,其特征在于,该系统包括:密码存储模块,用于使用服务器对客户端用户的登录密码进行保存,其中密码为可恢复的单向哈希密码;哈希验证模块,用于对客户端的登录请求使用随机码进行交互验证,根据验证结果决定客户端是否允许登录;交换验证模块,用于对客户端用户请求登录的文本形式登录密码与服务器存储的密码进行对比,根据对比结果决定客户端是否允许登录;公私密钥模块,用于对用户登录密码进行公私密钥加密,其中的密钥存放于客户端或公开与服务端。

根据所述的游戏图形需求和设计的系统,其中密码存储模块还包括:将用户登录密码与内置代码中的关键字进行组合存储于服务器,并对用户设置的每个密码进行单项哈希进行计算。

根据所述的游戏图形需求和设计的系统,其特征在于:使用sha256计算用户登录密码的校验和,并对校验和进行存储,当用户登录时服务器对用户输入密码进行sha256计算并与校验和进行对比,若一致则允许登录。

根据所述的游戏图形需求和设计的系统,其中哈希验证模块用于执行以下步骤:s41,对客户端用户的登录密码存储为对应的哈希值;s42,当用户使用客户端进行登陆请求时使用服务器发送随机生成的字符;s43,使用客户端对字符和登录密码生成对应的哈希值并发送至服务器,服务器对用户发送的哈希值与存储的哈希值进行对比,若对比一致则允许登录,若不一致则不允许登录。

根据所述的游戏图形需求和设计的系统,其中交换验证模块用于执行以下步骤:对客户端用户的登录密码存储为对应的哈希值,当用户使用客户端进行登陆请求时发送密码文本至服务器,服务器计算密码文本的哈希值并与存储的对应密码的哈希值进行对比,对比结果一致则允许登录。

根据所述的游戏图形需求和设计的系统,其中公私密钥模块用于执行以下步骤:s61,用于将用户登录密码使用公私密钥进行加密,对生成的密钥存储于用户客户端可执行文件中或公开于服务器;s62,在具有密钥的客户端或服务端建立登录连接并对用户登录信息进行传输。

根据所述的游戏图形需求和设计的系统,其中公私密钥模块还包括:用于对客户端设置账户时,生成账户对应的私有密钥,同时在服务器存储有私有密钥对应的公共密钥,当用户登录时使用私有密钥对登录密码进行加密并与服务器的公共密钥进行登录验证,根据验证结果决定是否允许客户端登录。

本发明的技术方案还包括一种网络游戏服务器登录安全方法,该方法包括:使用服务器对客户端用户的登录密码进行保存,其中密码为可恢复的单向哈希密码;对客户端的登录请求使用随机码进行交互验证,根据验证结果决定客户端是否允许登录;对客户端用户请求登录的文本形式登录密码与服务器存储的密码进行对比,根据对比结果决定客户端是否允许登录;对用户登录密码进行公私密钥加密,其中的密钥存放于客户端或公开与服务端。

本发明的有益效果为:效地保障游戏服务器登录安全,解决种种安全问题,保障玩家帐户与游戏道具货币安全,维护游戏的正常运营与经济收入。

附图说明

图1所示为根据本发明实施方式的总体结构框图;

图2所示为根据本发明实施方式的测试哈希验证流程图;

图3所示为根据本发明实施方式的密码交换验证流程图;

图4所示为根据本发明实施方式的公私密钥加密示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。本发明的网络游戏服务器登录安全系统及方法适用于游戏领域的安全登录。

图1所示为根据本发明实施方式的总体结构框图。其具体包括:

服务器对密码进行存储。

可恢复密码。如果密码是可恢复的,可以使用测试哈希验证体系,这个将在之后详述。不要将密码以明文存储在数据库中。要将密码与内置在代码中的一些关键字混在一起,以保证普通的检查员不会“偶然”看到密码。

单向哈希密码。每当设置一个密码,就算一个该密码的单向哈希(比如一个sha256校验和),并存储这个校验和。当玩家下次登录时,他们给密码,而计算出一个sha256的校验和并与存储的值比较。如果匹配,就认为提供的密码正确。这么做最主要的好处是保证了系统端的安全;读一个sha256校验和不会让任何人知道实际的密码是什么。找到另一个生成同样校验和的密码在计算上是非常困难的。当要这么做的时候,必须使用密码交换验证(之后将详述)。

公共密钥。利用一个公私密钥加密系统,可以在游戏服务器上公开公共密钥,甚至可以将之写入游戏客户端运行文件中。然后用户的密码通过加密后再连接上传送,不用担心窃听。这项技术另外的好处是只有真正的服务器可以解密这个消息,所以客户端就可以合理地认为它在与真正的服务器对话,而不是个冒充者。

图2所示为根据本发明实施方式的测试哈希验证流程图。在测试哈希验证中,服务器向客户端发布一些随机数,称为测试值。客户端计算出这些随机数和输入密码的一个哈希,并将这个值发送回服务器,然后服务器会计算出之前测试值和存储密码(纯文本)的一个哈希,并与客户端提交的做比较。如果两个哈希匹配,说明密码正确。

这个系统有以下3个主要特性。

密码没有直接被传送,因此黑客通过嗅探常规的登录包并不能直接得到密码;

测试值每次登录请求都是不一样的,因此,就算探测到连接,记住这个哈希值并在之后登录时提供同样的哈希值也不能蒙混过关,因为由服务器为一次特定登录随机生成的测试值每次都是不一样的;

服务器端保持明文密码,这个明文密码是被交互的两端密码共享的,因此可以用来加密所有该特定客户端发送和接收的数据。要使用一个密钥不可以被轻易破解的加密算法。一个需要注意的地方是可以使用一个明文密码的哈希作为交互的密钥,但不要把同一个哈希用于验证,否则使用一个“不可嗅探”的共享密钥的优势就没了。

图3所示为根据本发明实施方式的密码交换验证流程图。在密码交换验证中,服务存储一个密码的哈希。客户端提交一个纯文本的密码,而服务器计算出这个纯文本密码的哈希,并与存储的值比较。如果匹配,说明密码正确。

该流程具有以下优点。

服务器不存储明文的密码,如果有人闯入服务器并窃走密码文件,那也不要紧,因为不可能通过哈希值(密码强度)就得到密码,使用一个256位的sha哈希的密码将是非常安全的。如果不信任备份操作员,或者服务器被黑了,这将是最主要的好处;

密码在每次登录请求时都被传送,安全的方法是使用一个密钥交换。它可以为两个终端提供一个安全加密过的通道,而不需要事先交互密钥。如果想要阻止一个老练的攻击者,将自己插入网络中间,可以引入一个额外的基于公共密钥的加密验证系统。

服务器有明文密码,因为客户端发送的是明文密码,服务器可以能够读到明文的密码,并可以使用密码作为登录之后交互加密的密钥。密码存储文件本身是安全的。

图4所示为根据本发明实施方式的公私密钥加密示意图。利用一个公私密钥加密系统,可以在游戏服务器上发布公共密钥,或者将其写入游戏客户端执行文件中。然后用户的账号信息在连接上传送,不用担心在线上被窃听。另外一个方案是在用户设置账户时生成一个私有密钥,在服务器端存储匹配的公共密钥,并在本地使用用户的密码加密私有密钥(被称为密码短语)。

这样则具有以下特性。

服务器永远不知道密码短语,因此,恶意的雇员和服务器系统的入侵者都不可能轻易地通过包嗅探或者跳过登录来得到用户账号信息;

用户有很好的保障不会受到冒充服务器者的欺骗,只要服务器私有密钥不被破解,没有人可以假装服务器并提取用户信息。

用户账号信息不可迁移,如果的用户要在多个地点登录游戏,他需要制作账号私有密钥的副本才可以通过登录验证。

以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1