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

关于安全性:将不受篡改的数据从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上花费了数千万美元,这在几天/几周内就被家庭业余爱好者破解了。如果他们不能保护自己的东西...


推荐阅读

    linux命令测试客户端?

    linux命令测试客户端?,地址,系统,网络,工具,工作,分析,环境,命令,下行,资料,l

    linux运行vim命令?

    linux运行vim命令?,系统,工具,官方网站,模式,基础,数据,代码,环境,入口,命令

    linux服务器保存命令?

    linux服务器保存命令?,时间,状态,档案,电脑,命令,信息,位置,编辑,文件,模式,L

    linux服务器扫盘命令?

    linux服务器扫盘命令?,地址,工作,命令,目录,数据,单位,名称,系统,管理,信息,L

    linux数据库查找命令?

    linux数据库查找命令?,位置,名称,状态,服务,软件,信息,系统,命令,名字,密码,

    linux数据库同步命令?

    linux数据库同步命令?,信息,系统,汽车,车辆,服务,工作,通信,一致,分析,数据,D

    linux自动运行命令?

    linux自动运行命令?,服务,系统,时间,代码,周期性,第一,命令,管理,在线,状态,l

    linux开启运行命令?

    linux开启运行命令?,系统,服务,工作,管理,状态,命令,标准,情况,环境,工具,lin

    linux运行wps命令?

    linux运行wps命令?,软件,官网,名称,时间,电脑,系统,工具,环境,项目,数据,wps

    linux服务器搭建命令?

    linux服务器搭建命令?,系统,服务,软件,地址,平台,在线,密码,工具,环境,百度,l

    linux运行cmd命令?

    linux运行cmd命令?,电脑,系统,状态,情况,环境,命令,单位,管理,设备,数据,电脑

    服务器重启命令linux?

    服务器重启命令linux?,工作,标准,设备,服务,系统,名称,命令,百度,网络,密码,

    linux建立数据库命令?

    linux建立数据库命令?,软件,系统,工作,数据,密码,工具,数据库,一致,网络,服

    linux命令进数据库?

    linux命令进数据库?,地址,系统,名字,服务,密码,命令,读法,数据库,操作系统,

    linux运行两个命令?

    linux运行两个命令?,网络,地址,系统,工作,暂停,命令,网站,密码,网上,入口,Lin

    linux清空表数据命令?

    linux清空表数据命令?,系统,数据,软件,名称,不了,命令,文件,电脑,地址,位置,L

    linux拷贝数据命令?

    linux拷贝数据命令?,系统,地址,文件,数据,命令,目录,服务,基本知识,项目,密

    linux服务器删除命令?

    linux服务器删除命令?,系统,服务,管理,情况,命令,工作,互动,地址,软件,较大,l

    linux命令运行代码?

    linux命令运行代码?,代码,单位,系统,环境,连续,保险,工具,命令,文件,音乐,Lin

    linux服务器负荷命令?

    linux服务器负荷命令?,信息,电脑,中科,环境,工具,系统,平均,检测,情况,状态,l