【发布时间】:2015-02-03 21:23:51
【问题描述】:
我们开发了一个带有 REST API 的服务和一个利用它的 Android 应用。我们目前不要求我们的用户进行身份验证。
我们希望实现一种简单的机制来防止随机人员从应用范围之外调用 API,主要是为了避免滥用会破坏我们计算的数据。
我偶然发现了this url,他们建议通过让服务器和 Android 客户端共享一个秘密并使用它来计算一个 HMAC 以与请求一起传递来强制执行身份验证。他们声称他们在 Amazon 中使用了这种方法(我还没有使用 Amazon AWS 的经验)。
我正在考虑如下进行:
- 在服务器和 Android 应用程序中存储一个公共秘密(除了使用 ProGuard 之外,还有什么好的混淆它的方法吗?)
- 让客户端和服务器通过纯 HTTP 进行通信(我们还不需要保密,我们将节省一些 CPU)并使用 HMAC 方法将调用验证为“来自合法的 Android 客户端”。
- 我们可以不时更新密钥(可能在每个新版本的应用程序中)。
- 如果将来我们需要保密,我们将为相关的 REST 调用启用 TLS。
您认为该解决方案可行吗?有人在使用这样的东西吗?备择方案?建议?
谢谢。
【问题讨论】:
-
1.反剧透角色对接口入口进行数据检查。 2.您必须使用完整的安全性,否则您可能会留下问题并节省很多。
标签: android rest authentication hmac