OAuth 秘密和桌面应用程序

csn*_*ate 6 oauth

我正在考虑用一种可以访问 Google API 的解释性语言创建一个桌面应用程序。据我所知,有一个安全漏洞。客户端机密将在代码中公开,即使我使用 C++ 或 Java 创建应用程序,代码也可能被反编译\反汇编,并且理论上可以找到机密。除了混淆代码之外还有其他方法吗?我希望能够分发代码供其他人使用。

Owe*_*Cao 4

OAuth 2.0 威胁模型和安全注意事项 (rfc6819)将获取客户端机密列为威胁。

正如 Google 文档《Using OAuth 2.0 for Installed applications》所述:

这些应用程序分布到单独的机器上,并且假设这些应用程序无法保守秘密。

所以实际上不存在客户“秘密”。试图混淆已安装应用程序中的秘密是徒劳的,因为这些秘密总是可以使用大量的逆向工程和调试工具来恢复。

当然,您应该尽最大努力保护秘密,但最终,积极主动的黑客总是可以在已安装的应用程序中获取它。所以这是秘密的价值与提取难度的关系。客户端密钥的价值在于模拟应用程序。它不提供对用户数据的任何访问权限。

我的建议:冒险并混淆它。或者您可以考虑使用代理模式(将密钥移动到充当 API 代理的 Web 服务器)。