无需浏览器和 SSL/质询响应模型的 OAuth

发布于 2024-12-04 19:17:48 字数 741 浏览 2 评论 0原文

我们计划使用 REST-ful 开发移动应用程序。我们希望应用 OAuth 1.0a 而不是 OAuth 2.0,因为我们不使用 SSL。我们也不想使用网络浏览器(我们认为基于 PIN 的用户体验不友好)。我们知道正常的 OAuth 流程是不可能的。

我不是安全架构方面的专家,但我在网上谷歌了一下,看到有人使用像挑战响应模型这样的方法登录来实现。

如果我们的应用程序不需要保证用户名的安全,并且用户信任我们在我们的应用程序中输入密码,那么可以使用此方法来交换访问令牌吗?有什么缺陷吗?

  1. 服务器响应未经授权的请求令牌后,客户端开始质询-响应流程。
  2. 客户端发送请求到http://www.example.com/login,参数如OAuth需要:oauth_consumer_key、oauth_token、oauth_signature_method、oauth_timestamp、oauth_nonce 以及附加的 username 参数 username="username", password 参数根据用户密码(存储在服务器中)计算得出,oauth_nonce 具有 KDF 密钥派生函数/哈希函数。客户端使用 OAuth 描述计算请求签名,但在省略密码参数后发送带有参数用户名和其他必需参数的请求。

  3. 服务器检查请求并返回访问令牌。

We have a plan for developing a mobile application using REST-ful. We want to apply OAuth 1.0a not OAuth 2.0 because we don't use SSL. We also don't want to use web browser (we think PIN-based UX is not friendly). We know it's impossible with normal OAuth flow.

I am not an expert in security architecture but I google on the Net and see someone has a implemention using a method login like challenge-response model.

If our app don't need to keep username secure and users trust us with inputting their password in our app, can this method being use to exchange access token? Is there any flaw?

  1. After server response unauthorized request token, client begin challenge-response flow.
  2. Client send request to http://www.example.com/login, with parameter like OAuth require: oauth_consumer_key, oauth_token, oauth_signature_method, oauth_timestamp, oauth_nonce and the additional username parameter username="username", the password parameter calculated from the user's password (which is stored in server), oauth_nonce with KDF key derive function/hash function. Client calculate request signature with OAuth description but send the request with the parameter username and other required parameters after omitted the password parameter.

  3. Server check the request and return access token.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

回眸一笑 2024-12-11 19:17:48

我相信您所描述的内容与 Twitter 的 xAuth 非常相似,除非您计划使用您的自己的客户端密码加密而不是 SSL。

我会阅读他们的 xAuth 文档以查看经过尝试和测试的方法,并考虑使用 SSL 进行令牌请求步骤。

I believe what you are describing is very similar to Twitter's xAuth except you are planing to use your own client side encryption of the password and not SSL.

I would read their xAuth documentation to see a tried and tested method and consider using SSL for the token request step.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文