【发布时间】:2016-08-18 00:32:22
【问题描述】:
我们提供用户可以注册的服务。此过程受 reCAPTCHA 保护,以防止自动注册。问题是在移动设备上 reCAPTCHA 并不方便。因此,我们决定注册 API 也将接受一些特殊的令牌,而不是 reCAPTCHA 响应。
现在的问题是如何实现这个token。我们的第一个方法是为移动应用程序配备一些将作为 token 发送到服务器的恒定秘密。但是,如果黑客将请求重定向到他的服务器(通过更新 API 域的 DNS 记录并将他的证书安装为受信任的移动设备),这个秘密就会被泄露。
现在我们的最后一种方法是在用户名+秘密上将令牌计算为 HMAC-SHA1(我们是否需要这里的秘密 - 也许只是为了使输入足够长?)。用户名将从注册输入中获取。然后服务器将通过验证哈希对其进行授权。在他的情况下,可以进行重放攻击,但没关系,因为重复的用户名将被拒绝。
这种方法正确吗?也许在移动设备上还有其他替代验证码的方法?
考虑到它将托管在 Appstore 中并提取密钥(和秘密),是否可以从 iOS(ipa 文件)获取应用程序并对其进行逆向工程?
在 android 的情况下这是可能的 - 有没有办法防止它?
【问题讨论】:
标签: android ios security captcha hmac