TLS – Node.js服务器到Android应用程序

我将在未来几周内开始一个新项目,但是我有一些与应用程序“devise”有关的问题。

该应用程序将是一个服务器+数据库,谈话的Android应用程序,也有它自己的数据库(离线使用)。

连接将用于交换使用自定义“协议”(游戏networking协议封装在TLS中)encryption的string。 这意味着应用程序将具有两层安全性:

  1. TLS – >针对MitM攻击
  2. 自定义协议 – >反对“游戏中的黑客”,如游戏包篡改

我的问题如下:

  • Node.js和Android之间可以使用TLS吗? 这个问题有什么好的联系吗?

(我读了一些与java和node.js中不同的证书格式的问题,它与OpenSSL和EVP_BytesToKey函数有关)

– > 使用Node.jsencryption模块encryption并使用Java解密(在Android应用程序中)

– > http://olabini.com/blog/tag/evp_bytestokey/

  • 有没有混淆Android应用程序的源代码的方式,以便自定义“协议”可以安全地解密客户端? 还是应该把所有的魔法都发生在服务器端?

(我不希望解密源代码对用户可见,以剖析自定义协议并开始开发黑客)。

  • 有关提高我的node.js服务器的安全性的一般提示或链接?

(我听到一些人在谈论Nginx代理,但是由于我没有提供网页,它仍然是有意义的吗?它不会超载服务器?)

提前感谢你!

(In) 虽然默默无闻,但并不能解决您所面临的真正安全问题。 你所描述的不是游戏如何保护自己免受攻击。 SSL / TLS可以防止MITM攻击,但是攻击者不仅仅是一个MITM,他还是你的软件的用户。 如果应用程序可以进行SSL / TLS连接,则攻击者也可以进行此连接,并假定攻击者将始终完全访问您提供的API。

密码学不能解决CWE-602:服务器端安全性的客户端执行 。 客户端的离线数据库和服务器之间的数据库合并信任客户端的数据,并违反了CWE-602。 在这种攻击中攻击者不需要访问API,他可以在本地修改sqlite数据库。