1

我想确保在我的 Web 应用程序服务器上请求 HTTP 获取请求的客户端专门来自我的移动应用程序,而不是来自其他任何东西。我考虑了不同的选择,但仍然没有提出任何建议。最重要的是我不希望有用户交互,我希望移动应用程序本身来处理这个。我想出的最好办法是在移动应用程序上拥有一个网络应用程序事先知道的密钥,但如果移动应用程序曾经被反编译或密钥以某种方式被发现,那么这将毫无用处。两者之间的通信使用带有随机 IV 的 AES 128 位 CBC 密码进行加密——它以纯文本来回传递,并在每次交易后发生变化。

确定通信是否来自移动应用程序,这在逻辑上是不可能的,并且需要人工干预 - 例如要求用户输入他们记住的密码并且已经在服务器上设置?

最终,移动应用程序会更新 Web 应用程序服务器上的数据库,因此我想确保请求是从应用程序发出的,而不是冒充应用程序的人。

4

1 回答 1

1

这永远不可能。这是由于CWE-602 背后的基本属性:服务器端安全的客户端强制执行。您无法决定客户的行为。没有什么可以阻止您的软件用户附加调试器并读取内存或修改您的客户端。

于 2012-08-30T16:00:53.087 回答