0

我正在使用 C# 创建一个游戏覆盖分布式应用程序,该应用程序需要将数据发送到 GAE 服务器并获取数据更新作为响应。

我将 Gaelyk 用于一个简单的 GET Groovlet,但我想知道如何确保将数据传输到我的服务。目前(本地服务器)我只是用参数进行 GET 调用。为了成功处理,我只需检查所有参数是否已随调用提交。

但是一旦我在野外,这是没有选择的。问题是,尽管黑客是一个小众应用程序,但他们对获取响应数据有浓厚的兴趣,因为这会对游戏本身产生重大影响,例如为黑客提供了巨大的优势。

由于 GAE 没有 SSL 选项 afaik,所以我想做这样的事情:

  • 客户端应用程序的首次启动会生成一个公钥/私钥
  • 客户端将包含我的 GAE 服务器的公钥
  • 对于每个调用,我将使用客户端私钥/服务器公钥加密要发送的数据并通过 PUT 发送(因为 URL 长度)
  • 只有一个参数,密钥是客户端的公钥,值是加密数据
  • 服务器现在使用客户端公钥和他的服务器私钥解密并可以更新数据
  • 对于响应,我将使用客户端公钥/服务器私钥进行加密
  • 客户端现在能够解密响应数据

这是保护我的服务的合法方式吗?有更好的选择吗?以及如何从 C# 和 Gaelyk/Groovy 开始使用非对称加密?

PS:由于对内存读取的一些要求,我需要使用 C#,并且我需要使用 GAE,因为它对个人使用是免费的,而且我预计流量不会很大。由于简化了 Servlet/Datastore 处理,我使用了 Gaelyk。

编辑:我刚刚看到Google App Engine(Java) 上的安全性 - Servlet SSL?关于免费使用 SSL 是可能的。所以我的问题应该是

这足以进行安全通信吗?我可以在我的 c# 应用程序中使用它,而不用为用户带来麻烦吗?

4

1 回答 1

0

是的,应该足够了。您可以使用<security-constraint>

部署描述符配置中所述

于 2013-11-25T11:27:10.990 回答