魔兽世界将军令工作原理猜想_将军令绑定时间查询

2020-02-28 其他范文 下载本文

魔兽世界将军令工作原理猜想由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“将军令绑定时间查询”。

魔兽世界将军令工作原理猜想

作者:吴沛儒

日期:2011年12月2日

摘要:根据魔兽世界将军令工作模式猜测其工作原理。

关键词:将军令,密码学,账户安全。

前言:

魔兽世界作为一款风靡全球的大型在线网络竞技游戏为人们所熟知,每天有数百万的玩家登录魔兽世界服务器,在线上或练级或交易。游戏时间,金币,装备,人物等级等等所有的东西都被一个帐号密码守护着似乎风险太大。为了让玩家们的账户更加安全,网易游戏公司推出了一个神奇的小守卫:将军令。

正文:

“将军令”是广州网易互动娱乐有限公司自主研发的、具有完全知识产权的高科技身份认证产品,专门用来保护网易通行证(游戏账号)、直销商账号的密码。“将军令”每隔一分钟产生一个全新的、不能重复使用的6位密码,用来保护游戏账号、账号的密码,俗称“动态密码”。使用“将军令”后,网易以“账号+密码+动态密码”的形式对游戏ID进行保护,大大提高了账号的安全性。

“将军令”的实际工作流程很简单:即用户端(“将军令”本身)产生一个动态密码,然后将这个动态密码和服务器端进行匹配。若匹配成功,玩家就能成功登录帐号。由于用户端在出厂之后,与服务器端就再没有物理上直接的联系,因此,如何与服务器端保持逻辑上的同步是最大的问题,即如何保证用户端产生的动态密码与服务器端验证的动态密码是一个密码。很多人对此提出过自己的设想,而现在,这就是笔者将要讨论的,将军令工作原理的问题。

为了更详细的了解将军令的工作原理,我拆掉一个将军令。由此知道了将军令的构造很其实简单:一块电池,一块芯片,一块显示屏,和一小块晶振时钟。

晶振的作用大家应该知道,跟手表的作用差不多,是用来计时的。芯片用来处理数据信息。电池用以供电,同时显示屏用以显示运算结果,也就是我们看到的6位动态密码。

经简单测试后,基本可以肯定将军令不向外发出信号,也不接受外来信号。也就是说,从它被生产好出场以后,不与服务器间产生通信。所以不可能是由服务器发送动态密码到将军令上,再由将军令显示出来。另外我注意到,将军令是一次性用品,它的使用期限为21个月,电用完之后不可以换一块电池继续使用。由此我猜测,制造商是为了保证客户端时间与服务器端时间同步才有此规定。同时,我们可以排除将军令中的芯片是用来存放有效动态密码存储设备,因为如果芯片是存储设备的话,完全没有必要规定电用完了就不能再用了。

而且我们知道,不同的将军令在同一时间按出的动态密码是不同的,而且每一个出场的将军令上都有一个唯一标识的SN编号。这是也是它唯一被服务器记录到的信息。

所以我们可以得出如下条件:

1.每分钟产生一个6位密码

2·不发射信号,也就是说它离场之后不与服务器联系。

3·唯一被记录的是SN号。

4·不同的将军令同时按出的动态密码是不同的。

5·不允许换电池,应该是为了保证与服务器时间同步。

推理得:

以时间(或以时间经过算法运算后得出的结果)为明文,SN号(或以SN号经过算法运算后得出的结果)为密钥,经过一个统一的算法后得出的密文,就是将军令显示出的那6个数字。

也就是说动态密码=函数(时间,SN号,其他)

其中,“其他”可能有也可能没有,也许还与绑定帐号的信息有关,这就不得而知了。

而那个等式中的函数可能是各种不同的加密算法,DES,RSA,IDEA,DSA等等。这些都是最近用的比较多的算法。

密码学的一个原则是“一切秘密寓于密钥之中”。算法可以公开。当加密完成后,可以将密文通过不安全渠道送给收信人,只有拥有解密密钥的收信人可以对密文进行解密即反变换得到明文,密钥的传递必须通过安全渠道。而SN码在正常情况下只有将军令的持有者才能知道。那么对于SN号是密钥,或者以SN号经过一个运算后作为密钥的猜想也是较可靠的。

照这样说的话,将军令以时间为明文计算出密文(动态密码),那么至此我们还没有解决客户端(将军令)与服务端时间同步问题。

我们不妨假设服务器端固定T0,引入因子△t,服务器端植入△t,△t为用户端时钟同服务器端时钟之差,即△t=T2-T1。这样,用户端(将军令)端的密码M=rand(T2X),服务器端密码M=rand[(T1+△t)X],这样,对于成千上万的用户端(将军令)在服务器端只要记录了△t,就可以了。这个△t,可以在将军令生产的时候植入服务器端予以记录。

同步的问题可以这样解决,服务器端动态的调整△t。在开通将军令的时候,在提交序列号和动态密码的时候,服务器端计算M=rand[(T1+△t)X],并且在△t的基础上,计算出{...,△t-5×60,△t-4×60, △t-3×60, △t-2×60, △t-1×60, △t, △t+1×60, △t+2×60, △t+3×60, △t+4×60, △t+5×60,...}这个数列。具体数列长度根据需要来定,由于是随机6位数的函数,在这个数列中是不会出现重复的M的。这样,就可以计算出△t附近前后相差n分钟所产生的密码M,只需要比对提交的动态密码与数列中的哪个值对应,就可以动态的调整△t。假设,动态密码与△t-2*60对应的密码相同,就可以调整△t=△t-2×60。这样,解决了用户端(将军令)从出厂到开通使用所产生的时间误差。这个n,根据实际需要制定。

在使用将军令的时候,采用同样的方法可以同步。在确定了t后,服务器端在每次验证的时候,只要算出M1=rand[(T1+t-y)X],M=rand[(T1+t)X],M2=rand[(T1+t+y)X],就可以算出t附近y秒的时间的密码M,就是允许将军令有y秒的时间误差。在具体使用中,有人已经测试证明将军令是有时间误差的。如果服务器端的M与将军令的M不一样,而是服务器端的M1与将军令的M一样,就可以实时的进行动态调整t=t-y了,实现将军令同服务器端时间上的同步。

现在我们唯一没有解决的问题就是那块小小的芯片里的算法了,它到底是用什么方法加密的呢?

有人借助薛定额方程算动态密码,虽然符合的较好,但并不是每次都对。还有人说用hash函数算的。我并不能确定这个算法到底是什么,更不知道算的步骤。既然它是一个帐号安全保护器,那随便能够算的出来它也没有什么存在的意义了。

现在将军令Ⅰ代已经被黑客破解,新推出的将军令第Ⅱ第Ⅲ代又能支撑多久呢?它们又将采用怎样的算法阻止黑客盗窃玩家的帐号?网络安全和黑客的斗争从网络诞生时就从没有停息过,而科技也在这一来一往中日渐长进。

参考资料:

http://bbs.ngacn.cc/read.php?tid=3758196将军令破解

http://baike.baidu.com/view/129867.htm百度百科——将军令

http://baike.baidu.com/view/1356.htm百度百科——晶振

关于“将军令”工作原理与算法思想的研究——计算机应用论文工学论文

《魔兽世界》经典台词

刀豆文库小编为你整合推荐5篇《魔兽世界》经典台词,也许这些就是您需要的文章,但愿刀豆文库能带给您一些学习、工作上的帮助。......

《魔兽世界》语录

刀豆文库小编为你整合推荐7篇《魔兽世界》语录,也许这些就是您需要的文章,但愿刀豆文库能带给您一些学习、工作上的帮助。......

《魔兽世界》语录

《魔兽世界》语录“种族并不代表荣誉……我知道有些兽人,他们象最高贵的骑士那样可敬;我还知道有些人类,他们象最残忍的亡灵天灾那样邪恶!”哀嚎洞一穴一:皮萨斯:死亡的力量会彻底......

《魔兽世界》经典台词

《魔兽世界》经典台词魔兽世界一直以来都是大家关注的影片,以下是小编收集官方最新消息,欢迎大家阅读。魔兽世界剧情简介电影设置“人类法师卡德加”为主线人物,他因为过于出色......

魔兽世界职业广告语

刀豆文库小编为你整合推荐3篇魔兽世界职业广告语,也许这些就是您需要的文章,但愿刀豆文库能带给您一些学习、工作上的帮助。......

《魔兽世界将军令工作原理猜想.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
魔兽世界将军令工作原理猜想
点击下载文档
相关专题 将军令绑定时间查询 魔兽世界 工作原理 将军令 将军令绑定时间查询 魔兽世界 工作原理 将军令
[其他范文]相关推荐
[其他范文]热门文章
下载全文