应用服务器通信协议

时间:2015-11-01 13:33:20

标签: android security server google-cloud-messaging

我正在构建一个可以连接到服务器的小型Android应用程序。

我的应用会使用一个简单的帖子向我的服务器发送消息,而我正在使用Google Cloud Messaging为服务器向我的应用发送消息。

我建立了注册页面,电子邮件确认和连接页面,但现在我想知道如何锁定服务器和应用程序之间的通信。

这是我想到的协议(让我们将app的简单例子带到app消息):

  • App使用自助信息(如name和auth_token),目标用户和消息
  • 将信息发送到服务器
  • 服务器搜索属于目标用户的应用,并使用curl将消息转发给GCM
  • GCM将邮件发送到目标应用

服务器如何确定服务器收到的名称,auth_token等是否真的来自发件人?

2 个答案:

答案 0 :(得分:1)

让服务器在客户端进行注册时生成身份验证令牌并将其发送回客户端。服务器现在知道[客户端 - 令牌]映射。

每次客户端想要发送消息时,它还会发送服务器可以查找并检查的身份验证令牌。客户端甚至不必发送他或她的名字,服务器应该知道这一点。

要防止MITM攻击,请使用安全连接(HTTPS)。

答案 1 :(得分:1)

虽然有很多解决方案可以保护连接,但当您使用GCM进行下游消息时,我建议使用支持上行消息传递的新Google Cloud Messaging API(从客户端到服务器)。 它非常快速,可靠和安全。 在这里,您可以找到docs

您应该只将服务器端从HTTP更改为XMPP。

您可以在这里找到docs