0

我正在制作一个桌面应用程序(python),它可以与一个 android 应用程序通信,两者都使用 mqtt 客户端。我想知道如何保护或隐藏我的 mqtt 详细信息(用户名、密码、ip、端口),让任何继续查看桌面应用程序的人知道。

目前,我在 config.ini 文件中有 mqtt 服务器详细信息(用户名、密码、IP、端口),该文件向任何想要查看的人公开。我考虑过加密配置文件,或在代码本身中硬编码细节并将代码转换为 exe 或对其进行混淆。但是翻遍网上的所有资料,似乎如果一个人认真尝试,代码的混淆或打包很容易被逆向工程,任何加密都不安全,加密密钥也可以从逆向工程代码中获得。

在不同(但相似)场景的不同链接中建议的一种方法是根本不包括客户端的详细信息,而是将它们保留在服务器端并通过 API 调用获取它们。我也可以这样做。但我不确定它是否能达到目的,好像有人可以通读代码,他也可以调用该 API 并获取 mqtt 详细信息。

那么如何处理呢?如果可以完成基于 API 的安全保护,那么该怎么做呢?

4

1 回答 1

0

你从错误的一端接近这个。如果任何人都可以访问其中的文件,您就无法保护桌面应用程序!

您或安全团队中的某个人需要控制 MQTT 代理。UserIds 和 Passwords 应该是最终用户在启动桌面应用程序时输入的凭据(而不是您分配的凭据)。

最后,您需要使用 SSL/TLS 证书,以便用户凭据在桌面应用程序和 MQTT 代理之间加密流动。

如果您执行上述操作,那么在配置文件中包含 IP 地址和端口号不是问题,因为您已经保护了 MQTT 代理并使用 SSL/TLS 加密用户凭据。

您的安全第一方法很好,您只是从错误的角度工作。

于 2019-01-21T17:39:40.110 回答