【发布时间】:2013-08-09 13:56:48
【问题描述】:
我正在使用 C# 创建一个游戏覆盖分布式应用程序,该应用程序需要将数据发送到 GAE 服务器并获取数据更新作为响应。
我将 Gaelyk 用于一个简单的 GET Groovlet,但我想知道如何确保将数据传输到我的服务。目前(本地服务器)我只是用参数进行 GET 调用。为了成功处理,我只需检查所有参数是否已随调用提交。
但是一旦我在野外,这是没有选择的。问题是,尽管黑客是一个小众应用程序,但他们对获取响应数据有浓厚的兴趣,因为这会对游戏本身产生重大影响,例如为黑客提供了巨大的优势。
由于 GAE 没有 SSL 选项 afaik,我想这样做:
- 首次启动客户端应用程序会生成一个公钥/私钥
- 客户端将包含我的 GAE 服务器的公钥
- 对于每次调用,我都会使用客户端私钥/服务器公钥加密要发送的数据,并通过 PUT 发送(因为 URL 长度)
- 只有一个参数,密钥是客户端的公钥,值是加密数据
- 服务器现在使用客户端公钥和他的服务器私钥解密并可以更新数据
- 对于响应,我将使用客户端公钥/服务器私钥进行加密
- 客户端现在可以解密响应数据
这是保护我的服务的合法方式吗?有更好的选择吗?以及如何开始使用非对称加密的 C# 和 Gaelyk/Groovy?
PS:我需要使用 C#,因为对内存读取有一些要求,我需要使用 GAE,因为它对个人使用是免费的,而且我不希望有大流量。由于简化了 Servlet/Datastore 处理,我使用了 Gaelyk。
编辑:我刚刚看到Security on Google App Engine(Java) - Servlet SSL? 关于免费使用 SSL 是可能的。所以我的问题应该是
这足以进行安全通信吗?我可以在我的 c# 应用程序中使用它而不用为用户带来麻烦吗?
【问题讨论】:
标签: c# security google-app-engine encryption gaelyk