Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否将未经缓冲的数据从Flash应用程序传递到服务器?_Flash_Security_Encryption - Fatal编程技术网

是否将未经缓冲的数据从Flash应用程序传递到服务器?

是否将未经缓冲的数据从Flash应用程序传递到服务器?,flash,security,encryption,Flash,Security,Encryption,我正在寻找在运行Flash的客户端和服务器之间传递数据的安全方法。有问题的数据将由Flash应用程序生成,在本例中,它是您完成游戏后的分数。我想验证服务器上的数据是否未被屏蔽。有什么好方法可以做到这一点 一种简单的方法是对数据执行一些操作,例如散列,然后将散列与数据一起传递回服务器。然而,有权访问客户机源代码的人很容易破坏这一点 编辑:我意识到没有什么东西是不可压缩的,但我想让它尽可能地困难@我认为,jcnnghm的解决方案是使用公钥加密数据,并可以选择使用游戏日志进行健全性检查和/或重新计算。

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

一种简单的方法是对数据执行一些操作,例如散列,然后将散列与数据一起传递回服务器。然而,有权访问客户机源代码的人很容易破坏这一点


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

只要人们能够获取可执行文件——除非你想在锁定的信息亭上运行游戏,否则永远都是这样——没有完全安全的方法可以做到这一点


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

在不可信的平台上运行的代码能保持其完整性吗?不,几十年来的破坏性拷贝保护方案让我认为这是不可能的。在受信任的沙箱中运行反向恶意代码是可行的,但解决问题的最佳方法是让人们不方便作弊。

使用存储在二进制文件中的公钥加密数据。这将提高攻击的进入壁垒。除此之外,在数据到达服务器时检查数据是否正常。这可以简单到计算每个游戏时间单位实际可以获得的最大点数,或者将游戏日志传输回服务器以确保得分正确

无论你做什么,没有什么是完全防黑客的,但这将阻止一切,但最坚定的


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

请访问查看AS3Crypto包。我还没有尝试过,但是这个包声称(部分)支持TLS1.0协议

TLS将在Flash应用程序和服务器之间提供一个安全通道。

@jcnnghm
通常情况下,您不希望使用公钥加密(RSA、DSA)进行批量数据加密,因为其“计算时间长”。在安全协议的握手和密钥协商阶段应使用公钥加密,但批量数据加密应使用对称密码(如AES和TDES)进行处理。TLS和SSL协议就是这样工作的。

我同意给出的答案,没有任何东西是防黑客的。因为一旦你可以阅读它,你就可以操作/复制它,并因此对它进行反编译

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

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

这样做的缺点可能是太多的同时玩家降低了服务器的回复速度,从而导致“假超时”+让游戏服务器为DoS攻击打开

但是,当用户拥有会话时,更新“会话密钥”将需要额外的会话管理,但如果这会让作弊者工作更努力,我肯定会尝试:o)

另一方面,没有什么是防黑客的,所以不要100%相信它——不管你想出了多么聪明的解决方案

最后一个注意事项是将您的应用程序划分为模块/级别等,这样您就不会仅仅通过启动它就可以访问每一段代码

目前,我的计划是建立一个大的多层次世界,客户端/播放器将只获取附加到播放器所在部分的文件

希望这对你的想法有用