我们计划使用REST-ful开发移动应用程序。我们想要应用OAuth 1.0a而不是OAuth 2.0,因为我们不使用SSL。我们也不想使用网络浏览器(我们认为基于PIN的UX不友好)。我们知道正常的OAuth流是不可能的。
我不是安全架构方面的专家,但我在网上谷歌并看到有人使用像挑战 - 响应模型这样的方法登录实现。
如果我们的应用不需要保持用户名安全,并且用户信任我们在我们的应用中输入密码,这种方法是否可以用于交换访问令牌?有没有缺陷?
客户端向http://www.example.com/login发送请求,其参数如OAuth require:oauth_consumer_key,oauth_token,oauth_signature_method,oauth_timestamp,oauth_nonce以及其他用户名参数username =“username”, 密码参数根据用户的密码(存储在服务器中)计算,oauth_nonce使用KDF密钥导出函数/散列函数。客户端使用OAuth描述计算请求签名,但在省略密码参数后,使用参数username和其他必需参数发送请求。
服务器检查请求并返回访问令牌。
答案 0 :(得分:1)
我相信你所描述的内容与Twitter的xAuth非常相似,只是你计划使用自己的客户端加密密码而不是SSL。
我会阅读他们的xAuth文档,看看经过验证的方法,并考虑使用SSL作为令牌请求步骤。