小倩评测网浅谈网络游戏的安全性

游戏攻略 10-30 阅读: 评论:
后台-系统设置-扩展变量-手机广告位-内容正文顶部
 
自从推出家用计算机以来,我们正在目睹游戏领域的最大革命:通过互联网通过调制解调器玩的在线游戏。现在,许多公司坚持认为,他们开发的每个游戏都必须具有在线组件。最雄心勃勃的在线游戏是持久的世界,它将数百名玩家沉浸在一个共享的环境中。传统上,游戏程序员一直面临着众所周知的挑战,例如人工智能,快速3D图形和输入设备。在持久世界的发展中,存在着一系列全新的问题。

考虑以下:

一个游戏可以持续数年。当您离开游戏时,将保存有关会话状态的信息。新玩家可以随时加入游戏,而旧玩家可以完全停止游戏。

在线游戏可以同时在数千台计算机上运行。通常,中央服务器联合体接受连接并与播放器计算机上运行的客户端进程同步通信。行星网络-Internet-在客户端和服务器之间传输数据(在大型游戏中,客户端将所有数据直接发送给其他客户端是不切实际的)。

似乎在引入每个新游戏之后,都会引入专门用于欺骗游戏的网站。在单人或两人游戏中,作弊是一个小问题,因为它一次只影响一两个人。但是,在线游戏中的一个作弊者可能会影响成千上万的人,并具有持久的影响。

在网络游戏开发人员必须关注的所有问题中,安全性最初似乎是一个琐碎的问题。但是,这对于保持系统运行至关重要。通信方案或图形引擎中的设计错误可能会导致性能欠佳,而游戏安全性中的设计错误则是破坏的第一步。在客户为继续访问游戏付费的情况下,让黑客免费运行是确保失去大部分付费客户群的肯定方法。 

在持久性在线游戏中,请考虑以下情形。Ben是游戏的狂热玩家,有一天他将它展示给了他的朋友Alyssa,后者是计算机科学专业的学生。出于好奇,Alyssa编写了一个程序来检查游戏所产生的所有网络流量。为了进一步了解,她扩展了程序以随机​​修改客户端发送的某些消息。她不知道,该服务器包含一个错误,该错误将一些随机数据意外合并到持久性世界中并破坏了其数据库。大约一周后,在没有警告的情况下,服务器崩溃了,并且系统管理员被迫将数据库恢复到上周的状态。愤怒的是,成千上万的客户取消了他们的帐户,游戏死于暴力死亡。

为了避免您认为安全性只是一个理论问题,请考虑一些流行游戏中的最新事件。暴雪的Battle.net服务似乎在一开始就包含一些主要的安全漏洞。正如Battle.net上任何经验丰富的DIABLO玩家都会告诉您的那样,人们已经找到了收集令人难以置信的强大设备而无需赚钱的方法。甚至有人甚至破解了游戏,以使多人游戏中的角色可以通过网络被盗。在QUAKE中,黑客创建了称为bot的自动化程序,该程序可以自动消灭对手。这些是免费游戏网络;想象一下,黑客将花费多少精力来攻击按小时付费系统,或者如果有人在不受管制的QUAKE锦标赛中提供了法拉利作为奖励。

在MERIDIAN 59的开发过程中,我们收到了令人震惊的提醒,说明敬业的黑客可能是什么样。在游戏开始时,玩家可以通过将数值分配给某些属性来自定义角色。播放器选择值后,数字将发送到服务器。不幸的是,在某一时刻,我们更改了选择方法而未更改服务器中确保值合法的检查。自然,很快有人修改了客户端可执行文件以发送大得离谱的属性值,然后他们与朋友共享了这个hack。很快,我们有神灵般的角色在世界各地徘徊。我们的第一个解决方案将这些值加在一起,并检查了总数是否在法定限制之内。一周之内,有人发现某些属性值加在一起后,导致金额溢出到合法范围内,使他们可以继续作弊。教训是,黑客可能非常聪明和执着,因此通过模糊性来实现安全的惰性解决方案通常是不够的。

并非总是要为安全问题负责的玩家。MERIDIAN 59具有一种只能由游戏管理员访问的管理模式,它可以完全控制服务器。但是,在我们的Beta测试期间,一个粗心的管理员学习了该系统,对游戏世界进行了一些未经考虑的修改。直到几个小时后,这种效果才显现出来,突然,角色的名字开始消失,怪物开始出现在他们的库存中(它们甚至攻击了持有它们的玩家!)。我们被迫从一个小时的备份中恢复游戏状态。在商业系统中,这将是非常灾难性的。为避免出现此类粗心大意的错误,在分发管理权限时应尽可能地严格。



大多数持久性世界具有相同的基本体系结构特征。要玩游戏,用户要么从CD-ROM安装客户端软件,要么从Internet下载它。客户端软件包含使用为特定游戏设计的自定义协议与游戏服务器通信的代码。大型静态数据(例如图形文件,声音,音乐和关卡布局)通常是最初安装到客户端的一部分。

大多数基于LAN的游戏所使用的点对点方法无法很好地扩展到大型持久性世界。当游戏持续的时间超过单个会话时,将变得难以应对玩家任意进出游戏的情况。性能也成为问题,因为游戏状态的数量随玩家数量的增加而线性增加,而网络带宽的数量却保持不变。一个简单的网络游戏(例如射击游戏)具有很少的游戏状态-可能与所有玩家和怪物,他们的武器和弹药的坐标一样少。这允许每个游戏客户端知道整个游戏状态,并可以将一个客户端所做的所有游戏状态更改传送给其他所有人。

另一方面,为了解决大型游戏的问题,在中央位置设置一个或多个游戏服务器以跟踪游戏状态。每个游戏客户端都将其更改专门传达给游戏服务器,游戏服务器仅将这些更改传达给需要接收这些更改的客户端(图2)。例如,如果一个用户移动他或她的角色,则服务器仅需要告诉该用户附近的其他客户端。这将游戏的带宽使用量减少到不会使用户的基于调制解调器的连接超载的程度。

某些虚拟世界在最初创建后会持续多年。这是创建持久世界而不是短暂游戏的好处之一。为了延长持久世界的寿命,开发人员通常会随着时间的流逝而不断发展游戏,方法是向世界添加更多区域并为游戏增加新功能。为支持此功能,客户端软件必须具有一种自行升级的方法,最好无需任何用户干预。这是任何持久性世界初始发行版中最重要的部分之一,因为尽管世界最初可能很原始,但随着时间的流逝,它有可能得到显着改善。

除了游戏服务器外,可能还需要其他过程才能使整个系统在商业环境中工作。用户帐户信息可能存储在外部数据库中,动态游戏更新可能使用FTP服务器,自动邮件可能需要SMTP服务器。这些进程可以与游戏在同一台计算机上运行,​​但是出于性能方面的考虑,它们通常在不同的计算机上运行。


安全预防措施 

在线游戏中有两个安全目标:

保护敏感信息,例如玩家的信用卡号。

提供一个公平的竞争环境,以便尽可能地防止作弊。

保护敏感信息主要是正确配置服务器联合体的问题。与游戏连接的每台计算机,例如任何Web,FTP或数据库服务器,都必须得到保护。所有游戏服务器应位于防火墙之后,该防火墙仅允许数据通过游戏需要运行的端口。最后,由于对计算机的物理访问会规避所有其他安全预防措施,因此服务器综合系统应位于锁定区域中。

从前面的MERIDIAN 59示例中可以看出,为防止开发人员以外的员工损坏游戏或泄露信息,还需要一定程度的内部安全性。通常,应严格将行政权力授予要求这些权力完成工作的那些工作人员。授予权力后,几乎不可能将其夺走,因此要格外小心。将严重的权力,尤其是更改帐户信息的能力,限制在少数几个受信任的现场人员手中。
后台-系统设置-扩展变量-手机广告位-内容正文底部
版权声明

本文仅代表作者观点,不代表小倩游戏网_杰克棋牌游戏下载_中国棋牌游戏第一门户立场。
本文系作者授权小倩游戏网_杰克棋牌游戏下载_中国棋牌游戏第一门户发表,未经许可,不得转载。

分享:

扫一扫二维码

扫一扫在手机阅读、分享本文

评论

留言与评论(共有 0 条评论)
   
验证码: