CN109718557A - 一种跨服登录方法 - Google Patents
一种跨服登录方法 Download PDFInfo
- Publication number
- CN109718557A CN109718557A CN201910068709.8A CN201910068709A CN109718557A CN 109718557 A CN109718557 A CN 109718557A CN 201910068709 A CN201910068709 A CN 201910068709A CN 109718557 A CN109718557 A CN 109718557A
- Authority
- CN
- China
- Prior art keywords
- server
- random number
- taking
- account
- client
- 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.)
- Granted
Links
Landscapes
- Information Transfer Between Computers (AREA)
- Storage Device Security (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种跨服登录方法,该方法由用户使用客户端登录游戏服务器,在跨服活动开始后,通过客户端申请加入跨服活动,由游戏服务器基于跨服服务器生成的认证随机数生成跨服令牌,客户端持该跨服令牌登录跨服服务器。该方法在保证跨服登录安全性的基础上,降低了服务器压力。
Description
【技术领域】
本发明属于计算机和信息安全领域,尤其涉及一种跨服登录方法。
【背景技术】
现有的网络游戏通常都具有多个游戏服务器,玩家需要登录其选择的服务器,从而可与该游戏服务器中的其他玩家进行交互,但是并不能与其他游戏服务器中的玩家交互。为了突破这种限制,一些网络游戏提出了跨服活动的概念,即玩家可以在一定条件下(例如指定时间)参与到跨服活动中,与其他参与跨服活动的来自不同游戏服务器的玩家进行交互。
在具体实现上,一般需要引入一个进行跨服活动的服务器,接受来自各个游戏服务器的玩家,从而将各玩家纳入到同一个跨服服务器。当跨服活动开始时,跨服服务器可能面临大量玩家的登录请求,给跨服服务器带来巨大的压力。因此,如何处理大量登录请求,并且保证玩家登录的安全性是一个需要解决的技术问题。
【发明内容】
为了解决现有技术中的上述问题,本发明提供了一种跨服登录方法。
本发明采用的技术方案具体如下:
一种跨服登录方法,包括以下步骤:
(1)用户使用客户端登录游戏服务器;游戏服务器为该用户生成登录令牌Token,即Token=E(account,R),其中account是用户的账号,E是对称加密算法,R为随机数;
(2)当跨服服务器开启跨服活动后,跨服服务器在每个时间周期开始时,根据其当前负荷,计算出该时间周期内可以接受的登录数量K;
(3)所述跨服服务器向数据库服务器查询其当前还保有多少个认证随机数;
(4)所述数据库服务器向所述跨服服务器回复当前保有的认证随机数的数量m,如果m<K,则所述跨服服务器生成K-m个随机数作为新的认证随机数发送给所述数据库服务器,所述数据库服务器存储该K-m个认证随机数;如果m>K,则所述跨服服务器通知数据库服务器删除其中的m-K个认证随机数;
(5)用户通过客户端向游戏服务器提出参与跨服活动的请求;
(6)所述游戏服务器向数据库服务器发送请求,申请一个认证随机数;如果数据库服务器当前没有认证随机数,则拒绝该申请;否则所述数据库服务器从其保有的认证随机数中选择一个返回给该游戏服务器,同时将选择的认证随机数从其保有的认证随机数中删除;
(7)所述游戏服务器接收到认证随机数R1后,生成一个跨服令牌Token1,即Token1=E(account,R2),其中R2=R R1,并将该跨服令牌发送给所述客户端;
(8)所述客户端将用户账号和所述跨服令牌发送给所述跨服服务器以申请登录,所述跨服服务器将所述跨服令牌作为验证数据发送给所述游戏服务器;
(9)所述游戏服务器解密所述跨服令牌,获得其中的account和R2,同时游戏服务器获取该account对应的随机数R,计算得到R1=R2R;
(10)所述游戏服务器将步骤9获得的account和R1发送给所述跨服服务器,所述跨服服务器判断该account是否和步骤8中接收到的用户账号相同,如果不同则拒绝客户端登录,如果相同再判断R1是否是最近一段时间内生成的认证随机数,如果不是则拒绝该客户端登录,否则接受该客户端登录。
进一步地,所述加密算法E的密钥仅由所述游戏服务器存储。
进一步地,用户账号account和相应的随机数R关联保存于所述游戏服务器中。
进一步地,所述登录领域具有过期时间。
进一步地,所述步骤5具体包括:当跨服活动开始后,游戏服务器通知客户端,客户端向用户展示相应的参与选项,用户通过选择这样的选项向游戏服务器发送参与跨服活动的请求。
进一步地,所述步骤6中,数据库服务器拒绝游戏服务器的申请后,游戏服务器通知客户端当前服务器忙,或者等待一段时间重新申请。
进一步地,所述步骤10中,所述最近一段时间设置为最近的两个时间周期内。
本发明的有益效果是:在保证跨服登录安全性的基础上,降低了服务器压力。
【附图说明】
此处所说明的附图是用来提供对本发明的进一步理解,构成本申请的一部分,但并不构成对本发明的不当限定,在附图中:
图1是本发明跨服游戏***的结构图。
【具体实施方式】
下面将结合附图以及具体实施例来详细说明本发明,其中的示意性实施例以及说明仅用来解释本发明,但并不作为对本发明的限定。
参见附图1,其示出了整个跨服游戏***的结构图,整个***包括多个游戏客户端、多个游戏服务器、跨服服务器、数据库服务器。用户在通常情况下,使用其客户端登录各自所属的游戏服务器进行游戏,在需要进行跨服活动(例如跨服战)时,客户端登录到跨服服务器进行游戏。客户端与游戏服务器之间,不同服务器之间都可以通过网络互相通信,并且本发明登录方法所进行的通信都应在安全信道中进行,例如通过https协议。
基于上述***结构,下面对本发明的方法进行详细说明。
(1)用户使用客户端登录游戏服务器。
在进行跨服活动之前,用户首先需要登录其对应的游戏服务器,具体的,用户在客户端输入其账号和密码,客户端计算密码的哈希值,将该哈希值与该账号一起发送给游戏服务器。
游戏服务器随机生成一个随机数R,为该用户生成一个登录令牌Token,即Token=E(account,R),其中account是用户的账号,E是对称加密算法,该加密算法使用的密钥只有游戏服务器知道,并且只有游戏服务器可以解密。
游戏服务器将所述登录令牌发送给所述客户端,所述客户端此后就可以持该登录令牌直接登录该游戏服务器。具体的,游戏服务器在生成登录令牌时,将用户账号account和随机数R对应保存于游戏服务器中,因而当游戏服务器接收到登录令牌时,其解密该登录令牌,判断登录令牌中的account和R是否对应,如果对应,则允许该客户端以该用户账号的身份登录。
优选的,游戏服务器可以为该登录令牌设置一个过期时间,在过期时间之后,要求用户重新使用其账号密码登录,并生成新的登录令牌。
(2)当跨服服务器开启跨服活动后,跨服服务器在每个时间周期开始时,根据其当前负荷,计算出该时间周期内可以接受的登录数量K。
所述时间周期是预先确定的,例如10分钟,跨服服务器计算出下个10分钟内可接受多少个用户登录,而不会对跨服服务器造成过大压力。并且每隔10分钟跨服服务器都计算一次,得到下个10分钟可接受的登录数量。
由于跨服服务器的负荷是动态变化的,每个时间周期都会有新用户登录,也会有用户退出跨服活动,因而为每个时间周期计算得到的可接受登录数量都是不同的。
(3)所述跨服服务器向数据库服务器查询其当前还保有多少个认证随机数。
所述认证随机数是由跨服服务器生成的(具体的生成和作用见后续步骤),并且由数据库服务器存储,认证随机数的数量由跨服服务器控制。
(4)所述数据库服务器向所述跨服服务器回复当前保有的认证随机数的数量(假设有m个),若m<K,则所述跨服服务器生成K-m个随机数作为新的认证随机数发送给所述数据库服务器,所述数据库服务器存储该K-m个认证随机数;若m>K,则所述跨服服务器通知数据库服务器删除其中的m-K个认证随机数。
所述认证随机数用于认证其可接受的跨服登录,通过步骤4,跨服服务器保证了数据库服务器中有且仅有K个认证随机数,对应于当前时间周期可登录的数量。
(5)用户通过客户端向游戏服务器提出参与跨服活动的请求。
具体的,当跨服活动开始后,游戏服务器会通知客户端,客户端也会向用户展示相应的参与选项,用户通过选择这样的选项向游戏服务器发送参与跨服活动的请求。
(6)所述游戏服务器向数据库服务器发送请求,申请一个认证随机数;如果数据库服务器当前没有认证随机数,则拒绝该申请;否则所述数据库服务器从其保有的认证随机数中选择一个返回给该游戏服务器,同时将选择的认证随机数从其保有的认证随机数中删除。
步骤6意味着,每个申请跨服活动的用户,都间接地通过游戏服务器从数据库服务器获得一个认证随机数。数据库服务器基于游戏服务器的申请,分配其保有的认证随机数,每个申请分配一个,并且一旦分配出去,就从数据库服务器中删除。这样,通过认证随机数的分配数量,就控制了可以在一段时间内登录跨服服务器的用户数量,避免了大规模登录对跨服服务器的压力。同时跨服服务器将这项工作转移到数据库服务器,同样也分散了其自身的压力。
如果数据库服务器当前没有保有认证随机数,则拒绝游戏服务器的申请,游戏服务器可以通知客户端当前服务器忙,或者等待一段时间重新申请,具体的处理方式本发明不作限制。
(7)所述游戏服务器接收到认证随机数R1后,生成一个跨服令牌Token1,即Token1=E(account,R2),其中R2=R R1,并将该跨服令牌发送给所述客户端。
从上述计算过程可以看出,跨服令牌实际上同时包括了登录令牌的相关信息,将跨服令牌与客户端的登录令牌关联起来,用于后续的认证。
(8)所述客户端将用户账号和所述跨服令牌发送给所述跨服服务器以申请登录,所述跨服服务器将所述跨服令牌作为验证数据发送给所述游戏服务器。
所述跨服令牌中实际上包含了用户的账号信息,因此两者需要对应,才能通过跨服服务器的验证。由于跨服令牌只有游戏服务器可以解密,因而跨服服务器需要通过游戏服务器对跨服令牌进行验证。
(9)所述游戏服务器解密所述跨服令牌,获得其中的account和R2,同时游戏服务器获取该account对应的随机数R,计算得到R1=R2R。
如前所述,游戏服务器将用户账号和其随机数R对应存储。由于可能同时有多个客户端在请求登录跨服服务器,因此游戏服务器需要根据用户账号才能获得其对应的随机数R,并进一步计算出R1。
(10)所述游戏服务器将步骤9获得的account和R1发送给所述跨服服务器,所述跨服服务器判断该account是否和步骤8中接收到的用户账号相同,如果不同则拒绝客户端登录,如果相同再判断R1是否是最近一段时间内生成的认证随机数,如果不是则拒绝该客户端登录,否则接受该客户端登录。
所述最近一段时间可预先设定,用于限定客户端的登录延迟,例如设置为最近的两个时间周期内。同时为了进行比较,跨服服务器也需要保存最近一段时间内生成的认证随机数。
基于以上登录过程,跨服服务器通过设置每个时间周期内的认证随机数,并将验证工作转移到游戏服务器和数据库服务器,避免了同时大流量的登录验证,降低了服务器压力。另一方面,认证随机数和跨服令牌的设置,也保证了跨服登录的安全性。
以上所述仅是本发明的较佳实施方式,故凡依本发明专利申请范围所述的构造、特征及原理所做的等效变化或修饰,均包括于本发明专利申请范围内。
Claims (7)
1.一种跨服登录方法,其特征在于,包括以下步骤:
(1)用户使用客户端登录游戏服务器;游戏服务器为该用户生成登录令牌Token,即Token=E(account,R),其中account是用户的账号,E是对称加密算法,R为随机数;
(2)当跨服服务器开启跨服活动后,跨服服务器在每个时间周期开始时,根据其当前负荷,计算出该时间周期内可以接受的登录数量K;
(3)所述跨服服务器向数据库服务器查询其当前还保有多少个认证随机数;
(4)所述数据库服务器向所述跨服服务器回复当前保有的认证随机数的数量m,如果m<K,则所述跨服服务器生成K-m个随机数作为新的认证随机数发送给所述数据库服务器,所述数据库服务器存储该K-m个认证随机数;如果m>K,则所述跨服服务器通知数据库服务器删除其中的m-K个认证随机数;
(5)用户通过客户端向游戏服务器提出参与跨服活动的请求;
(6)所述游戏服务器向数据库服务器发送请求,申请一个认证随机数;如果数据库服务器当前没有认证随机数,则拒绝该申请;否则所述数据库服务器从其保有的认证随机数中选择一个返回给该游戏服务器,同时将选择的认证随机数从其保有的认证随机数中删除;
(7)所述游戏服务器接收到认证随机数R1后,生成一个跨服令牌Token1,即Token1=E(account,R2),其中R2=R R1,并将该跨服令牌发送给所述客户端;
(8)所述客户端将用户账号和所述跨服令牌发送给所述跨服服务器以申请登录,所述跨服服务器将所述跨服令牌作为验证数据发送给所述游戏服务器;
(9)所述游戏服务器解密所述跨服令牌,获得其中的account和R2,同时游戏服务器获取该account对应的随机数R,计算得到R1=R2 R;
(10)所述游戏服务器将步骤9获得的account和R1发送给所述跨服服务器,所述跨服服务器判断该account是否和步骤8中接收到的用户账号相同,如果不同则拒绝客户端登录,如果相同再判断R1是否是最近一段时间内生成的认证随机数,如果不是则拒绝该客户端登录,否则接受该客户端登录。
2.根据权利要求1所述的方法,其特征在于,所述加密算法E的密钥仅由所述游戏服务器存储。
3.根据权利要求1-2任意一项所述的方法,其特征在于,用户账号account和相应的随机数R关联保存于所述游戏服务器中。
4.根据权利要求1-3任意一项所述的方法,其特征在于,所述登录领域具有过期时间。
5.根据权利要求1-4任意一项所述的方法,其特征在于,所述步骤5具体包括:当跨服活动开始后,游戏服务器通知客户端,客户端向用户展示相应的参与选项,用户通过选择这样的选项向游戏服务器发送参与跨服活动的请求。
6.根据权利要求1-5任意一项所述的方法,其特征在于,所述步骤6中,数据库服务器拒绝游戏服务器的申请后,游戏服务器通知客户端当前服务器忙,或者等待一段时间重新申请。
7.根据权利要求1所述的方法,其特征在于,所述步骤10中,所述最近一段时间设置为最近的两个时间周期内。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910068709.8A CN109718557B (zh) | 2019-01-24 | 2019-01-24 | 一种跨服登录方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910068709.8A CN109718557B (zh) | 2019-01-24 | 2019-01-24 | 一种跨服登录方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109718557A true CN109718557A (zh) | 2019-05-07 |
CN109718557B CN109718557B (zh) | 2022-02-08 |
Family
ID=66299991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910068709.8A Active CN109718557B (zh) | 2019-01-24 | 2019-01-24 | 一种跨服登录方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109718557B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111282262A (zh) * | 2020-01-13 | 2020-06-16 | 网易(杭州)网络有限公司 | 游戏服务器通信的方法及装置 |
CN111786948A (zh) * | 2020-05-21 | 2020-10-16 | 中清龙图计算机科技(上海)有限公司 | 一种云游戏控制方法、装置、***、设备及介质 |
CN112604270A (zh) * | 2020-12-29 | 2021-04-06 | 北京冰封互娱科技有限公司 | 网络游戏的跨服方法、装置及设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1283631A2 (en) * | 2001-08-06 | 2003-02-12 | Sun Microsystems, Inc. | Web based applications single sign on system and method |
CN1556491A (zh) * | 2003-12-30 | 2004-12-22 | 北京金山数字娱乐科技有限公司 | 服务器*** |
CN102111410A (zh) * | 2011-01-13 | 2011-06-29 | 中国科学院软件研究所 | 一种基于代理的单点登录方法及*** |
CN104506542A (zh) * | 2014-12-29 | 2015-04-08 | 深圳中兴网信科技有限公司 | 安全认证方法和安全认证*** |
CN105262848A (zh) * | 2015-06-30 | 2016-01-20 | 清华大学 | 用户互联网身份标识及生成方法和*** |
CN105472052A (zh) * | 2014-09-03 | 2016-04-06 | 阿里巴巴集团控股有限公司 | 一种跨域服务器的登录方法和*** |
-
2019
- 2019-01-24 CN CN201910068709.8A patent/CN109718557B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1283631A2 (en) * | 2001-08-06 | 2003-02-12 | Sun Microsystems, Inc. | Web based applications single sign on system and method |
CN1556491A (zh) * | 2003-12-30 | 2004-12-22 | 北京金山数字娱乐科技有限公司 | 服务器*** |
CN102111410A (zh) * | 2011-01-13 | 2011-06-29 | 中国科学院软件研究所 | 一种基于代理的单点登录方法及*** |
CN105472052A (zh) * | 2014-09-03 | 2016-04-06 | 阿里巴巴集团控股有限公司 | 一种跨域服务器的登录方法和*** |
CN104506542A (zh) * | 2014-12-29 | 2015-04-08 | 深圳中兴网信科技有限公司 | 安全认证方法和安全认证*** |
CN105262848A (zh) * | 2015-06-30 | 2016-01-20 | 清华大学 | 用户互联网身份标识及生成方法和*** |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111282262A (zh) * | 2020-01-13 | 2020-06-16 | 网易(杭州)网络有限公司 | 游戏服务器通信的方法及装置 |
CN111282262B (zh) * | 2020-01-13 | 2023-04-18 | 网易(杭州)网络有限公司 | 游戏服务器通信的方法及装置 |
CN111786948A (zh) * | 2020-05-21 | 2020-10-16 | 中清龙图计算机科技(上海)有限公司 | 一种云游戏控制方法、装置、***、设备及介质 |
CN112604270A (zh) * | 2020-12-29 | 2021-04-06 | 北京冰封互娱科技有限公司 | 网络游戏的跨服方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109718557B (zh) | 2022-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108810029B (zh) | 一种微服务架构服务间鉴权***及优化方法 | |
CN106357649B (zh) | 用户身份认证***和方法 | |
US8223969B2 (en) | Methods and systems for secure distribution of subscription-based game software | |
US8631481B2 (en) | Access to a network for distributing digital content | |
CN106973041B (zh) | 一种颁发身份认证凭据的方法、***及认证服务器 | |
CN100586066C (zh) | 一种实现单点登录的***及方法 | |
CN108965338B (zh) | 多服务器环境下的三因素身份认证及密钥协商的方法 | |
CN104767731B (zh) | 一种Restful移动交易***身份认证防护方法 | |
CN104243458B (zh) | 一种安全的网络游戏登录方法及*** | |
CN107332808A (zh) | 一种云桌面认证的方法、服务器及终端 | |
CN103906052B (zh) | 一种移动终端认证方法、业务访问方法及设备 | |
CN105391734B (zh) | 一种安全登录***及方法、登录服务器和认证服务器 | |
CN107251035A (zh) | 账户恢复协议 | |
CN106470190A (zh) | 一种Web实时通信平台鉴权接入方法及装置 | |
CN109547198B (zh) | 网络传输视频文件的*** | |
CN106330816A (zh) | 一种登录云桌面的方法和*** | |
CN109718557A (zh) | 一种跨服登录方法 | |
CN101651666A (zh) | 一种基于虚拟专用网的身份认证及单点登录的方法和装置 | |
CN106713276B (zh) | 一种基于授权认证的数据获取方法及其*** | |
JPH08297638A (ja) | 利用者認証方式 | |
CN106534219A (zh) | 用于桌面云门户的安全认证方法和装置 | |
CN106453361A (zh) | 一种网络信息的安全保护方法及*** | |
CN101325483B (zh) | 对称密钥更新方法和对称密钥更新装置 | |
CN110866754A (zh) | 一种基于动态口令的纯软件dpva身份认证方法 | |
CN110176989A (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 |