首页 / 知识

关于安全性:将不受篡改的数据从Flash应用传递到服务器?

2023-04-14 08:44:00

关于安全性:将不受篡改的数据从Flash应用传递到服务器?

Passing untampered data from Flash app to server?

我正在寻找在运行Flash的客户端和服务器之间传递数据的安全方法。 有问题的数据将由Flash应用程序生成,在这种情况下,这是您完成游戏后的得分。 我想验证服务器上的数据是否未被篡改。 有什么好的方法可以做到这一点?

一种简单的方法是对数据执行某些操作(例如哈希),并将哈希值与数据一起传递回服务器。 但是,这很容易被有权访问客户端源代码的人破解。

编辑:我意识到没有什么是无法破解的,但是我想使其尽可能地困难。 我认为@jcnnghm的解决方案是使用公钥加密数据,并可以选择对游戏日志进行完整性检查和/或重新计算。 SSL加密也是一个好主意,因为这会使解密发送回服务器的内容变得更加困难。


用存储在二进制文件中的公共密钥加密数据。这将增加攻击的进入壁垒。除此之外,当数据到达服务器时,还要进行完整性检查。这可能很简单,例如计算每个游戏时间单位可以实际赚取的最大积分数,或者将游戏日志发送回服务器以确保计分正确。

不管您做什么,都不会完全证明其不受黑客攻击,但这将停止一切,除非是最坚定的。

更新:@mark:Flash本身支持SSL。


在不受信任的平台上运行的代码能否保持其完整性?不,几十年来破坏性的复制保护方案使我推测这是不可能的。在受信任的沙箱中运行的反向恶意代码是可行的,但是您可以做的最好的事情是使人们作弊变得不便。


在http://code.google.com/p/as3crypto/上查看AS3Crypto软件包。我没有尝试过,但是此软件包声称(部分)支持TLS 1.0协议。

TLS将在Flash应用程序和服务器之间提供安全的隧道。
http://en.wikipedia.org/wiki/Secure_Sockets_Layer

@jcnnghm
您通常不希望对大容量数据加密使用公钥加密(RSA,DSA),因为它的计算时间较长。公钥加密应在安全协议的握手和密钥协商阶段中使用,但大容量数据加密应由对称密码(例如AES和TDES)处理。 TLS和SSL协议以这种方式工作。


我同意给出的答案是黑客证明。因为一旦您可以阅读它,就可以对其进行操作/复制并对其进行反编译。

我一直在计划的另一种方法是生成唯一的密钥pr。玩家会话(包括某种时间/日期作为盐值)。

然后遍历整个应用程序,可能会定期提交/传输状态评分并获得新的有效密钥。如果此同步失败,则中断整个会话。

不利的一面可能是太多同时进行的玩家降低了服务器的回复速度,从而导致"假超时" +使游戏服务器无法进行DoS攻击。

但是在用户进行会话时更新"会话密钥"的操作会要求额外的会话管理,但是如果这样做会使作弊者更难一点,我一定会尝试的:o)

另一方面,"无"是黑客证明,因此,不管您想到的解决方案多么聪明,都不要100%相信它。

最后要注意的是将您的应用程序划分为模块/级别等,这样,仅通过启动它就不会访问所有代码。

目前,我的计划是建立一个大型的多层次世界,客户端/播放器将仅将文件附加到播放器所驻留的部分。

希望这对您的想法有用。


只要人们可以获取可执行文件-除非您希望在锁定的信息亭中运行游戏,否则情况总是如此-尚无完全安全的方法。

音乐和电影行业在DRM上花费了数千万美元,这在几天/几周内就被家庭业余爱好者破解了。如果他们不能保护自己的东西...


数据服务器安全性客户端

最新内容

相关内容

热门文章

推荐文章

标签云

猜你喜欢