TLS – Node.js服务器到Android应用程序
我将在未来几周内开始一个新项目,但是我有一些与应用程序“devise”有关的问题。
该应用程序将是一个服务器+数据库,谈话的Android应用程序,也有它自己的数据库(离线使用)。
连接将用于交换使用自定义“协议”(游戏networking协议封装在TLS中)encryption的string。 这意味着应用程序将具有两层安全性:
- TLS – >针对MitM攻击
- 自定义协议 – >反对“游戏中的黑客”,如游戏包篡改
我的问题如下:
- 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数据库。