安全性:AS3中的成就和得分API

Mar*_*rty 5 security api flash actionscript-3

多年来,在Flash游戏开发方面,我已经成为一个超级聪明的人.现在我正在考虑利用我的技能帮助其他游戏开发者.

我想在AS3中开发一个API,这将允许开发人员(作为开始)做以下事情:

  1. 显示一个对话框,让用户登录他们的"帐户"(托管在我的网站上).
  2. 将分数/值发送到网站并将其归因于登录用户.
  3. 解锁成就(成就将由开发人员在Web界面中设置 - 这也是他们将获得某种类型的密钥以与其API一起使用的地方.
  4. 显示高分,其他玩家在游戏中的个人资料等(基本上显示游戏中的任何统计数据).

一切都很容易直接发展.然而; 安全感变得令人沮丧.我并不期待一个坚不可摧的解决方案,我完全清楚这是不可能的,但是最有防御性的方法是什么呢?

以下是我可以在现场思考的问题:

  1. 最重要的一点 - 人们通过中间人攻击窃取API密钥.
  2. 高分注射,虚假成就解锁.
  3. 反编译SWF并窃取API密钥.
  4. 使用API​​密钥创建虚拟闪存应用程序并发送高分数等随机数据.
  5. 更改API本身,因此您无需登录等.

我曾经想过将我的API转换为组件,因此无法访问代码(除非您反编译).这里的问题是它对开发人员不友好,虽然它允许我为UI创建自己的图形(而不是编码许多精灵).

除非有非常好的防反编译保护,否则私钥/公钥不起作用.

我开始怀疑这个想法是不是死路一条.

关于保护这个(或部分)的任何建议都会很棒.

alx*_*lxx 0

  1. 对抗中间人 HTTPS 似乎是唯一的选择。它可能有其弱点,但它比任何自制的解决方案都要好得多。问题是您需要来自授权中心的实际证书,因为基于 ActiveX 的 Flash 插件不会信任自签名证书。
  2. 不反编译应该是不可能的
  3. 具有相当高设置(代码执行路径混淆和加密字符串)的 SecureSWF 应该击败大多数反编译器。当然,SWF 可以使用十六进制编辑器进行检查,但这需要非常坚定的黑客。
  4. 不反编译应该是不可能的
  5. API 应该位于服务器上,任何 API 函数都需要用户上下文(通过 HTTPS 加载)

还要为 Flash 共享对象\cookie 添加加密。我已经使用简单的十六进制编辑器成功更改了一些保存游戏,因为它们只是 AMF 格式的对象。加密将取决于 SWF 反编译,但由于我们使用的是 SecureSWF...或者将保存游戏移动到服务器上。